Commit History

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