J. Gareth "Curious Kit" Moreton
|
1b8fc23dfd
* x86: Code generation fixes where FLAGS
|
3 lat temu |
florian
|
2385c47c28
* compilation on x86-64 fixed
|
7 lat temu |
florian
|
8c5606b41d
+ support mmx shifting
|
7 lat temu |
florian
|
810acd82b2
* patch by J. Gareth Moreton that makes some improvements to the Peephole Optimizer for x86 and x86-64 code, as well as some cleanup with formatting, code syntax consistency, and debug messages.
|
7 lat temu |
florian
|
5c4b1737c4
* in the generate_code normally imaginary registers are used, so just resize the register to 8 bit, the register allocator takes care of the rest
|
7 lat temu |
florian
|
4a98fcb9d3
* patch by J. Gareth Moreton: reorganises the produced machine code for large unsigned divisions, resolves #32984
|
7 lat temu |
florian
|
52aa40c3b0
* remove explicit cast to int64 to avoid an internalerror 200706094, resolves #33004
|
7 lat temu |
florian
|
724b822b54
* patch based on a proposal by J. Gareth Moreton to reduce register usage
|
7 lat temu |
florian
|
11a3d8762a
* patch by J. Gareth Moreton:
|
7 lat temu |
florian
|
81b2cf5d65
* slightly modified patch by J. Gareth Moreton: Optimization for 'mod' on i386/x86-64, resolves #32945
|
7 lat temu |
nickysn
|
ddba821561
* GetNextReg(), used by 16-bit and 8-bit code generators (i8086 and avr) moved
|
7 lat temu |
nickysn
|
6634141bf4
+ generate better code for division by negative power of 2 constants in the x86
|
8 lat temu |
nickysn
|
19087d04da
* replace several emit_const_reg calls that generate SHR or SAR instructions
|
8 lat temu |
nickysn
|
9e8cc127b0
* improved the code, generated for signed division by 2 on i386 and x86_64 by
|
8 lat temu |
nickysn
|
bb7cd4866d
* corrected comment in x86 division code - it said "signed", when it actually meant "negative"
|
8 lat temu |
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 lat temu |
nickysn
|
7c306f18e3
+ perform unsigned modulus by power of 2 constant by using an AND instruction (instead of DIV) on x86
|
8 lat temu |
florian
|
b1dff29cbf
* removed unused units
|
8 lat temu |
Jonas Maebe
|
a25ebbba3e
+ added volatility information to all memory references
|
8 lat temu |
florian
|
49f63d67b2
* correctly check left.location instead of left.expectloc when generating
|
9 lat temu |
florian
|
77b4709e7a
+ i386 compiler tracks now flag usage if needed, so the mov $0,reg -> xor reg,reg transformation can be enabled
|
9 lat temu |
yury
|
374148b966
* fixed compilation of 8086 compiler.
|
10 lat temu |
yury
|
47b316d0e2
* Removed unused vars for x86-64 compiler.
|
10 lat temu |
Jonas Maebe
|
687bb15299
* renamed getdatalabel() to getglobaldatalabel
|
10 lat temu |
florian
|
29d4037a9c
* make integer division instruction (div/idiv) on x86 dependent on the
|
10 lat temu |
Károly Balogh
|
07ad2a04ac
* fix warnings when compiling the compiler with DFA optimizer enabled on i386
|
11 lat temu |
sergei
|
05ecd3cec1
* One more fix of operand size, likely harmless because shift amount is taken modulo bit-width anyway.
|
11 lat temu |
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 lat temu |
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 lat temu |
florian
|
c38e52bb27
* create shorter code for -<single/double> when generating avx code
|
11 lat temu |