Commit Graph

43798 Commits

Author SHA1 Message Date
sergei
f1d1fd4f24 * Inserted explicit typecasts in order to prevent range check errors at some places where signed and unsigned types are assigned to each other (mostly MIPS-specific, but one was necessary in generic code).
git-svn-id: trunk@28379 -
2014-08-10 21:26:14 +00:00
michael
d368032132 * Test removed
git-svn-id: trunk@28362 -
2014-08-10 16:12:56 +00:00
michael
7f5bdbbf2f * Test
git-svn-id: trunk@28361 -
2014-08-10 16:12:45 +00:00
masta
96915b3f0c 16bit Thumb is not able to use tst with an immediate value
r28315 introduced an arm optimization which requires
  tst rX, #imm
to work. This is not available on 16bit thumb, I've disabled that
optimization on thumb for now.

git-svn-id: trunk@28360 -
2014-08-10 15:30:44 +00:00
michael
32f74d23f1 * Move to postgresql
git-svn-id: trunk@28359 -
2014-08-10 14:58:11 +00:00
nickysn
a61c775d29 + enabled the huge (>64kb) heap support in the compact and large memory models
git-svn-id: trunk@28349 -
2014-08-08 23:32:12 +00:00
nickysn
b1144508a7 * fixed the far/huge data ifdefs in InitDosHeap
git-svn-id: trunk@28348 -
2014-08-08 21:44:19 +00:00
nickysn
5edbd1cd03 * fixed i8086 ifdef (should be ifdef cpui8086, not i8086, because that's the
rtl, not the compiler)

git-svn-id: trunk@28347 -
2014-08-08 21:37:17 +00:00
sergei
ee8fcc8bdb * softfpu.pp: reverted r28318 and replaced it with a improved solution:
* Moved handling of 64-bit values > high(int64) to qword_to_float64, so that normalizeRoundAndPackFloat64 procedure stays unmodified compared to C source.
  * Using "jamming" right shift instead of regular one, so the least significant bit is not dropped but participates in rounding.
  * Take a shortcut for values with <= 53 significant bits, which are convertible into float64 exactly and do not need rounding.

git-svn-id: trunk@28346 -
2014-08-08 20:47:52 +00:00
marco
cb470da8d9 * alias some types to system.
git-svn-id: trunk@28345 -
2014-08-08 18:28:48 +00:00
masta
7e22bd53b6 Changed ARMs StrLdr2StrMov peephole optimizer look further ahead
StrLdr2StrMov now uses GetNextInstructionUsingRef to find an instruction
which uses the same Reference. In one of our internal testcases it
speeded up a function by 15% as fpc generated a lot of spilling.

git-svn-id: trunk@28344 -
2014-08-08 15:31:10 +00:00
masta
bfa85218fa Introduce TCpuAsmOptimizer.GetNextInstructionUsingRef
It's the counterpart to GetNextInstructionUsingReg and finds the next
instruction to use the same reference. By default it stops searching
when hitting a store instructions to avoid aliasing issues.

git-svn-id: trunk@28343 -
2014-08-08 15:31:06 +00:00
masta
d1c5f89976 Make Next an Out-parameter in ARMs GetNextInstructionUsingReg
The input to Next is not used, reflect that properly.

git-svn-id: trunk@28342 -
2014-08-08 15:31:01 +00:00
reiniero
24b406aed7 + fcl-db: SQlite3: accept more date/time formats:
YYYY-MM-DDTHH:MM
YYYY-MM-DDTHH:MM:SS
YYYY-MM-DDTHH:MM:SS.SSS
as defined in http://www.sqlite.org/lang_datefunc.html

Fixes mantis issue #26551

git-svn-id: trunk@28337 -
2014-08-08 11:24:17 +00:00
michael
6f6dd75e77 * Fix patch of reinier
git-svn-id: trunk@28336 -
2014-08-08 07:23:56 +00:00
michael
71d20abcaa * Patch from reinier to import fb_shutdown and fb_sqlstate
git-svn-id: trunk@28335 -
2014-08-08 07:17:54 +00:00
nickysn
ace28a3552 * InitNearHeap procedure renamed InitDosHeap and added support for a huge heap.
Startup code still needs to be updated in order to enable >64kb heap.

