Commit Graph

43053 Commits

Author SHA1 Message Date
nickysn
9758a53fa6 - rm the ifdef cpu16bitalu and cpu64bitalu from thlcgobj.a_load_ref_cgpara,
because they:
  - worsen readability (especially if we add cpu8bitalu as well, for
    completeness)
  - are not needed, because the else clause of the previous if ensures that we
    have (sizeleft<=sizeof(aint)) and sizeof(aint) follows the target cpu alu
    size

git-svn-id: trunk@27664 -
2014-04-26 13:46:36 +00:00
sergei
471ffb017c - Removed call to FlushThread, it is redundant since r17798. SysFlushStdio is called from DoneThreads, which is in turn called after exiting from ThreadFunc.
git-svn-id: trunk@27663 -
2014-04-26 13:46:10 +00:00
nickysn
d8d35a32c9 - rm bogus ifdef cpu16bitalu from tparamanager.allocparaloc and .freecgpara
(leftover from my initial hacky implementation of returning int64 function
  results in ax:bx:cx:dx, that is no longer in use?)

git-svn-id: trunk@27662 -
2014-04-26 13:37:53 +00:00
reiniero
af2bc84a9a fcl-db: cosmetic: layout
git-svn-id: trunk@27661 -
2014-04-26 12:55:20 +00:00
nickysn
1d4de72aa7 + 8-bit ALU support in tcgcasenode.genlinearcmplist
git-svn-id: trunk@27660 -
2014-04-26 12:41:58 +00:00
reiniero
87f7cf715e * fcl-db: cosmetic: improve documentation for TFieldType array members
git-svn-id: trunk@27659 -
2014-04-26 10:07:12 +00:00
reiniero
2e3e1d37b5 * fcl-db: tests: cosmetic: convert Dutch test text
git-svn-id: trunk@27658 -
2014-04-26 09:04:11 +00:00
nickysn
ca2d1a4667 * extracted the common mode initialization from QueryAdapterInfo to nested procedures
git-svn-id: trunk@27657 -
2014-04-25 23:18:48 +00:00
sergei
b16c6f8ced * i386 and x86_64 changes for Delphi compatibility:
* 'mxcsr' variable made public and renamed to DefaultMXCSR.
  * GetSSECSR and SetSSECSR renamed to GetMXCSR and SetMXCSR, respectively. Previous names continue to exist as deprecated aliases.

git-svn-id: trunk@27656 -
2014-04-25 15:10:12 +00:00
lacak
7ba0b03cd0 fcl-db: tests: not all FmtBCD (exact numeric) values have precise floating point representation. So use "delta" when comparing floating point values.
git-svn-id: trunk@27655 -
2014-04-25 13:42:47 +00:00
nickysn
3e308e0ad7 * 16/8-bit alu fix in thlcg2ll.location_force_reg for the 32->64 conversion of LOC_CONSTANT sources
git-svn-id: trunk@27654 -
2014-04-25 13:20:18 +00:00
nickysn
88df284423 * fixed overflow checking for the 64-bit unary minus on 16 and 8-bit platforms
git-svn-id: trunk@27653 -
2014-04-25 12:33:45 +00:00
nickysn
c5badc8a7c * fixed test cg/tvec.pp for small CPUs
git-svn-id: trunk@27652 -
2014-04-25 12:12:51 +00:00
reiniero
300dc15405 dbcoll.pp: TFieldMap: replace Dutch error message with English text.
git-svn-id: trunk@27651 -
2014-04-25 09:47:23 +00:00
nickysn
ec75c5dfa0 + added an asm implementation of FillDWord for i8086
git-svn-id: trunk@27650 -
2014-04-25 09:18:43 +00:00
nickysn
2de6edc44e * skip the large mem move test (which requires 4MB of memory) in tmem.pp on 16
and 8-bit CPUs

