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
a8fe46c0f5
+ introduced labelmaxlen in tasminfo and added code in ReplaceForbiddenAsmSymbolChars that limits the
...
output label to that length
git-svn-id: branches/z80@45066 -
2020-04-25 12:59:25 +00:00
Jonas Maebe
10b15628ab
* split i/t_darwin from i/t_bsd, as they don't have that much in common
...
any more
git-svn-id: trunk@44407 -
2020-03-29 18:27:27 +00:00
florian
9989d408fd
* AArch64 and i386: omit exit stackframe, same as r44191 for x86-64
...
git-svn-id: trunk@44196 -
2020-02-16 20:14:26 +00:00
Jonas Maebe
592df7fa59
* disable cs_opt_regvar on all platforms when compiled for LLVM (LLVM does
...
that itself, our LLVM code generator can't handle it, and if it did then
afterwards we would have to spill 90% of those register variables again
to make them SSA)
git-svn-id: trunk@44062 -
2020-01-29 22:21:07 +00:00
yury
1b3a3a7983
* Removed lot of unused local vars. It is useful to turn on the notes in options. :)
...
git-svn-id: trunk@44053 -
2020-01-28 18:45:33 +00:00
florian
993144b91b
* patch by J. Gareth Moreton: x86 SUB and LEA optimisations, resolves #36622
...
git-svn-id: trunk@44030 -
2020-01-24 21:10:17 +00:00
florian
16152cf948
* patch by J. Gareth Moreton: get rid of another pass through the assembler list by integrating OptReferences
...
into the post optimizer pass
git-svn-id: trunk@44001 -
2020-01-19 20:11:05 +00:00
florian
124c64152d
* patch by J. Gareth Moreton: EAX -> EDX:EAX sign extension shortcuts, and MOVSX shortcuts for AX register, part 2 of #36551
...
git-svn-id: trunk@43918 -
2020-01-12 09:20:01 +00:00
joost
171142a724
* Make Win32 SEH support enabled by default. If necessary to disable, compiler should be cycled with OPT=-dDISABLE_WIN32_SEH. Mantis #12974 .
...
git-svn-id: trunk@43830 -
2020-01-01 14:43:57 +00:00
florian
ef87879402
* common naming for fpu_none string
...
git-svn-id: trunk@43768 -
2019-12-24 16:14:28 +00:00
florian
8465710329
+ make use of mulx instruction, if available
...
git-svn-id: trunk@43706 -
2019-12-21 16:20:10 +00:00
florian
30927039a6
+ MULX instruction
...
* change information for RORX corrected
git-svn-id: trunk@43705 -
2019-12-21 16:20:09 +00:00
svenbarth
0149d26adb
* in PeepHoleOptPass1Cpu when an instruction contains a segment, don't replace the current instruction with the next, cause then we get an infinite loop when compiling on Win32 with -dTEST_WIN32_SEH -O4
...
git-svn-id: trunk@43704 -
2019-12-20 16:44:54 +00:00
Jonas Maebe
54d3c26e27
* renamed abi_linux386_sysv to abi_i386_dynalignedstack, and also use it
...
for Darwin-based i386 platforms
git-svn-id: trunk@43650 -
2019-12-05 19:38:01 +00:00
Jonas Maebe
0802edb710
* fix Linux/i386 and Win32 after r43578
...
git-svn-id: trunk@43583 -
2019-11-25 07:55:57 +00:00
Jonas Maebe
e775ecdc43
* cleaned up safecall support: use a hidden localvarsym instead of result
...
register hacking
o this also allowed fixing/adding safecall support for LLVM
git-svn-id: trunk@43578 -
2019-11-24 20:23:22 +00:00
florian
9e307f5c3a
- removed code not used for years
...
git-svn-id: trunk@43575 -
2019-11-24 19:50:27 +00:00
florian
d444f750f9
* factored out TX86AsmOptimizer.OptPass1Cmp
...
* fixed it
* activated it for x86-64
git-svn-id: trunk@43574 -
2019-11-24 16:33:50 +00:00
florian
dea1855126
o patch by J. Gareth Moreton, resolves #36352 :
...
* The supplied patch cleans up some vestigial code from the i386 peephole
optimizer that has since been superseded by the jump optimisations over
at #36271 .
* The PrePeepholeOptsCPU method has had a minor restructuring to better
handle the rare case where InsContainsSegRef() returns True and
p becomes something that is no longer an instruction (it ultimately
removes a conditonal check and some overhead from repeated function calls).
git-svn-id: trunk@43573 -
2019-11-24 16:12:02 +00:00
pierre
c882828fd0
Minimalist change to avoid Invalid Typecast error on class when compiled with '-CriotR -O2' for i386-go32v2 target
...
git-svn-id: trunk@43565 -
2019-11-23 22:44:30 +00:00
svenbarth
3e9bfedbc4
* ensure that the required functions are referenced for Win32 SEH for packages as well
...
git-svn-id: trunk@43552 -
2019-11-21 21:45:21 +00:00
svenbarth
2e259ee3cc
* the VMT of the exception class needs to be referenced indirectly
...
git-svn-id: trunk@43543 -
2019-11-21 21:44:48 +00:00
florian
2d3ef8b4bc
* pushf/push cs on all platforms when directly calling an interrupt procedure, with the
...
recent changes needed for 16 byte stack alignment it should work now
git-svn-id: trunk@43508 -
2019-11-17 14:16:32 +00:00
florian
87b3b089d6
* i386: more clean up of TCPUAsmOPtimizer.PeepHoleOptPass1Cpu
...
git-svn-id: trunk@43465 -
2019-11-14 21:26:48 +00:00
florian
632f13c47a
* i386 does not use anymore its own assembler optimizer loops
...
git-svn-id: trunk@43464 -
2019-11-14 21:14:01 +00:00
florian
7747c5fc27
-- Zusammenführen von r43307 bis r43443 in ».«:
...
D tests/webtbs/tw32219.pp
U compiler/i386/i386att.inc
U compiler/i386/i386atts.inc
U compiler/i386/i386int.inc
U compiler/i386/i386nop.inc
U compiler/i386/i386op.inc
U compiler/i386/i386prop.inc
U compiler/i386/i386tab.inc
U compiler/i8086/i8086att.inc
U compiler/i8086/i8086atts.inc
U compiler/i8086/i8086int.inc
U compiler/i8086/i8086nop.inc
U compiler/i8086/i8086op.inc
U compiler/i8086/i8086prop.inc
U compiler/i8086/i8086tab.inc
U compiler/x86/x86ins.dat
U compiler/x86_64/x8664ats.inc
U compiler/x86_64/x8664att.inc
U compiler/x86_64/x8664int.inc
U compiler/x86_64/x8664nop.inc
U compiler/x86_64/x8664op.inc
U compiler/x86_64/x8664pro.inc
U compiler/x86_64/x8664tab.inc
U tests/utils/avx/avxopcodes.pas
-- Aufzeichnung der Informationen für Zusammenführung von r42706 bis r43443 in ».«:
U .
git-svn-id: trunk@43444 -
2019-11-10 16:44:34 +00:00
tg74
1454e8b29d
new avx512-opcodes VBMI2,VNNI,BITALG ...
...
git-svn-id: branches/tg74/avx512merge@43406 -
2019-11-06 19:51:01 +00:00
florian
20a47afe13
* more aggressive LeaCallLeaRet2Jmp
...
git-svn-id: trunk@43373 -
2019-11-02 22:37:31 +00:00
florian
3487c34ed9
* unified TX86AsmOptimizer.OptPass1MOVAP and TX86AsmOptimizer.OptPass1VMOVAP
...
git-svn-id: trunk@43370 -
2019-11-02 18:48:23 +00:00
florian
fa9c7a92c7
-- Zusammenführen von r42725 bis r43306 in ».«:
...
A tests/webtbs/tw32219.pp
U tests/utils/avx/avxopcodes.pas
U tests/utils/avx/asmtestgenerator.pas
U compiler/i386/i386tab.inc
U compiler/i386/i386nop.inc
U compiler/i8086/i8086tab.inc
U compiler/i8086/i8086nop.inc
U compiler/x86_64/x8664tab.inc
U compiler/x86_64/x8664nop.inc
U compiler/x86/aasmcpu.pas
U compiler/x86/x86ins.dat
U compiler/x86/rax86.pas
-- Aufzeichnung der Informationen für Zusammenführung von r42706 bis r43306 in ».«:
U .
git-svn-id: trunk@43307 -
2019-10-23 18:17:50 +00:00
florian
c2a36826a7
* regenerated
...
git-svn-id: branches/tg74/avx512merge@43300 -
2019-10-21 20:08:27 +00:00
florian
14167ca84a
* potential fix for assembler MOVNTSD
...
git-svn-id: branches/tg74/avx512merge@43276 -
2019-10-20 15:51:18 +00:00
florian
fb91899457
* adapted 16 byte alignment handling on linux: it is now assumed that the callee tries to clear the stack, so in the caller, the stack is re-adjusted
...
git-svn-id: trunk@43176 -
2019-10-12 21:51:13 +00:00
tg74
05429fc4c2
bugfix 35700 - replace x86insdat-opcodeflags SCL_32,SCL_64 with \336\,\337\)
...
git-svn-id: branches/tg74/avx512merge@43152 -
2019-10-08 09:13:43 +00:00
florian
8ecdb2e9ca
+ dwarf support for tls threadvars
...
git-svn-id: trunk@43134 -
2019-10-05 20:48:31 +00:00
florian
a2d3522812
* general-dynamic -> global-dynamic
...
git-svn-id: trunk@43132 -
2019-10-05 20:48:29 +00:00
florian
03f7ef4c63
* renamed tls model switches and symbols to match gcc
...
git-svn-id: trunk@43122 -
2019-10-05 20:48:20 +00:00
tg74
f0002fe644
bugfix 35700 without opcode flags
...
git-svn-id: branches/tg74/avx512merge@43106 -
2019-10-02 20:39:41 +00:00
florian
11319353fd
* loading a got depends only on the fact if a got is needed and not if pic shall be generated
...
git-svn-id: trunk@43075 -
2019-09-25 21:19:06 +00:00
florian
56d91b4ca7
+ support tls threadvars with the internal assembler
...
git-svn-id: trunk@43070 -
2019-09-25 21:19:03 +00:00
florian
bd1d6f335d
* if we load a got depends only if one is needed, not if PIC is generated as this could be also caused by tls support
...
git-svn-id: trunk@43055 -
2019-09-22 15:27:51 +00:00
pierre
0fa70759a2
* cutils.pas (size_2_align): Move to..
...
globals.pas (size_2_align): ...here.
Change parameter type to asizeuint to avoid overflows.
(var_align_size, const_align_size): Also change parameter type to asizeuint.
i386/cpupara.pas, i8086/cpupara.pas, x86_64/cpupara.pas: Add globals
to implementation uses clause because of size_2_align move.
git-svn-id: trunk@43022 -
2019-09-16 14:50:43 +00:00
florian
896e031e84
* interrupt procedures fixed for i386 targets with a fixed stack with 16 byte alignment
...
git-svn-id: trunk@43006 -
2019-09-15 17:17:27 +00:00
tg74
11c46f9345
bugfix 35700 xmmrm - zmmrm, mem32/64
...
git-svn-id: branches/tg74/avx512merge@42955 -
2019-09-08 19:12:36 +00:00
tg74
41c500e51a
preparing for bugfix 35700
...
git-svn-id: branches/tg74/avx512merge@42838 -
2019-08-26 19:33:12 +00:00
florian
ba203c0564
+ x86 makes use of fpu_capabilities
...
* moved CPUX86_HAS_AVXUNIT to FPUX86_HAS_AVXUNIT
+ mm register allocator can be initialized with 32 mm registers of AVX512
git-svn-id: trunk@42707 -
2019-08-16 11:35:03 +00:00
florian
70a2b0b260
* restored change information for FMA instructions which got lost somewhere
...
git-svn-id: branches/tg74/avx512@42651 -
2019-08-11 16:59:10 +00:00
florian
f883dd6dbb
Synchronized with trunk, part 2 (make all works, avx-512 support not yet tested, no regression testing yet)
...
git-svn-id: branches/tg74/avx512@42643 -
2019-08-10 19:38:35 +00:00
florian
746bfced25
Synchronized with trunk, part 1 (only make cycle tested, make all is broken, avx-512 support not yet tested
...
git-svn-id: branches/tg74/avx512@42642 -
2019-08-10 13:53:20 +00:00