Commit Graph

703 Commits

Author SHA1 Message Date
florian
07a8e6c1d6 + some more change information entries added
git-svn-id: trunk@49092 -
2021-03-31 18:53:31 +00:00
florian
aa1a68000b * prefetch instructions read only the operand
git-svn-id: trunk@49089 -
2021-03-30 21:24:00 +00:00
florian
2b47425f08 + tx64tryfinallynode.dogetcopy properly implemented, resolves #37305
git-svn-id: trunk@48972 -
2021-03-14 21:23:05 +00:00
florian
ecc3ce64ea * x86: some fixes to enable 8 and 16 bit operations
git-svn-id: trunk@48166 -
2021-01-16 22:46:25 +00:00
florian
8618a3b21f * simplify tx8664shlshrnode.pass_generate_code, it should not mess with the result type, this
is a matter of the type check pass

git-svn-id: trunk@48164 -
2021-01-16 15:38:29 +00:00
florian
9003114a8f + support R_X86_64_GOTPCRELX and R_X86_64_REX_GOTPCRELX
git-svn-id: trunk@48156 -
2021-01-14 21:36:12 +00:00
florian
a286ad9d77 * do not extend 8 bit return values to 32 bit when loading them into eax,
this is not required by the api, neither does e.g. clang it

git-svn-id: trunk@48136 -
2021-01-11 21:47:32 +00:00
florian
4e9b42344e + AddLea2Lea optimization
* improved LeaLea2Lea

git-svn-id: trunk@48116 -
2021-01-08 22:22:56 +00:00
florian
28efcfba65 + patch by J. Gareth Moreton: Advanced MOVZX optimisations, resolves #38294
git-svn-id: trunk@48086 -
2021-01-05 15:15:41 +00:00
florian
b03eefd5d0 * Ch_ information for vreduce* fixed
git-svn-id: trunk@47842 -
2020-12-23 17:58:07 +00:00
florian
b713c7380b * implemented UseAVX512 properly
+ make use of VREDUCE* for frac(...) if AVX512QD is a available

git-svn-id: trunk@47840 -
2020-12-23 17:25:09 +00:00
florian
2a990b8167 + patch by J. Gareth Moreton: some new x86 assembler optimizations, resolves #38130
git-svn-id: trunk@47824 -
2020-12-20 18:05:43 +00:00
florian
aeff5b3577 * improved change information
git-svn-id: trunk@47781 -
2020-12-15 21:33:33 +00:00
florian
b90ec52a0e * x86: apply VOpVmov2VOp optimization to vmins*/vmaxs*
git-svn-id: trunk@47768 -
2020-12-13 09:52:45 +00:00
florian
92520c423e * x86 change information updated
git-svn-id: trunk@47698 -
2020-12-06 16:22:38 +00:00
florian
c890a126fe * allow an AT&T suffix for movabs
git-svn-id: trunk@47650 -
2020-11-30 22:07:33 +00:00
florian
fc960879de -- Zusammenführen von r47033 bis r47401 in ».«:
C    compiler/i386/i386nop.inc
U    compiler/i386/i386tab.inc
U    compiler/i386/i386atts.inc
U    compiler/i386/i386att.inc
C    compiler/i8086/i8086nop.inc
U    compiler/i8086/i8086tab.inc
U    compiler/i8086/i8086atts.inc
U    compiler/i8086/i8086att.inc
U    compiler/x86/x86ins.dat
C    compiler/x86/rax86.pas
U    compiler/x86/aasmcpu.pas
U    compiler/x86/cpubase.pas
U    compiler/x86/agx86att.pas
U    compiler/x86/itcpugas.pas
U    compiler/x86/rax86att.pas
C    compiler/x86_64/x8664nop.inc
U    compiler/x86_64/x8664tab.inc
U    compiler/x86_64/x8664ats.inc
U    compiler/x86_64/x8664att.inc
U    compiler/utils/mkx86ins.pp
U    tests/utils/avx/asmtestgenerator.pas
U    tests/utils/avx/avxopcodes.pas
-- Aufzeichnung der Informationen für Zusammenführung von r47033 bis r47401 in ».«:
 U   .
Konfliktübersicht:
  Textkonflikte: 4
Konfliktübersicht:
  Textkonflikte: 4

