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 |