git-svn-id: trunk@27649 -
2014-04-25 09:18:04 +00:00
reiniero
0ce9623ed8 * fcl-db: tests: test blobtype for blob fields; tests for mantis issue #26064
git-svn-id: trunk@27648 -
2014-04-24 15:08:31 +00:00
reiniero
b1435f7756 fcl-db: tests: cosmetic
git-svn-id: trunk@27647 -
2014-04-24 15:07:36 +00:00
reiniero
bb205da801 * fcl-db: tests: cosmetic: remove some Dutch text etc.
git-svn-id: trunk@27646 -
2014-04-24 14:43:41 +00:00
reiniero
7702488182 * fcl-db: set blob field type for blob fields in SetDataType; fixes mantis issue #26064
git-svn-id: trunk@27645 -
2014-04-24 14:04:47 +00:00
michael
9191f44c6e * Memory leak fixed (bug 26063)
git-svn-id: trunk@27644 -
2014-04-24 06:45:22 +00:00
lacak
ec1d9d497b fcl-db: tests: reduce testCurrencyValues to fit into DECIMAL(18,4) and also reduce decimal digits to 2 because PostgreSQL uses for money data type only 2 decimal places.
Partially reverts my previous commit in rev.27613

git-svn-id: trunk@27643 -
2014-04-23 13:34:00 +00:00
nickysn
a47ab44ec8 * unified the 8-bit and 16-bit alu handling in tshlshrnode.pass_typecheck
git-svn-id: trunk@27642 -
2014-04-23 12:53:31 +00:00
nickysn
7d8fb1833f * 16-bit alu handling in tshlshrnode.pass_typecheck simplified via the use of
get_common_intdef

git-svn-id: trunk@27641 -
2014-04-23 12:43:48 +00:00
lacak
2be706dbb0 fcl-db: tests: as MS SQL Server does not support for datetime times beyond 23:59:59.997 use this value instead of 23:59:59.999 introduced in rev.27522
git-svn-id: trunk@27640 -
2014-04-23 12:18:22 +00:00
sergei
f767d9017c * Fixed sin(-0.0) to return -0.0 (was returning 0.0)
* Fixed lnxp1(-1.0) to return -Inf (was returning NaN)

git-svn-id: trunk@27639 -
2014-04-23 10:03:18 +00:00
nickysn
a17797f3ca * tshlshrnode.simplify: in the case of 16-bit or 8-bit shl/shr, AND the right
side constant with 31 (instead of 15 or 7), because that's how the 16-bit and
  8-bit x86 shl/shr instructions behave (even on 16-bit CPUs like 286). The
  change does not affect 32-bit and 64-bit platforms, because there the shift
  is always done in at least 32 bits.

git-svn-id: trunk@27638 -
2014-04-23 00:23:27 +00:00
pierre
0d3bccaa1b Do not consider ansi/wide/unicode strings as taggable for stabs
git-svn-id: trunk@27637 -
2014-04-22 22:32:14 +00:00
nickysn
aa3f450832 * 8/16-bit alu fixes in tnotnode.simplify
git-svn-id: trunk@27636 -
2014-04-22 22:04:31 +00:00
pierre
356ea656e4 Try to avoid problems with generic types for stabs/stabx
git-svn-id: trunk@27635 -
2014-04-22 21:28:45 +00:00
pierre
9a40ff19a1 Avoid problems on implicit functions for gas
git-svn-id: trunk@27634 -
2014-04-22 16:36:50 +00:00
pierre
778e15251e avoid unbalanced .ef complaint in GDB for stabx
git-svn-id: trunk@27633 -
2014-04-22 15:50:22 +00:00
pierre
19ba1b43a1 Add possibility to use GNU assembler gas on naitve AIX
git-svn-id: trunk@27632 -
2014-04-22 15:48:55 +00:00
michael
bb3ec0bd86 * Patch from Reinier to make OnGetSocketHandler published (Bug ID 26028)
git-svn-id: trunk@27631 -
2014-04-22 08:42:38 +00:00
sergei
196436b7e7 * ARM: Test if range check of floating point constants is necessary in the same way as on other targets. This should have been part of r10940 6 years ago...
git-svn-id: trunk@27630 -
2014-04-22 06:51:54 +00:00
nickysn
313240b9e8 * use a better way (suggested by Jonas) to determine whether a procedure is from
the same unit

