Commit Graph

43391 Commits

Author SHA1 Message Date
sergei
c2a29a0dbb + MIPS: implemented peephole optimization which changes appropriate patterns into conditional moves, which are available on MIPS4 and higher.
git-svn-id: trunk@28008 -
2014-06-20 05:57:39 +00:00
sergei
4e7c908b0d + MIPS: added movn and movz instructions.
git-svn-id: trunk@28007 -
2014-06-19 22:44:17 +00:00
nickysn
1295b4abf7 - removed the call to CheckNullArea from the exit code for the tiny memory model
git-svn-id: trunk@28006 -
2014-06-19 21:47:46 +00:00
michael
a0f4ff655e * Small optimisation in strnew from Luiz Americo (bug ID 26365)
git-svn-id: trunk@28005 -
2014-06-19 17:40:21 +00:00
michael
f1bd08acce * Add enable/disablecontrols for target dataset (patch from Luiz Americo, bug ID #26364)
git-svn-id: trunk@28004 -
2014-06-19 17:34:25 +00:00
michael
5bf2b9f8d2 * Patch from Luiz Americo to allow reading data in blockread state
git-svn-id: trunk@28003 -
2014-06-19 17:29:56 +00:00
nickysn
7cfd7a66cd + create a special 'heap' segment with reserved space equal to heapsize (i.e.
the value set by -Ch or the second parameter to the $M directive). This is
  equivalent to the heapmin value in Turbo Pascal 7 and ensures that the program
  has at least this amount of heap space available (otherwise DOS will show a
  'not enough memory' error and will refuse to load the program).

git-svn-id: trunk@28002 -
2014-06-19 14:14:01 +00:00
reiniero
2557f1bfa3 * fcl-db: oracle: roll back some overzealous changes. Comment fixes.
git-svn-id: trunk@28001 -
2014-06-19 13:30:18 +00:00
reiniero
5c1eec309d * fcl-db: cosmetic: document integer precision; layout
git-svn-id: trunk@28000 -
2014-06-19 12:25:11 +00:00
sergei
25037f5318 - MIPS: completely removed trgcpu.add_constraints method.
While it can be correct from some point of view, it does not prevent aliasing a single-precision register into upper half of double-precision one. This is currently handled by making only even floating-point registers available to RA. At the same time, it somehow (possibly due to another bug in RA) generates a lot of unnecessary moves, as if physical double-precision registers conflict with each other. Anyway, removing it considerably improves the code without regressions in the test suite.

git-svn-id: trunk@27999 -
2014-06-19 03:59:24 +00:00
Jonas Maebe
de0041466f * fixed system.openchararraytype after r27970 (mantis #26359)
git-svn-id: trunk@27998 -
2014-06-18 20:20:04 +00:00
lacak
0106f860eb fcl-db: oracle:
- map NUMBER columns with precision < 5 to ftSmallint
- fix some tests for Oracle

git-svn-id: trunk@27997 -
2014-06-18 11:54:58 +00:00
reiniero
b871247238 * fcl-db: tests: bufdataset: test ftVariant & ftVarbytes as issue #19930 is marked eesolve.d
No regression in test suite.

git-svn-id: trunk@27996 -
2014-06-18 11:46:45 +00:00
lacak
98f5e7cd57 fcl-db: oracle:
- add support for ftSmallInt, ftLargeInt, ftFixedChar params
- add support for BINARY_FLOAT, BINARY_DOUBLE data types

git-svn-id: trunk@27995 -
2014-06-18 10:59:46 +00:00
reiniero
e4fa4a72d2 * fcl-db: cosmetic
git-svn-id: trunk@27994 -
2014-06-18 06:43:07 +00:00
reiniero
39ae91a66f * fcl-db: tdbf: detect some files as DBaseIV instead of III given version signature $03,$8B regardless of language ID. Mantis issue #26332
git-svn-id: trunk@27993 -
2014-06-18 06:42:47 +00:00
sergei
c260879439 * MIPS: updated registers, dropped special registers not recognized by GAS (actually, "pc" is recognized, but it is used only for MIPS16 mode, so it is easier to add back if/when this mode is supported), added FPU condition code registers ($fcc0..$fcc7).
* cpubase.pas, std_regname: changed logic to lookup known names for special registers before resorting to default name, so that $fcc0..$fcc7 can be used as operands.

git-svn-id: trunk@27992 -
2014-06-17 23:15:34 +00:00
sergei
c77225d2c4 + MIPS: added some instructions.
git-svn-id: trunk@27991 -
2014-06-17 22:52:35 +00:00
sergei
a8e30043db + MIPS: more peephole optimizations (basically updated to the state of SPARC peephole).
git-svn-id: trunk@27990 -
2014-06-17 22:50:29 +00:00
sergei
04d8e8a5dc * On 64-bit targets, handle abs(int64) internally, using the same code as for abs(longint), i.e. without branching. Both generic and x86-specific pass 2 code is already suitable for different operand sizes, only type checking needs removal of excessive conversions to 32 bits.
git-svn-id: trunk@27989 -
2014-06-17 18:45:11 +00:00
reiniero
5e7a4c4819 fcl-db: cosmetic: error message language fixes
git-svn-id: trunk@27988 -
2014-06-17 13:59:04 +00:00
reiniero
4d92b003a7 * fcl-db: tests: adjust TTestDBBasics.TestSupportIntegerFields to reflect that Oracle does not map integer fields to ftInteger but to ftFMTBCD
git-svn-id: trunk@27987 -
2014-06-17 10:21:51 +00:00
sergei
244f65525b * MIPS: dropped gas_std_regname, its functionality merged into std_regname. This fixes register names in non-instructions (reg. allocation information, variable locations, etc.) and makes assembler listings more readable.
git-svn-id: trunk@27986 -
2014-06-16 22:52:56 +00:00
sergei
77d97303a9 * SPARC: cleanup and simplify 64-bit code generator. Call cg.a_op64_const_reg_reg where possible to make use of its optimization abilities.
git-svn-id: trunk@27985 -
2014-06-16 19:22:52 +00:00
sergei
51f6092672 * SPARC: OP_NOT can always be done in 32 bits, because for 8 and 16-bit operations the high bits of result are adjusted immediately afterwards.
* "carry clear" flag can be converted into register using a single instruction.

git-svn-id: trunk@27984 -
2014-06-16 19:15:01 +00:00
sergei
d6c6c84f76 * calc_divconst_magic_unsigned: explicitly limit the shift amount to number of bits of target platform. This happens implicitly only on x86, on other 32-bit targets shifting by more than 31 bits calculates as zero.
git-svn-id: trunk@27983 -
2014-06-16 17:05:01 +00:00
reiniero
eb16231869 * fcl-db: Oracle: improved date/time support, issue #26321
git-svn-id: trunk@27982 -
2014-06-16 12:04:30 +00:00
lacak
bafe66a3f0 fcl-db: mssql: add support for new MS SQL 2008 datetime data types. Depends on rev.27979 and requires new FreeTDS dblib library
git-svn-id: trunk@27981 -
2014-06-16 10:08:41 +00:00
reiniero
f7b6bbdf8b * fcl-db: oracle connection
+ metadata retrieval: fix retrieving DATA_DEFAULT column with LONG datatype from ALL_TAB_COLUMNS: oracleconnection does not support the legacy LONG datatype.

git-svn-id: trunk@27980 -
2014-06-16 09:10:42 +00:00
michael
beed60ac0d * Patch from Laco to implement Date/time structures in tds (Bug ID 26235)
git-svn-id: trunk@27979 -
2014-06-16 08:36:30 +00:00
lacak
85ae7c2aaa fcl-db: tests: add check for Oracle native single floating point data type
git-svn-id: trunk@27978 -
2014-06-16 08:04:12 +00:00
Jonas Maebe
9450407ed5 * when taking the address of a method1 that is specified by subscripting
the result of a objtype.method2 call, ensure that we call method2 with
    objtype as methdpointer rather than the self node of the current routine
    (mantis #24844)

git-svn-id: trunk@27977 -
2014-06-15 17:26:12 +00:00
sergei
9593cece03 * powerpc: implement cg.a_mul_reg_reg_pair method and switch to generic code for division by constants.
git-svn-id: trunk@27976 -
2014-06-15 16:33:08 +00:00
sergei
5356f17fa5 * i386: switch the div/mod node to shared code, leaving in place the specific optimization for division by power of 2.
git-svn-id: trunk@27975 -
2014-06-15 16:20:53 +00:00
Jonas Maebe
99b4389297 * fixed tbs/tb0607 for 64 bit targets: there the nf_internal flag isn't set
for cardinal-cardinal. Now treat the result of any sub node as potentially
    negative.

git-svn-id: trunk@27971 -
2014-06-15 15:26:56 +00:00
Jonas Maebe
24f4adf657 * set the rangedef of open arrays to ptrsinttype (instead of s32inttype),
so that it's the same as the def returned by the low/high nodes
    (mantis #25703)

git-svn-id: trunk@27970 -
2014-06-15 15:26:47 +00:00
Jeppe Johansen
5ad478b252 Fixed compilation of packages on win32 after r27966.
git-svn-id: trunk@27968 -
2014-06-15 14:12:27 +00:00
Károly Balogh
c6153010d1 m68k: plain 68000 doesn't support index scaling at all (020+ and CF only)
git-svn-id: trunk@27967 -
2014-06-15 12:28:51 +00:00
Jonas Maebe
159a35da4e * check for read/write after a newly declared property (mantis #26011)
o this reverts the support that was added for such declarations when
     mantis #4676 was fixed, but this was done for Delphi compatibility
     and
    a) current Delphi versions don't accept such declarations anymore either
    b) such declarations are meaningless
   o fixed a number of such invalid property declarations in packages

git-svn-id: trunk@27966 -
2014-06-15 10:59:47 +00:00
Jonas Maebe
5795daf2cd * removed no longer used/needed {$ifdef jvm} parts
git-svn-id: trunk@27965 -
2014-06-15 10:59:42 +00:00
nickysn
82eb84ddff + added warning in case of an $M directive with an invalid stack size specified
git-svn-id: trunk@27964 -
2014-06-15 10:14:56 +00:00
nickysn
c868a5e0ea * check whether the stack size specified in the $M directive exceeds the maximum
stack size
* allow setting a stack size of _exactly_ 1024 bytes with the $M directive

git-svn-id: trunk@27963 -
2014-06-15 09:55:13 +00:00
reiniero
421139e77a * fcl-db: sql parser: update readme after previous commit
git-svn-id: trunk@27962 -
2014-06-15 09:25:56 +00:00
reiniero
951d128042 - fcl-db: sql parser
- remove support for SET TERM/SET AUTODDL as it does not fall within Firebird SQL

git-svn-id: trunk@27961 -
2014-06-15 09:10:24 +00:00
nickysn
d7f9265eba * limit the stack size set by the -Cs option to 65520 bytes on i8086 and other
CPUs with a 16-bit address space

git-svn-id: trunk@27960 -
2014-06-14 22:48:09 +00:00
nickysn
22a7dfa231 * stack segment moved outside of dgroup in the i8086 far data memory models, so
it no longer eats from the precious 64kb limit for static data

git-svn-id: trunk@27959 -
2014-06-14 19:34:36 +00:00
nickysn
49f93b4464 * use the 'order' wlink directive to specify the segment order, instead of using
'option dosseg'. This allows us more flexibility in setting up the segment
  order the way we like.

git-svn-id: trunk@27958 -
2014-06-14 18:04:58 +00:00
nickysn
2dc8839af5 * set class=data to all data segments/sections on i8086
git-svn-id: trunk@27957 -
2014-06-14 16:01:22 +00:00
nickysn
8ad63788c7 - do not emit a stack segment in the tiny memory model
- rm the reference to the top of the stack segment from the startup code in tiny
  model

git-svn-id: trunk@27956 -
2014-06-14 15:56:44 +00:00
sergei
05ecd3cec1 * One more fix of operand size, likely harmless because shift amount is taken modulo bit-width anyway.
git-svn-id: trunk@27955 -
2014-06-14 13:31:48 +00:00