paul
93883d1264
compiler: load binary unicode mappings in cpavailable() call instead of separate loadbinarycp() call
...
git-svn-id: trunk@26379 -
2014-01-04 16:42:20 +00:00
paul
52d1cbc544
compiler:
...
+ add -FM command line option to pass directory for unicode binary files
+ enable dynamic loading of charset files (don't disable runtime charset files for the moment)
git-svn-id: trunk@26378 -
2014-01-04 15:44:18 +00:00
Jonas Maebe
d1b2a5f362
* changed the initial value DefaultFileSystemCodePage from CP_ACP to CP_UTF8:
...
o since we always use UTF-16 for OS file API calls, this will only affect
possible intermediate code page conversions inside RTL routines and hence
prevent potential data loss. This was already the same for NativeNT and
WinCE, which are in the same boat
o DefaultRTLFileSystemCodePage, which specifies the code page used to return
strings from single byte RTL routines, remains CP_ACP and hence nothing
will change as far as programs using the RTL are concerned
git-svn-id: trunk@26377 -
2014-01-04 15:05:42 +00:00
paul
80cec37d06
rtl: add charmap for 856 codepage
...
git-svn-id: trunk@26376 -
2014-01-04 09:29:38 +00:00
paul
7b1f586131
rtl: remove unneeded charset classes
...
git-svn-id: trunk@26375 -
2014-01-04 08:59:20 +00:00
marco
1c2a77a60f
* tested + fixed rtl-console makefile.
...
* updated toplevel makefile, but testing it failed to run for other reasons.
(libtar fpmkunit)
git-svn-id: trunk@26374 -
2014-01-04 00:13:43 +00:00
marco
90fbb6360d
* test rtl-console for powerpc targets.
...
- morphos regeneration Makefile.fpc
- aix unrelated fix: addition of pthread_attr_destroy (r26220 dec 11th)
git-svn-id: trunk@26373 -
2014-01-03 22:48:14 +00:00
marco
a001e12d04
* rtl-console initial version.
...
git-svn-id: trunk@26372 -
2014-01-03 22:19:02 +00:00
marco
1df3226a2f
* skeleton for rtl-console package. Not yet active.
...
git-svn-id: trunk@26371 -
2014-01-03 21:46:02 +00:00
nickysn
b8203a3406
* fixed tcg8086.gen_cmp32_jmp1 for the less than/greater than cases
...
git-svn-id: trunk@26370 -
2014-01-03 18:06:21 +00:00
nickysn
270444508a
* fixed not(boolean32) and not(boolean64) on i8086
...
git-svn-id: trunk@26369 -
2014-01-03 15:18:07 +00:00
pierre
de89827eb7
Clean up comment at start of fpc_mul_dword
...
git-svn-id: trunk@26368 -
2014-01-03 13:15:34 +00:00
Jonas Maebe
ab4844bdff
* give an internal error when trying to set/get procdef properties that are
...
not available
git-svn-id: trunk@26367 -
2014-01-03 12:23:27 +00:00
pierre
a4e08f8611
Move int32p.inc inclusion to end of i8086.inc as it needs to be parsed before generic.inc
...
git-svn-id: trunk@26366 -
2014-01-03 11:42:53 +00:00
Jonas Maebe
b106ded0e9
* use SystemFileName instead of the original FileName in DeleteFile()
...
git-svn-id: trunk@26365 -
2014-01-03 10:59:25 +00:00
sergei
d2a9308181
+ SPARC: implemented register spill replacement.
...
git-svn-id: trunk@26364 -
2014-01-03 08:14:43 +00:00
sergei
0afd95e840
* SPARC, tmoddivnode improvements/fixes:
...
* don't bother reusing locations
* don't optimize division into shift if overflow checking is enabled
* if denominator is a constant and fits into 13 bit range, use it directly and save a register.
git-svn-id: trunk@26363 -
2014-01-03 08:09:32 +00:00
nickysn
cf6f408214
+ implemented the tcg8086.a_cmp_*_*_label methods for i8086. How did the i8086
...
code generator even work without these?
git-svn-id: trunk@26362 -
2014-01-03 03:31:51 +00:00
florian
ac120d075a
* moved directory handling code
...
git-svn-id: trunk@26361 -
2014-01-02 18:24:11 +00:00
Jonas Maebe
32b9926536
* don't check forwarddefs of copied record/objectdefs (there are none, since
...
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 -
2014-01-02 16:21:06 +00:00
florian
1fc6316cbc
* use generic 32*32 -> 64 bit multiplication on arm thumb
...
git-svn-id: trunk@26359 -
2014-01-02 15:23:12 +00:00
marco
0bb6469b80
* remove accidentally inserted BOM, as reported by M. Ring.
...
git-svn-id: trunk@26358 -
2014-01-02 14:34:28 +00:00
marco
ebe262762a
* Clean out of $i textrec and filerec includes that are redundant now that cpstrrtl exposes
...
those records via system.
git-svn-id: trunk@26356 -
2014-01-02 13:26:09 +00:00
masta
bcec29f1b4
Disable generation of UMULL when generating thumb1 code
...
git-svn-id: trunk@26355 -
2014-01-02 13:22:15 +00:00
masta
e5b3d89a5d
Add CPUARM_HAS_UMULL flag
...
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 -
2014-01-02 13:06:18 +00:00
sergei
36d0c8a5a7
* x86 and SPARC: fixed handling 64-bit (qwordbool) values in tcgnotnode (partial fix for Mantis #25255 ).
...
* Moved handling LOC_JUMP locations to helper method of base class, it appears to be the same for all targets.
git-svn-id: trunk@26353 -
2014-01-02 10:29:44 +00:00
nickysn
e1332304ef
* when converting Hi() to a shr node, convert the right shr const parameter to
...
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 -
2014-01-01 23:57:42 +00:00
nickysn
d4e01637e7
* use nativeint, instead of longint in fpc_div_dword and fpc_mod_dword, because
...
it produces more efficient code on 16-bit and 8-bit platforms.
git-svn-id: trunk@26351 -
2014-01-01 20:46:28 +00:00
marco
2a4385c196
* simple strtomd5 function from mantis #23397
...
git-svn-id: trunk@26350 -
2014-01-01 19:52:21 +00:00
nickysn
988b742d71
* avoid the meaningless conversion of the right shl/shr argument to 32-bit on
...
i8086 in the cases when the left argument is 32-bit.
git-svn-id: trunk@26349 -
2014-01-01 19:03:17 +00:00
masta
f8889e3d6d
Use optimize_op_const in ARM cg
...
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 -
2014-01-01 18:26:42 +00:00
masta
d32abdf047
Little cleanup in tarmaddnode.second_add64bit
...
git-svn-id: trunk@26347 -
2014-01-01 18:26:38 +00:00
masta
cec633e86e
Optimized support for 32x32 => 64bit multiplications on ARM
...
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 -
2014-01-01 18:26:29 +00:00
nickysn
dcb9306de8
* perform the OP_AND, OP_OR and OP_XOR optimizations for 0 and $FFFF values
...
independently also in tcg8086.a_op_const_ref
git-svn-id: trunk@26345 -
2014-01-01 17:45:40 +00:00
nickysn
9a1e33d2a0
* tcg8086.a_op_const_reg: perform the OP_AND, OP_OR and OP_XOR optimizations for
...
$0000 and $FFFF values on the low and the high words independently.
git-svn-id: trunk@26344 -
2014-01-01 14:57:44 +00:00
nickysn
9eb4419ba3
* fixed the conversion and assignment to the 64-bit boolean types on the i8086
...
git-svn-id: trunk@26343 -
2013-12-31 17:18:20 +00:00
nickysn
974fea30b2
* use only one temporary 16-bit register, instead of two in tcg8086.g_flags2ref
...
when the target ref is 32-bit.
git-svn-id: trunk@26342 -
2013-12-31 16:27:11 +00:00
nickysn
72e526b9b1
* taddnode.pass_1: set correctly expectloc to LOC_JUMP or LOC_FLAGS for compare
...
nodes on 16/8-bit targets. This fixes (among other things) the conversion of
booleans to boolean16 or boolean32 on i8086.
git-svn-id: trunk@26341 -
2013-12-31 16:22:24 +00:00
nickysn
4917d8da39
- rm the special case handling of unsigned 32-bit ordinals in taddnode.pass_1,
...
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 -
2013-12-31 15:44:29 +00:00
florian
f393c3ff37
* propagate constants into the header of a for loop
...
+ test which avoids this so we do not miss regressions on for loops with variable boundaries
git-svn-id: trunk@26339 -
2013-12-31 13:16:09 +00:00
florian
b0441e1d64
* move setting of lnf_testatbegin into tfornode.simplify because it is a simplification
...
git-svn-id: trunk@26338 -
2013-12-31 13:16:06 +00:00
nickysn
bda163544a
* tcg8086.g_flags2reg: restore the register back to the original size after the
...
16-bit inc
git-svn-id: trunk@26337 -
2013-12-31 13:15:30 +00:00
nickysn
fbd05c4e12
* Improved code generation in tcg8086.g_flags2reg for the case when target reg
...
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 -
2013-12-31 11:31:23 +00:00
nickysn
d57d982be7
* simpler handling of moves from a smaller to a larger cgsize in
...
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 -
2013-12-31 00:33:37 +00:00
Jonas Maebe
a4c938c042
* changed some random data label names to match the label names outputted by
...
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 -
2013-12-31 00:28:46 +00:00
Jonas Maebe
5cbcfca33f
* changed some Objective-C section declarations to match what's outputted by
...
current clang versions
git-svn-id: trunk@26333 -
2013-12-31 00:28:41 +00:00
Jonas Maebe
32b149c622
* moved a bunch of tprocdef fields that are only required when compiling the
...
procdef to a dynamically allocated record that is not created when loading
the procdef from ppu
git-svn-id: trunk@26332 -
2013-12-31 00:28:28 +00:00
sergei
471d0a5164
+ SPARC: support optimized 32x32 to 64 bit multiplications.
...
git-svn-id: trunk@26331 -
2013-12-30 23:40:47 +00:00
sergei
4168388235
+ SPARC: support 8 and 16-bit arithmetic shifts.
...
git-svn-id: trunk@26330 -
2013-12-30 23:37:21 +00:00
michael
399129693f
* Initialize token more correct in case of * / + -
...
git-svn-id: trunk@26329 -
2013-12-30 21:58:14 +00:00