git-svn-id: trunk@28334 -
2014-08-07 22:00:24 +00:00
nickysn
6720f84d24 + switch to using huge pointers in the tiny heap in the i8086 far data memory
models

git-svn-id: trunk@28333 -
2014-08-07 21:15:56 +00:00
nickysn
94bcb9878a * reimplemented r28329 in a different way, as suggested by Jonas
git-svn-id: trunk@28332 -
2014-08-07 19:36:52 +00:00
marco
ff77bd1bf2 * Fix font name changing issues, patch by Dirk F, mantis #26550
git-svn-id: trunk@28331 -
2014-08-07 10:44:19 +00:00
nickysn
3164bf66f5 + implemented correct [] indexing of huge pointers
git-svn-id: trunk@28330 -
2014-08-07 09:11:21 +00:00
nickysn
dfcbe03572 + added x86-specific function getx86pointerdef, similar to getpointerdef, but
allows creating the x86 special pointer types as well

git-svn-id: trunk@28329 -
2014-08-07 08:50:01 +00:00
nickysn
4ea551a0f7 * is_farpointer and is_hugepointer moved from defutil to symcpu
git-svn-id: trunk@28328 -
2014-08-06 20:32:41 +00:00
Károly Balogh
3c8b24eead a proposed fix to the qword_to_float64 problem
git-svn-id: trunk@28318 -
2014-08-06 15:14:52 +00:00
masta
b898b169d4 Fixed 0-cmp optimization in tarmaddnode.second_cmp64bit
Commit r28315 prevented "= 0" compare-optimizations. Should be fixed now.

git-svn-id: trunk@28317 -
2014-08-06 15:01:24 +00:00
Károly Balogh
baac5114a7 added a missing comment from the SoftFPU C source. probably explains why qword_to_float64 fails with values which have the uppermost bit set
git-svn-id: trunk@28316 -
2014-08-06 14:11:09 +00:00
masta
c88fdb6a4a Add minor optimization for int64 < 0 on arm
This is a very common construct in normal code and also heavily used in
softfpu code.

The ARM-cg will now just test for the MSB of reghi to be set, instead of
a full comparison against constant 0.

git-svn-id: trunk@28315 -
2014-08-05 21:31:20 +00:00
reiniero
bd37d804fc * fcl-db: cosmetic
git-svn-id: trunk@28314 -
2014-08-05 10:30:23 +00:00
Károly Balogh
6e27aaebbb libndsfpc: regenerated Makefile with -Tall, which is required
git-svn-id: trunk@28313 -
2014-08-05 07:34:25 +00:00
sergei
0dea20d8e7 * softfloat: Fixed int64->double and qword->double conversions to take rounding mode into account (actually, brought them up to date with Softfloat-2b C source). Now test/units/math/troundm.pp is consistent for all targets.
git-svn-id: trunk@28312 -
2014-08-04 21:56:40 +00:00
sergei
ff5410b152 + Expanded test also for qword->double and int32->single conversions.
git-svn-id: trunk@28311 -
2014-08-04 21:45:34 +00:00
Legolas
ca0ff3d2ea * libndsfpc: forgot to commit a file
+ libndsfpc: added two new examples and regenerated makefiles

git-svn-id: trunk@28310 -
2014-08-04 19:39:02 +00:00
reiniero
935a3f1bc9 * fcl-db: cosmetic
git-svn-id: trunk@28309 -
2014-08-04 08:09:40 +00:00
sergei
bf51683e78 * Softfloat: added some typecasts to prevent promotion to 64 bits where it is not intended.
git-svn-id: trunk@28308 -
2014-08-03 12:14:43 +00:00
sergei
96abd7f370 * Softfloat: marked ExtractFloat32*, ExtractFloat64* and PackFloat32 helpers as inline.
* int64_to_float64 and qword_to_float64: call 'function' overload of PackFloat64. Whenever arguments are constant it can be evaluated entirely at compile time (the procedure PackFloat64 does not have this property even if marked as inline because it is too complex, i.e. consists of more than single statement).

