Commit Graph

43021 Commits

Author SHA1 Message Date
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
pierre
034c440d84 Fix big mistake in previous commit, packed must be disabled if FPC_REQUIRES_PROPER_AIGNMENT is set
git-svn-id: trunk@27614 -
2014-04-20 17:36:24 +00:00
lacak
e09f9bf781 fcl-db: bufdataset: fix ftBCD field compare function. ftBCD fields are using currency data type, which is 64 bit long, so compare function must be for 64 bit long integer not for 32 bit long.
+ update test values for ftBCD fields, which was too small and not able catch problem.

git-svn-id: trunk@27613 -
2014-04-20 17:29:43 +00:00
pierre
c4620f6d84 Fix assembler condition string failure for powerpc/powerpc64 cpu targets
git-svn-id: trunk@27612 -
2014-04-20 17:19:10 +00:00
sergei
819f6de01a * ARM: fixed floating point comparison flags for VFP hardfloat (part of Mantis #9362).
git-svn-id: trunk@27611 -
2014-04-20 17:06:32 +00:00
pierre
8193aff81d Fix cycle starting for 2.6.4 release for powerpc64-linux
git-svn-id: trunk@27610 -
2014-04-20 16:28:52 +00:00
lacak
ee9197c3b2 fcl-db: bufdataset: add ftGuid to list of supported field types when building CompareStruct (used in indexing and locating)
git-svn-id: trunk@27609 -
2014-04-20 16:17:29 +00:00
marco
da234bc03f * swap 2.6.4 and 2.6.2 in supported versions. Message now says 2.6.4, but 2.6.2 will work.
git-svn-id: trunk@27608 -
2014-04-20 15:06:47 +00:00
Jonas Maebe
e0a910e813 * factored out left/right swapping code in smallset operations
* force the left operand into a register if both the left and
    right are constants (can happen because not all set add-nodes
    are handled in taddnode.simplify) because the code below
    expects at least one register operand. Fixes the compilation of a.o.
    taddset2 with -O3 on ppc (constant propagagation -> 2 constant
    operands)

git-svn-id: trunk@27607 -
2014-04-20 14:35:00 +00:00
Jonas Maebe
212f4d1152 * pass the size of the set rather than of the constant to
a_bit_test_const_loc_reg() (bug in hlcgobj conversion)

git-svn-id: trunk@27606 -
2014-04-20 14:34:57 +00:00
nickysn
bf6ad0ff78 * fixed tcg8086.g_flags2reg, so it behaves the same way as tcgx86.g_flags2reg
after r27581 in regard to floating point comparisons. The tcmpnan.pp test now
  almost works (i.e. fails due to only one error, instead of many).

git-svn-id: trunk@27605 -
2014-04-19 22:54:29 +00:00
sergei
5fe27ae815 * powerpc/powerpc64: Fixed floating point compares to be IEEE-754 compliant. Mantis #9362.
git-svn-id: trunk@27604 -
2014-04-19 19:54:24 +00:00
Jonas Maebe
4fa69488bc * fixed compilation of AIX rtl with -Cr
git-svn-id: trunk@27603 -
2014-04-19 18:48:57 +00:00
Jonas Maebe
4ec3327bee + enabled rtl-unicode for AIX
git-svn-id: trunk@27602 -
2014-04-19 18:48:51 +00:00
Jonas Maebe
d627880942 + added unicode units for AIX
git-svn-id: trunk@27601 -
2014-04-19 18:48:45 +00:00
Jonas Maebe
0dbfb99afa * always use assembler directives that support unaligned data on AIX, as
otherwise data in initialised packed records gets aligned wrongly. This
    should probably also be done for other targets that automatically
    align .short/.long/...

git-svn-id: trunk@27600 -
2014-04-19 18:48:40 +00:00
Jonas Maebe
bcf007a4b3 * fixed implicit unit names
git-svn-id: trunk@27599 -
2014-04-19 18:48:33 +00:00
sergei
a8eb55fa7c * powerpc/powerpc64: merged identical a_jmp_flags methods into base code generator class.
git-svn-id: trunk@27598 -
2014-04-19 18:34:10 +00:00
Jonas Maebe
36e61086de - removed file coming from Novell NDK, whose licensing agreement forbids
(a.o.) creating software that "substantially duplicate the capabilities
    or compete with the Derivative Software or the Software". Including
    a verbatim copy of one of the NDK files seems to "substantially duplicate
    the capabalities" (mantis #26041)

git-svn-id: trunk@27596 -
2014-04-19 17:04:18 +00:00
sergei
af52c874d0 - Removed some stuff that is not used anywhere.
git-svn-id: trunk@27595 -
2014-04-18 18:34:53 +00:00
Jonas Maebe
f105f3f667 * compile uuchar unit for aix
git-svn-id: trunk@27594 -
2014-04-18 14:32:15 +00:00
sergei
f3801d13de * SPARC: cleaned up and actualized TAsmCond (stuff copy-pasted from x86 removed, conditions for unordered floating-point comparisons added). Fixes Mantis #9362 on this target.
git-svn-id: trunk@27593 -
2014-04-17 14:15:45 +00:00
sergei
58882e2934 * SPARC: UNIMP instruction has 22-bit "opcode", not 12-bit.
git-svn-id: trunk@27592 -
2014-04-17 14:08:33 +00:00
nickysn
9a44ab2fc2 * always treat interrupt routines as far, so their address can be taken even in
{$F-} mode

git-svn-id: trunk@27591 -
2014-04-16 23:37:28 +00:00
nickysn
d6ad2b1f8a + added support for mixing near and far procedures in the i8086 far code memory
models. The $F directive and the 'near' and 'far' procedure modifiers should
  now work as expected in the far code memory models (they are still ignored in
  the near code memory models). The compiler defaults to the {$F+} state,
  because {$F-} requires adding 'far' to a lot of procedures in the rtl,
  packages and tests.

git-svn-id: trunk@27590 -
2014-04-16 23:09:18 +00:00
sergei
c0431dba4e * Moved method g_flag2reg from tcgppc (in both powerpc and powerpc64) to tcgppcgen class, since it is identical for both targets.
git-svn-id: trunk@27589 -
2014-04-16 15:00:49 +00:00
michael
c4e249f643 * Add support for xfce terminal
git-svn-id: trunk@27588 -
2014-04-16 11:41:24 +00:00
lacak
88bea93d60 fcl-db: bufdataset: remove unneeded fields of TDBCompareRec
git-svn-id: trunk@27587 -
2014-04-16 07:15:55 +00:00
lacak
1d2c56255e fcl-db: bufdataset: add compare functions for ftBytes, ftVarBytes field types (used in locating and indexing records)
git-svn-id: trunk@27586 -
2014-04-16 07:09:23 +00:00
pierre
d57d816744 powerpc64-aix C objects files added using gcc 4.8.1
git-svn-id: trunk@27585 -
2014-04-16 06:24:07 +00:00
sergei
4c3a4646ec * Fixed floating-point comparisons for softfloat targets (part of Mantis #9362).
git-svn-id: trunk@27584 -
2014-04-15 23:36:21 +00:00
reiniero
6d9aa6e90f fcl-db: cosmetic
git-svn-id: trunk@27583 -
2014-04-15 10:19:01 +00:00
florian
0a312a783e * avoid generation of avx code before the check if avx is supported
git-svn-id: trunk@27582 -
2014-04-14 18:18:29 +00:00