Commit Graph

59109 Commits

Author SHA1 Message Date
nickysn
531cc0ab0d + introduced TAOptBase.RegistersInterfere (which might not always be equivalent to SuperRegistersEqual)
git-svn-id: trunk@45339 -
2020-05-11 16:00:27 +00:00
nickysn
4263ff44c1 + Z80: added a registers_interfere helper function
git-svn-id: trunk@45338 -
2020-05-11 15:29:42 +00:00
nickysn
5947adcd7b + added a correct implementation of TAOptBase.SuperRegistersEqual for the Z80
git-svn-id: trunk@45337 -
2020-05-11 14:21:26 +00:00
michael
50261464da * Patch from N. Neumann, implement some delphi compatible StrToUint functions (bug id 37049)
git-svn-id: trunk@45336 -
2020-05-11 13:14:47 +00:00
Mattias Gaertner
4afe1de02f pas2js: fixed arrayRef
git-svn-id: trunk@45335 -
2020-05-11 10:59:30 +00:00
michael
4fed12553a * Fix bug id #0037048 (wrong count sometimes), upstream fix
git-svn-id: trunk@45334 -
2020-05-11 07:13:04 +00:00
nickysn
06a728df24 + added the alternate Z80 register pairs BC', DE' and HL'
git-svn-id: trunk@45333 -
2020-05-11 04:23:02 +00:00
nickysn
9ce97e6ba5 + also recognize alternate registers in the Z80 inline asm scanner. This allows
the "EX AF,AF'" instruction to be accepted and assembled as well.

git-svn-id: trunk@45332 -
2020-05-11 00:55:32 +00:00
nickysn
b581751ef3 - cleaned up some x86-specific code from the Z80 inline asm reader
git-svn-id: trunk@45331 -
2020-05-11 00:46:24 +00:00
svenbarth
0fbd418cb7 * generate CFI data only if we're either using it for exception handling or if debug output is enabled (or should this only be generated for targets that in theory support DWARF exception handling?). This removes unnecessary bloat from e.g. Windows binaries
git-svn-id: trunk@45330 -
2020-05-10 20:46:08 +00:00
svenbarth
3c79a8dd81 * GetLoadErrorStr (currently) returns a ShortString, so avoid a useless conversion to AnsiString
git-svn-id: trunk@45329 -
2020-05-10 20:46:04 +00:00
florian
2a2ec77b10 * improved heuristics for auto-inlining
git-svn-id: trunk@45328 -
2020-05-10 19:41:13 +00:00
florian
e5e386f94a * cosmetics
git-svn-id: trunk@45327 -
2020-05-10 18:41:10 +00:00
florian
ebcae70d72 * avoid unncessary conversions of constants in 64 bit ints when doing constant folding
git-svn-id: trunk@45326 -
2020-05-10 15:25:31 +00:00
florian
7a6bd84bc0 * cast only the longint
git-svn-id: trunk@45325 -
2020-05-10 12:52:17 +00:00
florian
b48c8d8596 * fixed test for 32 Bit targets
git-svn-id: trunk@45324 -
2020-05-10 09:04:13 +00:00
yury
7cda3d9e57 * Code formatting.
git-svn-id: trunk@45323 -
2020-05-09 21:53:43 +00:00
yury
254d0c0e2c * Do not perform optimization of nested procedures for:
- targets which use a special struct to access parent's variables;
  - pure assembler procedures (for compatibility with old code).

git-svn-id: trunk@45322 -
2020-05-09 20:45:00 +00:00
Mattias Gaertner
042ad497d3 pas2js: ArrayOfChar:=String, pass string to ArrayOfChar
git-svn-id: trunk@45321 -
2020-05-09 20:14:21 +00:00
yury
a316229ef6 * Always use parentfp for forward-declared nested procedures.
git-svn-id: trunk@45320 -
2020-05-09 17:52:17 +00:00
florian
bdabf674e1 * propagate forinline
git-svn-id: trunk@45319 -
2020-05-09 17:36:36 +00:00
Károly Balogh
8b31df7067 rtl-console: fixed keypressed implementation in the Amiga VidCRT unit
git-svn-id: trunk@45318 -
2020-05-09 12:56:19 +00:00
Jonas Maebe
bd19575f92 * fixed -Cl options now showing in the help of an LLVM compiler (and fixed
them to read -Cl rather than -CL)

