Commit Graph

308 Commits

Author SHA1 Message Date
Jeppe Johansen
135a88c888 movhlps/movlhps only take xmm registers.
Handle spilling of SSE registers.

git-svn-id: trunk@44272 -
2020-03-06 17:19:51 +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
Jonas Maebe
9bd33f7a45 + support for LLVM metadata constant string parameters
o they are implemented as a new metadata register class, whereby the
     subregister indicates the metadata type (currently always a string)
     and the superregister is an index in the metadata array (which
     contains the strings). LLVM metadata can only be passed as parameters
     to intrinsics in bitcode, so moves of metadata into other registers
     triggers internal errors and when moving them into parameters, we
     replace the parameter's register with the metadata register (and look
     up the corresponding string when writing out the bitcode)

git-svn-id: trunk@43816 -
2019-12-30 15:04:57 +00:00
florian
e1433adc2e * check in the internal assembler for references with incorrect use of RIP
+ test

git-svn-id: trunk@43461 -
2019-11-13 20:47:42 +00:00
pierre
7e5bf5a9fb Fix compilation error for i8086 cpu target
git-svn-id: trunk@43308 -
2019-10-24 07:03:14 +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
tg74
e019d810b0 bugfix movntsd, movntss
git-svn-id: branches/tg74/avx512merge@43284 -
2019-10-21 09:39:53 +00:00
florian
85ca3248bf * clean up overlefts from "SCL" based approach
git-svn-id: branches/tg74/avx512merge@43275 -
2019-10-20 14:43:16 +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
tg74
f0002fe644 bugfix 35700 without opcode flags
git-svn-id: branches/tg74/avx512merge@43106 -
2019-10-02 20:39:41 +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
14b7eaa46f + x86-64: implemented support for relocation needed by tls threadvars in the binary elf writer
git-svn-id: trunk@43067 -
2019-09-25 21:18:59 +00:00
tg74
df199fbe23 bugfix 35700 xmmrm - zmmrm, mem32/64
git-svn-id: branches/tg74/avx512merge@42956 -
2019-09-08 19:13:42 +00:00
tg74
6a9e48c904 preparing for bugfix 35700 and cleanup
git-svn-id: branches/tg74/avx512merge@42834 -
2019-08-26 19:25:13 +00:00
tg74
9baf452681 Bugfix GATHER/SCATTER memref
git-svn-id: branches/tg74/avx512merge@42723 -
2019-08-18 04:39:36 +00:00
florian
46b4f91175 * compilation on i386-linux fixed
git-svn-id: trunk@42675 -
2019-08-13 09:45:13 +00:00
florian
413beee9ae -- Zusammenführen von r42652 bis r42673 in ».«:
U    compiler/x86/aasmcpu.pas
-- Aufzeichnung der Informationen für Zusammenführung von r42652 bis r42673 in ».«:
 U   .

git-svn-id: trunk@42674 -
2019-08-13 08:54:47 +00:00
tg74
ad791e8e34 bugfix error with avx-memory-parameter OT_MEM128,OT_MEM256,OT_MEM512
git-svn-id: branches/tg74/avx512@42667 -
2019-08-12 20:59:53 +00:00
florian
5947143d8f * intel asm reader: try to read avx512 extensions only if the instruction supports them
* cleanup

git-svn-id: trunk@42656 -
2019-08-12 10:46:19 +00:00
florian
4c9a0403f4 * compilation on i386 fixed
git-svn-id: trunk@42655 -
2019-08-11 19:35:34 +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
Jonas Maebe
281b3ad276 * fix case completeness and unreachable code warnings in compiler that would
be introduced by the next commit

git-svn-id: trunk@42046 -
2019-05-12 14:29:03 +00:00
florian
4f0da5fcc3 + patch by Marģers to support the x86 assembler instructions blsi, blsr, blsmsk, adcx, adox, movbe, pclmulqdq, resolves #34815 and #34799
+ avxopcodes tests also movbe and pclmulqdq

