Commit Graph

59424 Commits

Author SHA1 Message Date
nickysn
e41912b076 * limit the ZX Spectrum programs address space up to $FDFC, because the RTL now
installs an interrupt handler at $FDFD

git-svn-id: trunk@45678 -
2020-06-22 14:13:54 +00:00
nickysn
1ae70c6825 * switch to interrupt mode 2 and install a custom maskable interrupt handler in
the ZX Spectrum startup code, because the ROM handler requires the IY register
  to always have a specific value, but the FPC code generator uses the IY
  register for various purposes, which causes random crashes and glitches when
  the timer interrupt occurs.

git-svn-id: trunk@45677 -
2020-06-22 14:00:33 +00:00
marco
b624b2a5f5 * fix #0037235 high(empty open array )= -1
git-svn-id: trunk@45676 -
2020-06-22 10:34:49 +00:00
yury
e63c03125a * Reworked tprocdef.is_implemented to fix a bug with the parentfp optimization. The bug was detected when using the llvm backend.
+ Added a test.

git-svn-id: trunk@45675 -
2020-06-21 19:52:14 +00:00
florian
221d8d84ae * Xtensa: MatchInstruction requires a postfix parameter
git-svn-id: trunk@45674 -
2020-06-21 19:16:27 +00:00
Jonas Maebe
3cb341eabc * ensure that dispose(managed_ptr) does not result in multiple evaluations of
the managed_ptr expression

