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