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