git-svn-id: trunk@45316 -
2020-05-09 10:08:35 +00:00
Mattias Gaertner
cf441f6ffa pas2js: setlength dyn array of static array
git-svn-id: trunk@45315 -
2020-05-09 08:33:30 +00:00
Károly Balogh
04a42bef84 m68k: fixed instruction code formatting in the generated include
git-svn-id: trunk@45314 -
2020-05-08 21:06:59 +00:00
florian
60e34e9965 * spelling fixed, resolves #37002
git-svn-id: trunk@45313 -
2020-05-08 20:14:23 +00:00
Károly Balogh
6753f86987 m68k: migrate the compiler to the new instruction tables and drop the old ones
git-svn-id: trunk@45312 -
2020-05-08 12:33:04 +00:00
Károly Balogh
bc9b8af04b m68k: add the converted includes, based on m68kins.dat
git-svn-id: trunk@45311 -
2020-05-08 12:11:13 +00:00
Károly Balogh
d5874b0088 m68k: added a full instruction table (minus CF MAC/EMAC instructions for now), based on vasm, and the required tool to process it
git-svn-id: trunk@45310 -
2020-05-08 12:05:11 +00:00
Mattias Gaertner
4ff4c2456d pas2js: error on compare static array
git-svn-id: trunk@45309 -
2020-05-08 08:46:41 +00:00
nickysn
4d428d945e + use ApplyAsmSymbolRestrictions on all symbols in the NASM writer
git-svn-id: trunk@45308 -
2020-05-08 00:53:05 +00:00
Károly Balogh
fc5c35362b m68k: preparations for upcoming full instruction tables, mostly converting code away from using sets of opcodes
git-svn-id: trunk@45307 -
2020-05-07 23:30:13 +00:00
florian
f8e7d0bc09 - remove unused files, resolves #37032
git-svn-id: trunk@45306 -
2020-05-07 20:36:09 +00:00
nickysn
92043c6e20 * call inherited in tcg64f8086.a_op64_reg_ref for OP_NEG and OP_NOT, because it is handled differently after r45302
git-svn-id: trunk@45305 -
2020-05-07 11:51:58 +00:00
nickysn
4f4d8191f0 + generate more optimal code for OP_NOT and OP_NEG in tcg64f8086.a_op64_ref
git-svn-id: trunk@45304 -
2020-05-07 03:34:20 +00:00
nickysn
52572e10e9 * i8086 compilation fixed after r45302
git-svn-id: trunk@45303 -
2020-05-07 02:57:57 +00:00
nickysn
0f6ab0de17 * handle LOC_(C)SUBSETREG/REF in second_NegNot_assign
* changed the way OP_NEG and OP_NOT are handled in op_reg_ref, in order to be
  consistent with op_reg_reg
* introduced op_reg,op_ref,op_subsetreg,op_subsetref and op_loc for the unary
  operations only (OP_NEG,OP_NOT)

git-svn-id: trunk@45302 -
2020-05-07 02:43:02 +00:00
nickysn
5aaf863d56 * only call cg64.a_XXX_loc for LOC_(C)REFERENCE and LOC_(C)REGISTER locations in
tcginlinenode.second_AndOrXorShiftRot_assign

git-svn-id: trunk@45301 -
2020-05-06 21:24:19 +00:00
nickysn
69e8926295 * updated revision.inc
git-svn-id: trunk@45300 -
2020-05-06 21:09:37 +00:00
florian
ba8cddb546 + Xtensa: Sptr
git-svn-id: trunk@45299 -
2020-05-06 20:49:19 +00:00
nickysn
56b79257a1 * fixed fpmake invokation when building an i386-linux snapshot on a x86_64-linux host
git-svn-id: trunk@45298 -
2020-05-06 20:41:01 +00:00
Mattias Gaertner
14ccc191eb pas2js: arraySetLength: faster resize
git-svn-id: trunk@45297 -
2020-05-06 20:09:35 +00:00
Mattias Gaertner
728a60c155 pas2js: fixed compile under nodejs
git-svn-id: trunk@45296 -
2020-05-06 19:48:13 +00:00
Mattias Gaertner
da799883dd pas2js: type helper for wordbool
git-svn-id: trunk@45295 -
2020-05-06 19:31:43 +00:00
Mattias Gaertner
86cfd866f4 pas2js: started array SetLength using resize and hidden boolean to mark referenced arrays
git-svn-id: trunk@45294 -
2020-05-06 19:13:33 +00:00
Mattias Gaertner
c66ac2f892 fcl-passrc: resolver: allow passing a string/char to an array of char
git-svn-id: trunk@45293 -
2020-05-06 19:02:27 +00:00
yury
40504a6f9d * If a nested procedure does not access its parent's frame pointer, optimize it by removing the hidden $parentfp parameter.
* Improved the tisogoto1.pp test.

git-svn-id: trunk@45292 -
2020-05-06 14:43:49 +00:00
yury
c1d124d497 * x86: Fixed peephole optimization introduced in r44233. tb0219 and tb0548 tests have failed with -O2 since then.
* Added variants of the tb0219 and tb0548 tests with forced -O2.

git-svn-id: trunk@45291 -
2020-05-06 14:18:44 +00:00
nickysn
75ce122d36 - removed commented out writeln
git-svn-id: trunk@45290 -
2020-05-06 03:24:15 +00:00
nickysn
616cb38292 * fixed the TRelocDataInt to avoid truncating 16-bit addresses to 8-bit on 8-bit CPUs
git-svn-id: trunk@45289 -
2020-05-06 02:52:28 +00:00