Commit Graph

59319 Commits

Author SHA1 Message Date
Mattias Gaertner
6ffba8e2b6 pas2js: filer: add specs to gen type
git-svn-id: trunk@45349 -
2020-05-12 21:12:14 +00:00
florian
7dbab3a78f * handle OP_XOR for a full mm register correctly in tcgx86.opmm_loc_reg
git-svn-id: trunk@45348 -
2020-05-12 20:43:15 +00:00
nickysn
4beb4bf8b2 + Z80: support the flags subregisters in the registers_interfere function
git-svn-id: trunk@45347 -
2020-05-12 01:58:10 +00:00
nickysn
c6c834949f + Z80: support all the flags subregisters in super_registers_equal
git-svn-id: trunk@45346 -
2020-05-12 01:47:58 +00:00
nickysn
fe12026959 + support the LD instruction in TCpuAsmOptimizer.RegLoadedWithNewValue
git-svn-id: trunk@45345 -
2020-05-11 23:55:23 +00:00
nickysn
bb4d7a7a50 + Z80: implemented TCpuAsmOptimizer.InstructionLoadsFromReg
git-svn-id: trunk@45344 -
2020-05-11 22:24:20 +00:00
florian
05091cf0dd + MovAndTest2Test optimization
git-svn-id: trunk@45343 -
2020-05-11 21:14:06 +00:00
nickysn
4abc498f2f + added the Z80 individual flag bits as subregisters
git-svn-id: trunk@45342 -
2020-05-11 19:17:31 +00:00
nickysn
b98cc1ebff + added subregisters for the Z80 flags
git-svn-id: trunk@45341 -
2020-05-11 18:03:29 +00:00
nickysn
1f8a9c708e * use RegistersInterfere instead of SuperRegistersEqual in TAoptBase.RegInOp and TAoptBase.RegInRef
git-svn-id: trunk@45340 -
2020-05-11 17:18:00 +00:00
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