git-svn-id: trunk@27629 -
2014-04-21 23:14:16 +00:00
pierre
98c7d43c57 Add aix specific options for old Makefile.fpc.fpcmake
git-svn-id: trunk@27628 -
2014-04-21 21:51:56 +00:00
pierre
83580077ab Add aix specific options
git-svn-id: trunk@27627 -
2014-04-21 21:48:02 +00:00
pierre
b258b6dc04 Fix constant string stabx writing
git-svn-id: trunk@27626 -
2014-04-21 21:02:55 +00:00
sergei
65f75791ea * rem_pio2: Return NaN for infinite or NaN arguments, so it is propagated into return values of sin(),cos() and other (not yet existing) callers.
git-svn-id: trunk@27625 -
2014-04-21 18:32:17 +00:00
Jonas Maebe
01d63b376e * wait for some started threads to terminate when we fail to create
more, hopefully more robust that waiting an arbitrary amount of
    time in between
  * replaced calls to tthread.resume with calls tthread.start

git-svn-id: trunk@27624 -
2014-04-21 11:56:40 +00:00
nickysn
efb3cfcbc7 - don't write the default unit code section in the beginning of each asm file,
when using {$hugecode on}, to avoid bogus nasm warnings

git-svn-id: trunk@27623 -
2014-04-21 01:02:21 +00:00
nickysn
8a606761cd * don't push cs in ti8086callnode.extra_interrupt_code in the far code memory
models, because in these models, interrupt procedures are treated as far and
  an appropriate far call (or push cs+near call if in the same segment) is made
  anyway

git-svn-id: trunk@27622 -
2014-04-21 00:56:51 +00:00
nickysn
70a7ecd0fa + use 'push cs + call near' (which is both shorter and faster), instead of far
call, when calling a far proc in the same segment

git-svn-id: trunk@27621 -
2014-04-21 00:44:45 +00:00
pierre
d7c5b4502f Fix AIX assembler issue by enabling WriteExtraFooter with modified output
git-svn-id: trunk@27620 -
2014-04-20 23:08:38 +00:00
sergei
f20b6c73ef * SPARC: convert carry flag into register without branching.
git-svn-id: trunk@27619 -
2014-04-20 19:30:59 +00:00
sergei
1ec5026465 * Call fpc_shortstr_to_shortstr instead of fpc_shortstr_assign. It is the same procedure with different order of parameters (suited for generation from node level). Now fpc_shortstr_assign remains needed only for bootstrapping.
git-svn-id: trunk@27618 -
2014-04-20 19:27:05 +00:00
sergei
2ee0c8de45 * i386: For integer comparisons with zero, emit "test $-1,%reg" instead of "test %reg,%reg". It is more spilling-friendly, because it transforms into "test $-1,spilltemp" and does not require a register.
* Improved peephole optimizer to remove these instructions if preceded by flag-setting instruction that operates on same location and followed by conditional jump, and change them back into "test %reg,%reg" otherwise.

git-svn-id: trunk@27617 -
2014-04-20 19:16:58 +00:00
nickysn
1fa0e64480 + {$hugecode on} for the graph unit in the large and huge i8086 memory models
git-svn-id: trunk@27616 -
2014-04-20 19:11:09 +00:00
nickysn
597f110eb9 + added support for units with code larger than 64kb in the far code i8086
memory models. Enabled by the new directive {$hugecode on}. The directive is
  ignored in the near code memory models. When enabled, it forces each procedure
  to be in a separate segment and disables mixing near and far procedures (so
  'near' and {$F-} are ignored in this mode). Note that {$hugecode on} does not
  count as a different memory model, because you can freely link modules (units)
  compiled with {$hugecode on} and {$hugecode off}.

git-svn-id: trunk@27615 -
2014-04-20 19:03:14 +00:00