Commit Graph

575 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
nickysn
64bb0359d2 * synchronized with trunk
git-svn-id: branches/wasm@48412 -
2021-01-24 23:38:35 +00:00
yury
0a021be803 * Corrected visibility of overridden methods.
git-svn-id: trunk@48385 -
2021-01-24 12:41:12 +00:00
yury
64c586b86d * Removed/ifdefed lots of unused variables.
git-svn-id: trunk@48384 -
2021-01-24 12:24:01 +00:00
nickysn
f5d75423b9 * fixed ti8086vecnode.get_address_type not returning result
git-svn-id: branches/wasm@48377 -
2021-01-24 03:12:22 +00:00
nickysn
a69f7094dd + override get_address_type for the i8086 code generator and return near pointer
types, because that's what's needed for the i8086 address calculations in
  update_reference_reg_mul (the indexing operation is performed on the offset
  only)

git-svn-id: branches/wasm@48161 -
2021-01-15 15:47:38 +00:00
florian
b03eefd5d0 * Ch_ information for vreduce* fixed
git-svn-id: trunk@47842 -
2020-12-23 17:58:07 +00:00
florian
aeff5b3577 * improved change information
git-svn-id: trunk@47781 -
2020-12-15 21:33:33 +00:00
florian
92520c423e * x86 change information updated
git-svn-id: trunk@47698 -
2020-12-06 16:22:38 +00:00
pierre
a7fa31aa10 Fix i8086 compiler failure due to move of printnodeindention variable into verbose unit in commit #47658
git-svn-id: trunk@47664 -
2020-12-02 09:29:08 +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
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
963fe73d19 + support all XSAVE instructions, resolves #37864
git-svn-id: trunk@47042 -
2020-10-03 14:51:31 +00:00
yury
e5a923eb7a * 8086: Proper implementation of: If a far procvar is called, it must be in a memory location. This fixes a hack to emulate CALL reg1:reg2.
git-svn-id: trunk@46641 -
2020-08-23 10:26:54 +00:00
yury
04baeb2bcf * 8086: Reverted r46557. It must be implemented differently.
git-svn-id: trunk@46561 -
2020-08-23 00:17:40 +00:00
yury
00db7646c8 * 8086: Fixed register allocation failure after r46559.
git-svn-id: trunk@46560 -
2020-08-22 23:42:12 +00:00
yury
5ec101d578 * 8086: Do not destroy contents of the BX parameter when calling a procvar by ref with a base.
git-svn-id: trunk@46559 -
2020-08-22 23:06:55 +00:00
yury
eee67af684 * 8086: Fixed using far procvars in a near code memory model and vice versa.
git-svn-id: trunk@46558 -
2020-08-22 22:17:03 +00:00
yury
6a3971c9b6 * 8086: If a far procvar is called, it must be in a memory location. This fixes a hack to emulate CALL reg1:reg2.
git-svn-id: trunk@46557 -
2020-08-22 22:12:40 +00:00
yury
97eb32e6fd * 8086: Also fixed loading a register to a 32-bit ref in case the source register is used as the ref base or index.
git-svn-id: trunk@46491 -
2020-08-19 10:27:19 +00:00
yury
4873ec73a7 * 8086: Fixed loading a 32-bit ref to a register in case the target register is used as the ref base or index.
git-svn-id: trunk@46490 -
2020-08-19 10:20:47 +00:00
yury
e4b717c817 * 8086: More fixes for Ofs() handling.
git-svn-id: trunk@46478 -
2020-08-18 09:52:40 +00:00
yury
2186846ab1 * 8086: Fixed an internal error for cases like FarPtr2 := FarPointer($12345678) + int16;
git-svn-id: trunk@46477 -
2020-08-18 09:19:20 +00:00
yury
222f981dd1 * 8086: Fixed Ofs() for far routines.
resultdef of typeconvnode.typecheck_proc_to_procvar() is reused every time you get an address of a proc. So it is forbidden to change the far/near attribute of resultdef - it leads to mess during code generation. 
  Instead it is needed to use separate reusable resultdefs with new flags pc_far_address and pc_offset.

git-svn-id: trunk@46470 -
2020-08-17 13:37:55 +00:00
yury
631ec77157 * 8086: Fixed calling of local routines with the near attribute in the 'far code' memory models.
git-svn-id: trunk@46431 -
2020-08-14 16:17:18 +00:00
yury
0000682043 * i8086: When a ref points to the 32-bit data, preload the ref base to a temp register to reduce spilling.
git-svn-id: trunk@46204 -
2020-08-03 18:52:17 +00:00
yury
e70c898503 * Removed the i8086 specific hack. Since r46199 the register allocator is able to handle the problem code.
git-svn-id: trunk@46200 -
2020-08-03 16:51:20 +00:00
yury
2839533776 * i8086: Enabled the cs_opt_regvar optimization. It works fine now.
git-svn-id: trunk@45847 -
2020-07-24 16:45:44 +00:00
yury
34a5dfc885 * i8086: Fixed referencing using BP and SP as base when FAR or HUGE memory model is used.
git-svn-id: trunk@45846 -
2020-07-24 16:42:09 +00:00
yury
b1b9d1f341 * i8086: Removed internal error, since global vars can be in registers if used only in pascalmain.
git-svn-id: trunk@45845 -
2020-07-24 16:39:26 +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
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
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
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
Jonas Maebe
1e3f72403e * renamed getintparaloc to getcgtempparaloc
o it can be used for more than integer parameters

git-svn-id: trunk@43781 -
2019-12-24 22:12:25 +00:00
florian
ef87879402 * common naming for fpu_none string
git-svn-id: trunk@43768 -
2019-12-24 16:14:28 +00:00