florian
|
8c5606b41d
+ support mmx shifting
|
7 роки тому |
florian
|
c1de51454c
ti386shlshrnode.second_64bit:
|
7 роки тому |
nickysn
|
af235cae86
* use TEST CL,32 instead of TEST ECX,32 in the beginning of a 64-bit shl/shr
|
8 роки тому |
nickysn
|
d7b8d8dd54
* don't emit the "SUB ECX,32" instruction on i386, when doing a 64-bit shift by
|
8 роки тому |
nickysn
|
7e8c89435f
* avoid the AND instruction in the i386 shr64/shl64 code, by using TEST+JZ,
|
8 роки тому |
nickysn
|
6580dfee39
* generate better i386 code for 64-bit shl/shr, by masking the shift count by
|
8 роки тому |
sergei
|
5356f17fa5
* i386: switch the div/mod node to shared code, leaving in place the specific optimization for division by power of 2.
|
11 роки тому |
sergei
|
ed46a07f62
* Using x86-specific capability of shifting with carry flag helps to reduce amount of instructions.
|
11 роки тому |
sergei
|
92cf25b9a5
* Reworked i386 division by constant optimization to reuse code from powerpc64. The algorithm is slightly different, signed version is one instruction shorter, unsigned one is one instruction longer (typically). The new algorithm is easily scalable for x86_64 target, unlike the old one.
|
11 роки тому |
Jonas Maebe
|
edd42aa42a
* moved subsetref/reg and bit_set/test support from cgobj to hlcgobj for
|
13 роки тому |
Jonas Maebe
|
9ec3cc2022
* fixed sign of location.size for divmodn, 64 shlshrn and for muln
|
17 роки тому |
daniel
|
9adb202a92
* Rework the constexprint to allow operations from low(int64) to high(qword).
|
18 роки тому |
peter
|
658c46b903
* remove tdictionary and tindexarray
|
19 роки тому |
florian
|
85d63d9fa9
* settings refactored
|
19 роки тому |
peter
|
3078a1927f
* remove ttype
|
19 роки тому |
peter
|
b7fe6797bf
Merged revisions 2921-2922,2925 via svnmerge from
|
19 роки тому |
peter
|
588cccb3ca
* remove some obsolete i386 specific code
|
19 роки тому |
peter
|
d8dc5679e3
* aktcputype and aktoptimizecputype was missing in the previous optimization commits
|
19 роки тому |
peter
|
b6e35a200e
* rewrite of optimizer options
|
19 роки тому |
peter
|
4bee83c736
* range check errors
|
19 роки тому |
florian
|
bec0daebfa
+ optimized <dword> div <const dword>
|
19 роки тому |
peter
|
5942d23b1b
* fix range error
|
19 роки тому |
florian
|
3582108be1
* signed divisions with constants are always done without idiv
|
19 роки тому |
peter
|
a3ab2053c9
* support multiple asmlabel types, renamed getlabel to
|
20 роки тому |
fpc
|
790a4fe2d3
* log and id tags removed
|
20 роки тому |
fpc
|
50778076c3
initial import
|
20 роки тому |
peter
|
e417e34496
* truncate log
|
20 роки тому |
peter
|
c95a859f0a
* generic tlocation
|
21 роки тому |
peter
|
65c3ba277c
* ungetregister is now only used for cpuregisters, renamed to
|
21 роки тому |
florian
|
8a9758c5e2
* logs truncated
|
21 роки тому |