git-svn-id: trunk@40951 -
2019-01-20 18:50:12 +00:00
florian
72416edcc4 + support for tlsm_general on i386-linux
git-svn-id: trunk@40281 -
2018-11-11 17:32:20 +00:00
yury
4357caaad8 * Removed unused local vars.
git-svn-id: trunk@40183 -
2018-11-02 18:44:29 +00:00
florian
cdce68451a - x86 align does not use a register anymore, code removed
git-svn-id: trunk@40157 -
2018-11-01 20:49:15 +00:00
tg74
60a75a2277 delete testcode
git-svn-id: branches/tg74/avx512@39936 -
2018-10-15 10:46:41 +00:00
tg74
1ef9cc01e6 avx512 disp8*N
git-svn-id: branches/tg74/avx512@39909 -
2018-10-09 21:19:52 +00:00
tg74
fba72b280b avx512 broadcast vcvt...,vfpclass...
git-svn-id: branches/tg74/avx512@39778 -
2018-09-19 15:28:15 +00:00
tg74
4265f4d6a5 avx512 broadcast for special opcodes vfpclass.., vcvt...
git-svn-id: branches/tg74/avx512@39768 -
2018-09-19 06:25:42 +00:00
tg74
3759eac608 bugfix avx512 add ZMMReg for gather/scatter in intelOS32
git-svn-id: branches/tg74/avx512@39741 -
2018-09-12 06:11:44 +00:00
tg74
8b9d7be8e5 bugfix OS32
git-svn-id: branches/tg74/avx512@39719 -
2018-09-10 06:18:48 +00:00
tg74
1d9cbb4dcb new AVX512 opcodes
git-svn-id: branches/tg74/avx512@39705 -
2018-09-03 05:40:44 +00:00
tg74
5e1dc1a807 bugfix for test tasm9 32bit
git-svn-id: branches/tg74/avx512@39695 -
2018-09-01 08:26:18 +00:00
tg74
6f64177c6a bugfix avx512 OS32bit EVEX-coding
git-svn-id: branches/tg74/avx512@39661 -
2018-08-21 22:12:36 +00:00
tg74
29690162b8 bugfix OS32
git-svn-id: branches/tg74/avx512@39650 -
2018-08-19 18:41:45 +00:00
tg74
7c5cefad36 bugfix OS32
git-svn-id: branches/tg74/avx512@39648 -
2018-08-19 16:35:23 +00:00
tg74
7b8715184a bugfix OS32
git-svn-id: branches/tg74/avx512@39647 -
2018-08-19 16:31:09 +00:00
tg74
2b1da37d66 new avx512 instructions and bugfixes avx512
git-svn-id: branches/tg74/avx512@39636 -
2018-08-19 10:18:32 +00:00
tg74
867d145e50 support vector operand bcst,{sae},{er} + k-register
git-svn-id: branches/tg74/avx512@39457 -
2018-07-16 17:06:57 +00:00
tg74
4dc5442fa5 support vector operand writemask,zeroflag
git-svn-id: branches/tg74/avx512@39359 -
2018-07-02 20:20:03 +00:00
tg74
31e4d4ef5e AVX512 support for MMRegister xmm16..31 and ymm16..31, zmm0..31, vpaddsb support AVX512
git-svn-id: branches/tg74/avx512@39196 -
2018-06-08 06:53:35 +00:00
marco
f0042a4719 * vcmppd hardcoded primitives like vcmpeqpd.
* required increasing maxinfolen to 9 

git-svn-id: trunk@38404 -
2018-03-03 23:32:54 +00:00
florian
f66a91499d * FPC uses meanwhile more mov instructions, so extended taicpu.is_same_reg_move to support them
git-svn-id: trunk@38264 -
2018-02-17 09:45:19 +00:00
florian
31f78ea2b6 + implementation of the vectorcall calling convention by J. Gareth Moreton
+ tests

git-svn-id: trunk@38206 -
2018-02-11 17:50:37 +00:00
florian
e6a6938787 * make fpu/mmx/xmm/ymm registers numbers instead of flags to have enough space for zmm/bnd/k registers
git-svn-id: trunk@38116 -
2018-02-04 20:29:41 +00:00
nickysn
c464f7fa56 * fixed the SEG inline asm directive when used with 32-bit registers on the i8086 target
git-svn-id: trunk@37613 -
2017-11-22 15:04:30 +00:00
nickysn
8a0d8f025b * fixed another i8086 inline asm 32-bit constant bug (e.g. in 'or eax, 80000001h')
git-svn-id: trunk@37521 -
2017-10-25 19:38:37 +00:00
nickysn
325e66287c * fix for inline asm of instructions with 32-bit constant operands on i8086
git-svn-id: trunk@37519 -
2017-10-25 18:03:22 +00:00