git-svn-id: trunk@45673 -
2020-06-21 15:10:38 +00:00
florian
a7c0fa0def o patch for Xtensa by Christo Crause, resolves #37099
+ Added postfix parsing in tattreader.GetToken
    - Removed all postfixed versions of OpCodes from the instruction list
    + Added all missing OpCodes from Xtensa ISA
    * Changed branch OpCode to A_B, similar to ARM
    + Added missing branch condition flags BCI and BSI
    * Updated existing compiler code that referred to the old postfixed instructions
    + Added prefix and postfix handling in TxtensaInstrWriter.WriteInstruction
    * Updated TCPUAddNode.second_addfloat to specify .S postfix
    * Updated tcpuunaryminusnode.second_float to specify .S postfix
    + Implemented prefix and postfix identification in txtensaattreader.is_asmopcode
    * Adapted branch condition extraction to respect postfixes
    * Changed itcpugas to call findreg_by_name_table from raatt.pas (same as issue #0037121, difficult to test these changes without including a fix for the register name search problem)

git-svn-id: trunk@45672 -
2020-06-21 14:51:40 +00:00
Jonas Maebe
cc7b6d0b05 * regenerated message files
git-svn-id: trunk@45671 -
2020-06-21 12:26:55 +00:00
Jonas Maebe
a423bf6402 * fix -Agas-darwin to say Aas-darwin for x86-64, and also add it for i386
(mantis #37230)

git-svn-id: trunk@45670 -
2020-06-21 12:26:52 +00:00
nickysn
27943baa2f + support z80 in the fpc launcher utility
git-svn-id: trunk@45669 -
2020-06-20 23:30:50 +00:00
florian
78698beaad * compilation fixed
git-svn-id: trunk@45668 -
2020-06-20 20:22:21 +00:00
florian
80111a0a60 * make local variables in assembler blocks working again after r44933
* test for #37218

git-svn-id: trunk@45667 -
2020-06-20 20:17:53 +00:00
yury
4e1e35aef5 * Added optimization option cs_opt_unused_para. It is enabled for -O2 and higher. The parentfp optimization is tied to cs_opt_unused_para.
git-svn-id: trunk@45666 -
2020-06-20 18:47:42 +00:00
yury
7bffafdf8b * Improved the parentfp optimization to properly handle cases when a nested routine calls other nested routines.
git-svn-id: trunk@45665 -
2020-06-20 18:34:26 +00:00
yury
c15b6f4516 * Fixed the parentfp optimization for some cases when nested procvars are used.
git-svn-id: trunk@45664 -
2020-06-20 18:28:07 +00:00
Károly Balogh
cc23515927 z80: vasm doesn't support the JRJP pseudo instruction, so change it to JP during write
git-svn-id: trunk@45663 -
2020-06-20 16:51:15 +00:00
yury
11fd466394 * Optimize parentfp when optimization level 1 and higher to be debugger friendly.
git-svn-id: trunk@45661 -
2020-06-20 11:14:43 +00:00
Mattias Gaertner
120eb6b8a2 pas2js: fixed system.inc()
git-svn-id: trunk@45660 -
2020-06-20 09:34:44 +00:00
florian
a2303bd899 * fixed copy&paste error of r45658
git-svn-id: trunk@45659 -
2020-06-19 19:55:14 +00:00
florian
2e36783d0e * better check for short boolean evaluation in firstcomplex
git-svn-id: trunk@45658 -
2020-06-18 20:32:55 +00:00
michael
7e89141993 * Fix bug #37223
git-svn-id: trunk@45657 -
2020-06-18 07:39:56 +00:00
florian
8738b4b47f + might_have_sideeffects checks also if the tempinitcode of a tempref node might have side effects
git-svn-id: trunk@45656 -
2020-06-17 20:33:04 +00:00
florian
62c417c8bf * temporarily fix #37034 by disabling the problematic optimization until the real cause is fixed
git-svn-id: trunk@45655 -
2020-06-15 19:57:39 +00:00
florian
c6c996f506 * write length/code page when writing the string type
git-svn-id: trunk@45654 -
2020-06-15 19:50:49 +00:00
Mattias Gaertner
1ff1921d14 pas2js: clean up
git-svn-id: trunk@45653 -
2020-06-14 17:43:50 +00:00
florian
b3817f6d92 * slash and divn might have an exception as side effect
git-svn-id: trunk@45652 -
2020-06-14 14:56:48 +00:00
florian
33094d263f * Aarch: handle 0 in AndAnd2And and check if the resulting constant
is really a shifter constant, resolves #37203

git-svn-id: trunk@45651 -
2020-06-14 14:16:49 +00:00
Mattias Gaertner
8b84d925fb pas2js: search no namespace, cmd line namespaces, default prg namespace, issue #37206
git-svn-id: trunk@45650 -
2020-06-13 20:58:47 +00:00
florian
0feb495ab8 * fixes previously accidentitly commited (and commented out) statement to avoid warning
git-svn-id: trunk@45649 -
2020-06-13 19:28:52 +00:00
florian
86772eeafe * fix compilation of tests
git-svn-id: trunk@45648 -
2020-06-13 19:27:57 +00:00
florian
bc1b7960ec * patch by Bi0T1N: fix result type of InterlockedCompareExchange64 for QWord, resolves #37186
git-svn-id: trunk@45647 -
2020-06-13 19:14:20 +00:00
svenbarth
febeef03e4 * for adding procdefs to forwarddefs check for the specialization flag instead of whether it's a full specialization; fixes implicit finalization handlers on x86_64-win64 not being found
+ added tests

git-svn-id: trunk@45646 -
2020-06-13 18:42:31 +00:00
svenbarth
4da6465d05 * correctly set the generic related defoptions for an outlined procdef
git-svn-id: trunk@45645 -
2020-06-13 18:42:26 +00:00
svenbarth
c45c543faa * fix typo (no code changes)
git-svn-id: trunk@45644 -
2020-06-13 18:42:21 +00:00
svenbarth
4ec76072b4 * ensure that the BSS section for MSX-DOS is correctly initialized to 0
git-svn-id: trunk@45642 -
2020-06-13 09:36:18 +00:00
florian
58eca57feb * patch by Christo Crause: embedded heap manager: free small blocks, resolves #37204
git-svn-id: trunk@45641 -
2020-06-12 20:50:45 +00:00
Mattias Gaertner
f26afe4a6a pas2js: started delayed specialize
git-svn-id: trunk@45640 -
2020-06-12 19:54:55 +00:00
Mattias Gaertner
da9a2f59b0 fcl-passrc: type description of specialization: with paths
git-svn-id: trunk@45639 -
2020-06-12 19:53:32 +00:00
florian
dbd14206c9 * compilation on targets without fpu fixed
git-svn-id: trunk@45638 -
2020-06-11 17:30:12 +00:00
florian
b2ed667a86 * swap fpu stack correctly when moving data into xmm registers
git-svn-id: trunk@45637 -
2020-06-11 17:19:56 +00:00
florian
20f6514d97 * fix compilation for non 64 Bit targets
git-svn-id: trunk@45636 -
2020-06-10 21:05:18 +00:00
florian
50c48349d5 * check properly for i/o errors in the iso read helpers, resolves #37154
* CheckRead checks if reading caused an I/O error and returns false in this case

git-svn-id: trunk@45635 -
2020-06-10 20:47:58 +00:00
Mattias Gaertner
810ec836dd pas2js: started aliasglobals external types
git-svn-id: trunk@45634 -
2020-06-10 19:45:44 +00:00
florian
6698f6c56b * patch by Christo Crause: FreeRTOS: heap manager doesn't free small blocks, resolves #37195
git-svn-id: trunk@45633 -
2020-06-10 18:53:06 +00:00
michael
e9b0b02fea * Fix bug ID #37197: add version numbers of CentOS
git-svn-id: trunk@45631 -
2020-06-10 07:54:23 +00:00
florian
5f118da600 * optimize a/a and a-a if fast math is on
git-svn-id: trunk@45630 -
2020-06-09 20:50:47 +00:00
michael
8a54e8a773 * Fix bug ID #0037189, backwards search
git-svn-id: trunk@45629 -
2020-06-09 14:19:47 +00:00
michael
fcc4f587ff * Fix 0037159 (again)
git-svn-id: trunk@45628 -
2020-06-08 21:41:39 +00:00
florian
aafc22bd74 + optimize real operations with 0 and 1 if fast math is turned on
git-svn-id: trunk@45627 -
2020-06-08 20:33:27 +00:00
Mattias Gaertner
8a9178f00a pas2js: aliasglobals: local var for module
git-svn-id: trunk@45626 -
2020-06-08 18:00:59 +00:00