Commit History

Author SHA1 Message Date
  nickysn ddba821561 * GetNextReg(), used by 16-bit and 8-bit code generators (i8086 and avr) moved 8 years ago
  nickysn 6634141bf4 + generate better code for division by negative power of 2 constants in the x86 8 years ago
  nickysn 19087d04da * replace several emit_const_reg calls that generate SHR or SAR instructions 8 years ago
  nickysn 9e8cc127b0 * improved the code, generated for signed division by 2 on i386 and x86_64 by 8 years ago
  nickysn bb7cd4866d * corrected comment in x86 division code - it said "signed", when it actually meant "negative" 8 years ago
  nickysn b6c3329f20 + also check for negative powers of 2 in the mod by power-of-2 constant x86 optimization, since the sign of the divisor is ignored by the 'mod' operation 8 years ago
  nickysn 7c306f18e3 + perform unsigned modulus by power of 2 constant by using an AND instruction (instead of DIV) on x86 8 years ago
  florian b1dff29cbf * removed unused units 8 years ago
  Jonas Maebe a25ebbba3e + added volatility information to all memory references 8 years ago
  florian 49f63d67b2 * correctly check left.location instead of left.expectloc when generating 9 years ago
  florian 77b4709e7a + i386 compiler tracks now flag usage if needed, so the mov $0,reg -> xor reg,reg transformation can be enabled 9 years ago
  yury 374148b966 * fixed compilation of 8086 compiler. 10 years ago
  yury 47b316d0e2 * Removed unused vars for x86-64 compiler. 10 years ago
  Jonas Maebe 687bb15299 * renamed getdatalabel() to getglobaldatalabel 10 years ago
  florian 29d4037a9c * make integer division instruction (div/idiv) on x86 dependent on the 10 years ago
  Károly Balogh 07ad2a04ac * fix warnings when compiling the compiler with DFA optimizer enabled on i386 11 years ago
  sergei 05ecd3cec1 * One more fix of operand size, likely harmless because shift amount is taken modulo bit-width anyway. 11 years ago
  sergei be6d6d90d7 + Division-by-constant optimization for x86_64 (merged i386 code adapted for different operand sizes, so the result should be suitable for i386 as well). 11 years ago
  sergei b594eee70b * Moved x86_64 mod/div code to x86, with minimal changes to ensure it compiles on i386/i8086. Merging optimized division-by-const code from i386 is pending... 11 years ago
  florian c38e52bb27 * create shorter code for -<single/double> when generating avx code 11 years ago
  nickysn 270444508a * fixed not(boolean32) and not(boolean64) on i8086 11 years ago
  sergei 36d0c8a5a7 * x86 and SPARC: fixed handling 64-bit (qwordbool) values in tcgnotnode (partial fix for Mantis #25255). 11 years ago
  florian e81d2d1f3b * basic avx support for floating point operations (use -Cfavx to activate) 12 years ago
  Jonas Maebe 5051453806 + support for LOC_(C)MMREGISTER in hlcg 12 years ago
  florian d2aa35e9de * throw an internal error if code generation depends on expectloc but expectloc and real loc do not match 13 years ago
  Jonas Maebe edd42aa42a * moved subsetref/reg and bit_set/test support from cgobj to hlcgobj for 13 years ago
  sergei 7d99f95c45 * Always create a section before emitting data to current_asmdata.asmlists[al_typedconsts]. Without it, such data ends up in sections created elsewhere, creating very non-obvious dependencies on other parts of compiler. 14 years ago
  Jonas Maebe d1538ab023 o added ARM VPFv2/VFPv3 support: 15 years ago
  Jonas Maebe 7d459cf12a * the compiler now explicitly keeps track of the minimally guaranteed 16 years ago
  peter 6b8aed593f * remove registers{int/mmx/fpu} from firstpass 18 years ago