Commit History

Author SHA1 Message Date
  nickysn c83032992d * more fixes to the 3-op IMUL spilling: 11 years ago
  sergei e6a9f3b15b * Fixed spilling of 3-operand IMUL instruction (went unnoticed this far because such instructions were not emitted by compiler). 11 years ago
  florian 4d5119bf1c * fixes several issues which cause warnings by the dfa code when using it to detect uninitialized variables 11 years ago
  florian f132a804d6 + handle 32 bit references on x86-64 so lea can be used for 32 bit arithmetics 11 years ago
  nickysn f6e846c574 + added the NEC V20/V30 instructions 12 years ago
  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 years ago
  sergei 2c79314d59 * IF_SANDYBRIDGE designates CPU family, not feature. Mostly a cosmetic change, since we don't use these flags for anything. 12 years ago
  sergei 7e6a7f20cc - Removed unused variables and dead assignments. 12 years ago
  florian 9b6094a58c + added a few BMI instructions to see if they can be encoded 12 years ago
  florian e81d2d1f3b * basic avx support for floating point operations (use -Cfavx to activate) 12 years ago
  nickysn 92afd7cccd + R_SUBH support added in x86/aasmcpu.spilling_create_load and spilling_create_store 12 years ago
  nickysn fef3732884 * i8086 compilation fixes 12 years ago
  florian ad0b0455d8 * extended comment 12 years ago
  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 years ago
  florian 24f9d0d770 * cancel warning on i8086 because it stops compilation (the compiler is normally build with -Sew) 12 years ago
  Jonas Maebe 5d628b29bb * set the subregsize of OS_M64 SSE registers to R_SUBQ so we can 12 years ago
  florian a499a30ca9 * fixes to avx support by Torsten Grundke 12 years ago
  florian 283ff05127 * merged avx support in inline assembler developed by Torsten Grundke 13 years ago
  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 years ago
  Jonas Maebe 313e976256 * avoid spurious range errors due to longint+qword expressions (results in 13 years ago
  paul 4b24a58871 compiler: remove/hide few unused variables 14 years ago
  florian 87696a4b70 * cr*, dr*, tr* registers are 64 bit on x86-64 14 years ago
  florian 8308b46a94 + support for assembler instructions with four operands 14 years ago
  pierre 8a0ed92957 * Remove useless code for i386 14 years ago
  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 years ago
  sergei d89aeeadaf x86 assembler: 14 years ago
  sergei 9e8a31193b x86 assembler: 14 years ago
  sergei d908fb42f7 x86 assembler fixes: 14 years ago
  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 years ago
  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 years ago