git-svn-id: trunk@47402 -
2020-11-12 20:31:29 +00:00
tg74
897322868b bugfix avx512 shift-opcodes vpsl..,vpsr.. - reg,mem,const => EVEX-coded = yes / VEX-coded = no
git-svn-id: branches/tg74/avx512-0037785@47401 -
2020-11-12 16:02:38 +00:00
tg74
c25c24e411 bugfix vfnmadd231sd
git-svn-id: branches/tg74/avx512-0037785@47388 -
2020-11-11 16:25:11 +00:00
florian
78244d89dc * use VPXORD in avx-512 mode as VPXOR does not work for the upper 16 registers
git-svn-id: trunk@47368 -
2020-11-09 21:21:36 +00:00
florian
81e8982dd4 + completed Ch_* information for VMOVD*
git-svn-id: trunk@47332 -
2020-11-07 10:42:43 +00:00
tg74
5a62e9fbd9 bugfix vpexpandb/w
git-svn-id: branches/tg74/avx512-0037785@47251 -
2020-10-29 12:02:27 +00:00
tg74
ee4859e1e2 bugfix vpexpandb/w
git-svn-id: branches/tg74/avx512-0037785@47239 -
2020-10-28 16:00:34 +00:00
tg74
ab22f9b3fb bugfix internal assembler - disp8 T1S (vpcompressb,vpcompressw)
git-svn-id: branches/tg74/avx512-0037785@47161 -
2020-10-23 15:20:39 +00:00
tg74
c4d80b1694 bugfix external gnu assembler - special handling for any vcvt..-opcodes (opsize S_XMM,S_YMM = prefix (x,y); S_ZMM = without prefix)
git-svn-id: branches/tg74/avx512-0037785@47149 -
2020-10-21 12:41:32 +00:00
tg74
1bad350d43 bugfix external assembler gnu-assembler
git-svn-id: branches/tg74/avx512-0037785@47141 -
2020-10-19 15:27:43 +00:00
tg74
c65b042856 bugfix opcodes cvt.., vcvt.. memory operands and typesize
git-svn-id: branches/tg74/avx512-0037785@47113 -
2020-10-15 08:22:29 +00:00
florian
637976e83f * patch by Marģers to unify internal error numbers, resolves #37888
git-svn-id: trunk@47103 -
2020-10-13 19:59:01 +00:00
florian
a3920d5356 * proper change information for avx-512 vcvt* instructions
git-svn-id: trunk@47080 -
2020-10-10 21:08:15 +00:00
florian
a8b387a166 + make use of avx-512 instructions vcvtuis2s* if possible
git-svn-id: trunk@47078 -
2020-10-10 21:08:13 +00:00
florian
ad8b2eaf8a * mm registers 16-31 are also volatile during a call
git-svn-id: trunk@47077 -
2020-10-10 21:08:12 +00:00
florian
8e62bf649e * load 0.0 by (V)XORPS/D instead of (V)PXOR in mm registers
git-svn-id: trunk@47073 -
2020-10-10 13:23:35 +00:00
florian
c2c7c23f21 * fix #35841 also for break and continue
git-svn-id: trunk@47070 -
2020-10-09 20:55:38 +00:00
florian
73c041a854 * patch by J. Gareth Moreton: propagate exit use in nested try...except statements,
resolves #35841

git-svn-id: trunk@47066 -
2020-10-08 20:38:19 +00:00
florian
963fe73d19 + support all XSAVE instructions, resolves #37864
git-svn-id: trunk@47042 -
2020-10-03 14:51:31 +00:00
florian
1fb7603f61 * x86: ImulMov2Imul optimization
* x86: apply OptPass1VOP also to vsqrts*

git-svn-id: trunk@46955 -
2020-09-25 20:06:27 +00:00
florian
6f661e44d0 * do not throw an internal error later on in case of a recursive call, if the declaration of the function was faulty, resolves #37460
git-svn-id: trunk@45975 -
2020-07-31 21:03:35 +00:00
Jonas Maebe
eb7ba1690e * mark all external assemblers using an LLVM tool using af_llvm
+ added support for constructing target triplets
  * pass "-target triplet" when using an LLVM assembler
   o removed no longer needed $DARWINVERSION and $ARCH parameters
  * consistently use as_clang_gas when clang is used to assembler GAS-style
    assembly, and rename as_llcm_clang to as_clang_llvm (for consistency)
  * support pipe assembling when using clang on *nix in all cases

git-svn-id: trunk@45807 -
2020-07-19 14:30:35 +00:00
florian
84a1f614d9 * fix several double ;
git-svn-id: trunk@45488 -
2020-05-24 17:52:09 +00:00
florian
afb68dbcf3 * factored out OptPass1VPXor
git-svn-id: trunk@45487 -
2020-05-24 17:52:07 +00:00
florian
82a3877126 + x86: track use of full ymm registers and generate vzeroupper if needed
git-svn-id: trunk@45484 -
2020-05-24 17:52:05 +00:00
florian
809fb83334 * adapt optimizer to handle push/pop for stack alignment
* adapt test

git-svn-id: trunk@45477 -
2020-05-23 17:50:14 +00:00
florian
8f0a3cfce7 * x86-64: adjust stack by push/pop if possible
git-svn-id: trunk@45476 -
2020-05-23 17:50:13 +00:00
florian
9b54588d75 + PXorPXor2PXor optimization
git-svn-id: trunk@45430 -
2020-05-18 21:28:45 +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
svenbarth
2b59000d56 + implement compiler support for SEH on Win64
Note: due to the way we access variables in a nested function (which in this case includes exception filters) we can not extract the finally handlers and call them (like we do on i386 and x86_64, but instead we duplicate the finally code)

git-svn-id: trunk@44941 -
2020-04-21 06:06:05 +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
ef3155c2ef * there is no exit stackframe needed if a subroutine never returns
git-svn-id: trunk@44191 -
2020-02-16 13:06:19 +00:00
florian
892454ff17 * patch by J. Gareth Moreton: optimize MOVSXD as well, resolves #36700
git-svn-id: trunk@44185 -
2020-02-15 20:53:40 +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