nickysn
|
c83032992d
* more fixes to the 3-op IMUL spilling:
|
12 gadi atpakaļ |
sergei
|
e6a9f3b15b
* Fixed spilling of 3-operand IMUL instruction (went unnoticed this far because such instructions were not emitted by compiler).
|
12 gadi atpakaļ |
florian
|
4d5119bf1c
* fixes several issues which cause warnings by the dfa code when using it to detect uninitialized variables
|
12 gadi atpakaļ |
florian
|
f132a804d6
+ handle 32 bit references on x86-64 so lea can be used for 32 bit arithmetics
|
12 gadi atpakaļ |
nickysn
|
f6e846c574
+ added the NEC V20/V30 instructions
|
12 gadi atpakaļ |
sergei
|
5af873ee5b
* x86 targets: Profiling shows that quite a bit of time is spent in findreg_by_number(), despite it uses binary search. Worse, it is repeated for every piece of register information. Trying to get rid of some of these calls: rearranged registers so that their "opcode" matches 3 LSBs of superregister number (with a few exceptions described at the beginning of x86reg.dat). This allows to lookup opcodes in regval() with O(1) complexity, and removes need in rXXXop.inc files.
|
12 gadi atpakaļ |
sergei
|
2c79314d59
* IF_SANDYBRIDGE designates CPU family, not feature. Mostly a cosmetic change, since we don't use these flags for anything.
|
12 gadi atpakaļ |
sergei
|
7e6a7f20cc
- Removed unused variables and dead assignments.
|
12 gadi atpakaļ |
florian
|
9b6094a58c
+ added a few BMI instructions to see if they can be encoded
|
12 gadi atpakaļ |
florian
|
e81d2d1f3b
* basic avx support for floating point operations (use -Cfavx to activate)
|
12 gadi atpakaļ |
nickysn
|
92afd7cccd
+ R_SUBH support added in x86/aasmcpu.spilling_create_load and spilling_create_store
|
12 gadi atpakaļ |
nickysn
|
fef3732884
* i8086 compilation fixes
|
12 gadi atpakaļ |
florian
|
ad0b0455d8
* extended comment
|
12 gadi atpakaļ |
nickysn
|
c3aaa37c0c
* fixed a bug which caused non commutative fpu instructions to be wrong when using an intel-style external assembler and compiling a smartlinked unit
|
12 gadi atpakaļ |
florian
|
24f9d0d770
* cancel warning on i8086 because it stops compilation (the compiler is normally build with -Sew)
|
12 gadi atpakaļ |
Jonas Maebe
|
5d628b29bb
* set the subregsize of OS_M64 SSE registers to R_SUBQ so we can
|
12 gadi atpakaļ |
florian
|
a499a30ca9
* fixes to avx support by Torsten Grundke
|
13 gadi atpakaļ |
florian
|
283ff05127
* merged avx support in inline assembler developed by Torsten Grundke
|
13 gadi atpakaļ |
sergei
|
21524c56c6
* If subtrahend symbol belongs to current section, generate a RELATIVE relocation instead of PIC_PAIR. Now the corresponding relative expressions in assembler operands compile correctly on all i386 targets (and x86_64 too, although such feature is less important there).
|
13 gadi atpakaļ |
Jonas Maebe
|
313e976256
* avoid spurious range errors due to longint+qword expressions (results in
|
13 gadi atpakaļ |
paul
|
4b24a58871
compiler: remove/hide few unused variables
|
14 gadi atpakaļ |
florian
|
87696a4b70
* cr*, dr*, tr* registers are 64 bit on x86-64
|
14 gadi atpakaļ |
florian
|
8308b46a94
+ support for assembler instructions with four operands
|
14 gadi atpakaļ |
pierre
|
8a0ed92957
* Remove useless code for i386
|
14 gadi atpakaļ |
sergei
|
354d0520b7
+ x86 assembler: fixed MOVABS instruction (it is a x86_64-only subset of MOV with 8-byte immediates/offsets) and same-form encodings of MOV instruction.
|
14 gadi atpakaļ |
sergei
|
d89aeeadaf
x86 assembler:
|
14 gadi atpakaļ |
sergei
|
9e8a31193b
x86 assembler:
|
14 gadi atpakaļ |
sergei
|
d908fb42f7
x86 assembler fixes:
|
14 gadi atpakaļ |
sergei
|
86d0c7f4c5
* x86 assembler: write REX prefix before the first literal byte of instruction (this becomes possible once the instruction table has all $66,$F2,$F3 prefixes changed to non-literal control codes). This way it is no longer necessary to manually specify position of REX in every instruction entry (code \323 becomes obsolete), and the situation when REX is not written (IE 200603191) is hopefully gone forever.
|
14 gadi atpakaļ |
sergei
|
6d0d8734e0
* x86 assembler: operand type declarations rewritten using expressions instead of literal numbers where possible. Reassigned bit values to match the current NASM (the values themselves don't actually matter and can be chosen pretty arbitrary. What matters is the clean separation between different parts of the bitmask. In particular, the old value of XMM register class bit was equal to OT_BITS80, causing matching algorithm to effectively ignore it and accept e.g. MMX registers in place of XMM ones, part of Mantis #14387).
|
14 gadi atpakaļ |