git-svn-id: trunk@28307 -
2014-08-03 12:00:38 +00:00
marco
8309a4794d * updated wording helpfile download, mantis #26517
git-svn-id: trunk@28306 -
2014-08-03 11:09:52 +00:00
marco
1ab8e2381f * fix #26007 move size=0 of r27762 to OS specific code, otherwise it prohibits
async reading of the stream. (windows first reads streams, then executes
   readmessage)

git-svn-id: trunk@28305 -
2014-08-03 11:00:53 +00:00
marco
6b01f96034 * Add assigned check to reading fileinfo for case there is no fileinfo section.
Mantis #26549, patch by Reinier.

git-svn-id: trunk@28304 -
2014-08-03 10:48:16 +00:00
sergei
586a9aafe8 * The test must have '.pp' extension, of course.
git-svn-id: trunk@28303 -
2014-08-03 00:16:09 +00:00
sergei
b9763d270a + Enabled section smartlinking for m68k-linux.
git-svn-id: trunk@28302 -
2014-08-02 23:00:36 +00:00
sergei
8910e2f74d + Added a test checking that conversion of 64-bit integers to double-precision floats depends on current rounding mode when integer has more than 53 bits set.
git-svn-id: trunk@28301 -
2014-08-02 22:42:47 +00:00
Legolas
c09d2e2096 * Fixed filesystem handling in libogc
git-svn-id: trunk@28300 -
2014-08-02 15:34:58 +00:00
Legolas
a52e51d0b7 * Updated libndsfpc and nds linkerscript to Ver. 1.5.8
git-svn-id: trunk@28299 -
2014-08-02 15:23:51 +00:00
sergei
a28d6a84a7 + m68k, a_load_const_reg: use MOV3Q if applicable for data registers as well, since it allows spilling replacement of destination.
+ a_load_const_ref: use CLR and MOV3Q if possible.
* a_cmp_reg_reg_label: force size to 32 bits for ISA_A and ISA_A+ targets.
+ support for stack frames larger than 32767 bytes.

git-svn-id: trunk@28298 -
2014-08-02 12:46:34 +00:00
sergei
499ff505c8 * m68k: further improved code generation for comparison nodes, support LOC_REFERENCE for 32-bit compares and omit low dword, when possible, for 64-bit ones.
git-svn-id: trunk@28297 -
2014-08-02 12:37:40 +00:00
sergei
b4d9d97a03 * m68k: don't do replace spilling if spilltemp.offset exceeds 16 bits on Coldfire targets.
git-svn-id: trunk@28296 -
2014-08-02 12:33:32 +00:00
sergei
3da5de0e5f + m68k, do_spill_replace: support more cases.
+ support spilling at offsets >32767, tested only to generate assemble-able code, support of large stack frames needs more changes elsewhere.

git-svn-id: trunk@28295 -
2014-08-01 20:32:48 +00:00
marco
98b4e77b4f * fixed 64-bit issue.
git-svn-id: trunk@28288 -
2014-08-01 10:18:17 +00:00
Mattias Gaertner
0d4fa26c51 fpreadtif: fixed read LZW stream at end of a bit length increase, bug #22724
git-svn-id: trunk@28287 -
2014-08-01 07:41:01 +00:00
lacak
00f85c52ab fcl-db: oracle:
- for ftBlob parameters binding use temporary LOBs instead of long varraw to bypass 64KB limit of current implementation
- initial support for NCLOB data type (if client uses for NCHAR "variable width" charset (like UTF-8) then there is character length <> byte length which is currently not handled correctly)

git-svn-id: trunk@28286 -
2014-08-01 05:48:24 +00:00