Commit Graph

346 Commits

Author SHA1 Message Date
florian
8db51a367e * forgotten part of last commit 2024-06-01 18:53:50 +02:00
florian
055681c8b4 * correct change information for some instructions where the change
information cannot be modelled in x86ins.dat
2024-06-01 18:46:23 +02:00
florian
d5ab671ec3 * patch by Marģers: patch to enable ENTER asm instruction
+ test
2024-05-29 23:15:09 +02:00
Pierre Muller
5c564ea940 Use writeint8/writeuint8 methods to avoid cross-endian issues 2024-02-19 20:19:35 +01:00
Nikolay Nikolov
b5fa73b82c * some fixes for the x86 assembler writer, when running on a big-endian hosted platform 2023-11-02 12:25:05 +02:00
florian
803a6fea24 * throw an error if instructions which needs an operand size is used with one operand being a reference without size 2023-09-16 23:25:31 +02:00
Nikolay Nikolov
11712658b0 + implemented WebAssembly code generator support for funcref and externref data
types, using new register types R_FUNCREFREGISTER and R_EXTERNREFREGISTER
2023-06-07 05:25:57 +03:00
J. Gareth "Curious Kit" Moreton
e748e4c7ab * x86: Added new emit_reg_ref_reg routine and related methods to support BMI2 instructions 2022-11-06 15:42:09 +00:00
Jonas Maebe
2ce3656ed3 x86 BuildInsTabMemRefSizeInfoCache: don't read past end of instab 2022-07-06 22:25:05 +02:00
florian
4808ed63e3 * use MOVDQA instead of MOVQ in spilling_create_store
* call OptPass1_V_MOVAP for MOVDQA
2022-04-19 22:35:02 +02:00
florian
2f1eb9be18 * support R_SUBMMX in spilling_create_store, resolves #39672 2022-04-18 23:22:47 +02:00
florian
c42b8c43bd * \t => spaces 2022-02-07 23:04:20 +01:00
florian
07413be8b5 + being able to define change information for xmm0
* corrected change information for SHA256RNDS2
2021-10-10 23:07:23 +02:00
J. Gareth "Curious Kit" Moreton
d502bccc1b A pair of inlines 2021-10-10 09:19:57 +00:00
florian
6c7e6191f6 + support of SHA extension in the internal assembler 2021-10-09 15:44:46 +02:00
tg74
aff1f4999c bugfix 0037785 cvtsi2sd,cvtsi2ss for platform i386
git-svn-id: branches/tg74/avx512-0037785@48526 -
2021-09-01 09:29:49 +02:00
tg74
472f8c900b cleanup + add internal error if all asmr_e_not_supported_combination_attsuffix_memrefsize_type are reported
git-svn-id: branches/tg74/avx512-0037785@48148 -
2021-09-01 09:29:49 +02:00
tg74
17d1b8afdb cleanup bugfix 0037785
git-svn-id: branches/tg74/avx512-0037785@48145 -
2021-09-01 09:29:48 +02:00
florian
ce1f115b2d * use str(...) instead of typinfo unit
git-svn-id: branches/tg74/avx512-0037785@48085 -
2021-09-01 09:29:48 +02:00
tg74
b6cf482fcf internal assembler-reader x86 (local/global var) - validate asm-opcode-attsuffix and memrefsize
git-svn-id: branches/tg74/avx512-0037785@47984 -
2021-09-01 09:29:48 +02:00
tg74
195c8b599c internal assembler-reader x86 opsize local/global var - cleanup
git-svn-id: branches/tg74/avx512-0037785@47899 -
2021-09-01 09:26:38 +02:00
tg74
b7ade3e566 internal assembler-reader x86 opsize local/global var - cleanup
git-svn-id: branches/tg74/avx512-0037785@47885 -
2021-09-01 09:26:38 +02:00
tg74
96fcd2e760 bugfix internal assembler-reader x86 opsize local va
git-svn-id: branches/tg74/avx512-0037785@47681 -
2021-09-01 09:24:32 +02:00
tg74
0530a2f6e7 working on new testmethods and bug-fixing size of (memref-operands | global and local variable
git-svn-id: branches/tg74/avx512-0037785@47678 -
2021-09-01 09:24:32 +02:00
florian
ce1f9cce01 * throw an error if esp/rsp are used as index register
git-svn-id: trunk@49568 -
2021-06-27 21:21:19 +00:00
pierre
17e3c31b7e Fix gotpcrel relocation for TESTQ x86_64 instruction
git-svn-id: trunk@49252 -
2021-04-23 21:52:24 +00:00
yury
221efd7a80 * Commented out some unused (yet?) local variables.
git-svn-id: trunk@48386 -
2021-01-24 13:04:17 +00:00
yury
64c586b86d * Removed/ifdefed lots of unused variables.
git-svn-id: trunk@48384 -
2021-01-24 12:24:01 +00:00
florian
9c7cb3dbd7 * fix spilling of avx(512) registers
* get_scalar_mm_op fixed for M256

git-svn-id: trunk@47524 -
2020-11-21 22:30:34 +00:00
pierre
f0b22a1569 Revert commit #47257, Disable use of cmov instructions in alignment patterns for some i386 targets (it prevents use of some emulators)
Replace it by a new set of i386 targets, for which the default cpu is set to i80486 instead of pentium2
  to avoid (for default configuration) use of CMOVxx or PREFETCHyyy instructions, not supported by some emulators.

git-svn-id: trunk@47433 -
2020-11-16 17:04:46 +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
7eb20b88a9 cleanup
git-svn-id: branches/tg74/avx512-0037785@47352 -
2020-11-08 22:16:55 +00:00
pierre
f674ed0324 Disable use of cmov instructions in alignment patterns for some i386 targets (it prevents use of some emulators)
git-svn-id: trunk@47257 -
2020-10-30 16:12:47 +00:00
tg74
673a113c0f bugfix disp8*N global variable
git-svn-id: branches/tg74/avx512-0037785@47215 -
2020-10-27 05:16:06 +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
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
cb11e2568d + Xtensa: patch by Christo Crause to add optional MAC16 registers, resolves #37130
git-svn-id: trunk@45679 -
2020-06-22 19:05:13 +00:00
florian
84a1f614d9 * fix several double ;
git-svn-id: trunk@45488 -
2020-05-24 17:52:09 +00:00
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