such a def is just a renamed version of a def that's defined/implemented/
checked elsewhere) -- fixes compiler crash when compiling webtbs/tw3930
after r26332)
git-svn-id: trunk@26360 -
Pre armv4 and all *M variants to not support UMULL and SMULL.
The Flag now gets used for 32x32->64 and 64x64->64 optimized code.
git-svn-id: trunk@26354 -
sinttype, instead of u32inttype. This:
1) is consistent with what type conversion tshlshrnode.pass_typecheck inserts
on the right side
2) avoids the expensive conversion to 32-bit and the even more expensive
performing the operation in 32-bit on i8086
git-svn-id: trunk@26352 -
This uses the generic optimizations done in optimize_op_const. Due to
this we can also drop some of the optimizations done in the arm-specific
code.
git-svn-id: trunk@26348 -
This code uses UMULL and SMULL to perform the multiplications, which
take two 32bit source registers and two 32bit destination registers.
git-svn-id: trunk@26346 -
since it performs exactly the same thing as the generic signed 32-bit handling
in the else clause (regardless of whether cpuneedsmulhelper is defined or not)
git-svn-id: trunk@26340 -
size is >=16-bit:
o Generated code is now one instruction and one byte shorter.
o No 8-bit subregisters are used, which reduces register pressure.
git-svn-id: trunk@26336 -
tcg8086.a_load_reg_ref, which additionally fixes the following issues:
o The higher parts of the source register is no longer modified.
o The source register's size is no longer modified with makeregsize.
o Conversion from OS_S8 to a larger size is now supported.
git-svn-id: trunk@26335 -
current clang versions, works around some bugs (or at least backward
incompatibilities) in the Xcode 5 linker when targeting ARM
git-svn-id: trunk@26334 -
o When expanding from a OS_8 to a 16-bit or 32-bit tcgsize, use the R_SUBH
subregister to initialize the high 16 bits of the register to zero. This
generates shorter and faster code, without increasing register
interferences, because R_SUBH has the same register constraints on i8086 as
R_SUBL, which is already used on the same imaginary register.
o After performing operations on the 8-bit subparts of a register that was
initially 16-bit, call makeregsize(OS_16) to notify the register allocator
that the register is once again 16-bit.
git-svn-id: trunk@26328 -
o set the code page of the temporary "text" file to utf-8 for writestr with
unicodestring/widestring as destination, so that no data loss can occur
(+ properly deal with cases whereby part of an utf-8 character is
written to the textbuf in this case)
o explicitly pass the code page of the destination ansistring for writestr
with ansistring as destination and set it for the temporary "text" file
o set the code page of the text file for readstr
git-svn-id: trunk@26317 -
unnecessary conversions between CP_ACP and the current actual
DefaultSystemCodePage
* call TranslatePlaceholderCP() when changing the code page of a
text file because in some cases this code page is passed directly
to widestringmanager.Wide2AnsiMoveProc() (which does not perform any
translation itself)
git-svn-id: trunk@26316 -
when converting a LOC_JUMP location to a (OS_INT<x<=32)-bit reg location
(the optimization is similar to r26314, but is for non 64-bit destinations).
git-svn-id: trunk@26315 -
when converting a LOC_JUMP location to a 64-bit reg location by only setting
the low OS_INT-sized register to 0 or 1 in the false/true label parts and then
initializing the remaining registers (obtainable via GetNextReg()) to 0 in the
common part after the jumps.
git-svn-id: trunk@26314 -
dest are subregisters of the same superregister, but of different sizes:
o Do not emit spurious moves from a register to the same register.
o Correctly support the case when converting from 16-bit to 32-bit int.
Previously it didn't work correctly, because in this particular case, due
to the way the GetNextReg scheme works, we have reg1=reg2.
git-svn-id: trunk@26313 -
converting from a LOC_FLAGS or LOC_JUMP location to a 64-bit reg location.
This fixes test/cg/tcnvint1.pp on i8086 after r26301.
git-svn-id: trunk@26312 -