Commit Graph

41952 Commits

Author SHA1 Message Date
florian
694ba6a702 * call strip on the COMPILER macro to make the output look more nicely
git-svn-id: trunk@26502 -
2014-01-18 10:19:54 +00:00
florian
fd5fa95416 + OPTNEW Makefile parameter: when running a native cycle, this allows to pass a parameter only to the new generated compiler
git-svn-id: trunk@26501 -
2014-01-18 10:19:16 +00:00
sergei
a3efd9e1df + Added method taddnode.use_generic_mul64bit, allowing it to inline full 64-bit multiplications, and fixed ARM to comply (it was not checking for possible 32x32 to 64 optimization after detecting a 64-bit operand, so recently added code for 32x32 to 64 bit optimization was inactive).
git-svn-id: trunk@26500 -
2014-01-18 09:59:59 +00:00
nickysn
2459518bdd * use IMUL even for unsigned multiplication on x86_64, when overflow checking is
off

git-svn-id: trunk@26499 -
2014-01-18 03:36:15 +00:00
nickysn
5d75bf4f92 * always use IMUL instead of MUL on i386, when doing a 32->32 multiplication
without overflow checking

git-svn-id: trunk@26498 -
2014-01-18 02:56:51 +00:00
nickysn
2602f379d7 * fixes in the 16 to 32-bit multiplication in ti8086addnode.second_mul
git-svn-id: trunk@26497 -
2014-01-18 00:38:46 +00:00
pierre
f4726e068b Avoid assmebler size mismatch warning in Keep procedure
git-svn-id: trunk@26496 -
2014-01-17 23:33:24 +00:00
nickysn
3f4111ac37 * emit MUL instead of IMUL in ti8086addnode.second_mul when overflow checking is
off and the multiplication is 16->16

git-svn-id: trunk@26495 -
2014-01-17 23:04:46 +00:00
pierre
76c40a49db Add missing field enable_count in breakpoint record (added in 7.5 release)
git-svn-id: trunk@26494 -
2014-01-17 22:52:31 +00:00
nickysn
529008e031 * emit MUL (when overflow checking is off), instead of IMUL for OP_IMUL in
tcg8086.a_op_const_reg, when the target CPU is 8086/8088, because it's
  supposed to be faster on these processors, according to Intel's instruction
  timings.

git-svn-id: trunk@26493 -
2014-01-17 21:23:42 +00:00
sergei
6168f563c2 * x86 compares: compare references with constants directly (without loading to register) if possible, this helps to reduce register pressure.
git-svn-id: trunk@26492 -
2014-01-17 19:42:09 +00:00
nickysn
820b667e1b - rm the OP_IMUL to SHL optimization from tcgx86.a_op_const_reg and tcgx86.a_op_const_ref, because it's already done in optimize_op_const, which is called in the beginning of both methods.
git-svn-id: trunk@26491 -
2014-01-17 18:34:13 +00:00
michael
9535837039 * Fix recuperation of first transaction created in InternalDoConnect
git-svn-id: trunk@26490 -
2014-01-17 17:21:35 +00:00
paul
1f83117f16 utils: use fpc 2.6.2 compatible code
git-svn-id: trunk@26489 -
2014-01-17 10:44:24 +00:00
nickysn
767a0f1187 - rm TODO comment about the IMUL optimization with SHL from
tcg8086.a_op_const_reg, since that optimization is already done in
  optimize_op_const, which is called earlier in the same method.

git-svn-id: trunk@26488 -
2014-01-17 10:28:30 +00:00
nickysn
1a846e7c71 - rm TODO comment for overflow checking from tcg8086.a_op_const_reg, since
overflow checking should not be implemented there. It should only leave the
  flags in place for the jo instruction, which the IMUL instruction already
  does.

git-svn-id: trunk@26487 -
2014-01-17 10:26:20 +00:00
paul
ba00250fb4 fpmkunit: choose between .rst and .rsj
git-svn-id: trunk@26486 -
2014-01-17 09:06:20 +00:00
paul
e181fbc327 utils: clean rsj files by delp
git-svn-id: trunk@26485 -
2014-01-17 02:24:37 +00:00
paul
13a0b21031 rstconv: fixed memory leak
git-svn-id: trunk@26484 -
2014-01-17 02:15:35 +00:00
nickysn
34cf432600 * in the generic implementation of fpc_mul_int64, fallback directly to
fpc_mul_qword directly in case overflow checking is not used

git-svn-id: trunk@26483 -
2014-01-17 01:25:41 +00:00
florian
e210d5f30e + cpu_capabilites for x86_64 and i386
* take advantage of bmi2 instruction rorx

git-svn-id: trunk@26482 -
2014-01-16 21:47:28 +00:00
sergei
75894722d4 * Factored a reusable piece of code into separate method.
git-svn-id: trunk@26481 -
2014-01-16 16:43:06 +00:00
marco
373e450dbc * more android fixes for sockets unit, mantis #25528
git-svn-id: trunk@26480 -
2014-01-16 14:24:42 +00:00
paul
71fbba2b1e utils: parse .rsj file by rstconv tool
git-svn-id: trunk@26479 -
2014-01-16 13:57:33 +00:00
paul
e7636cd6e6 compiler: fix a bug in .rsj output and enable it by default
git-svn-id: trunk@26478 -
2014-01-16 13:57:08 +00:00
paul
3aec5da7a7 compiler: use widestrings for json resource file generation
git-svn-id: trunk@26477 -
2014-01-16 12:07:26 +00:00
michael
d7fb3be2af * Patch from reinier (bug id 25544)
git-svn-id: trunk@26476 -
2014-01-16 10:49:55 +00:00
paul
3bd53b9658 compiler: add a method for generating json files for resource strings (for experiments only now)
git-svn-id: trunk@26475 -
2014-01-16 09:26:53 +00:00
Jonas Maebe
8065fc24d9 * fixed indentation of stack slot allocation debug statements
git-svn-id: trunk@26474 -
2014-01-15 20:36:59 +00:00
Jonas Maebe
2518c526c7 * always use a new register for array indices modified by a constant,
improves register/stack allocation

git-svn-id: trunk@26473 -
2014-01-15 20:36:56 +00:00
Jonas Maebe
a5653916e0 * convert array indices always to s32int, because that is the index type used
by java arrays (otherwise we may get unwanted sign extensions after
    performing e.g. an s16bit operation, see the test)

git-svn-id: trunk@26472 -
2014-01-15 20:36:52 +00:00
Jonas Maebe
67413a2823 * fixed skpara setter of tprocdef after r26332
git-svn-id: trunk@26471 -
2014-01-15 20:36:49 +00:00
marco
a16543e81f * some delphi compatible overloads by Ocean, mantis #25519
git-svn-id: trunk@26469 -
2014-01-15 16:18:21 +00:00
sergei
c673c32ad9 + SPARC: generate position-independent case jump tables, as specified by ABI.
Generate them also for non-PIC mode: absolute code is just 2 instructions shorter, trying to save them is probably not worth the effort.

git-svn-id: trunk@26468 -
2014-01-15 15:31:53 +00:00
sergei
dd78cd5811 + SPARC: assembler implementation of SarInt64.
git-svn-id: trunk@26467 -
2014-01-15 15:11:40 +00:00
Károly Balogh
b398430b4c * get_volatile_registers* now defines proper volatile register range for all cases using the pre-defined values
* removed the two huge and ugly case switches while parsing Amiga-specific paralocs, using a simple unified function now

git-svn-id: trunk@26466 -
2014-01-15 02:49:03 +00:00
Károly Balogh
587acf6452 fix infinite spilling on m68k, patch by Florian, additional IE workaround by me, based on a similar hack in the ARM cg...
git-svn-id: trunk@26465 -
2014-01-15 02:09:02 +00:00
Károly Balogh
70f9b098e0 no longer define a segment field for m68k
git-svn-id: trunk@26464 -
2014-01-15 02:06:10 +00:00
Károly Balogh
80b253c111 be consistent in naming. renamed VOLATILE_ADDRESSREGISTER to VOLATILE_ADDRESSREGISTERS
git-svn-id: trunk@26463 -
2014-01-15 01:31:41 +00:00
Károly Balogh
b37ebeaabd disabled a_loadaddr_ref_cgpara() for m68k, this code was copy-pasted from x86 probably and could never work properly as it is
git-svn-id: trunk@26462 -
2014-01-15 01:27:02 +00:00
pierre
2a6e592fba Handle link map for msdos wlink
git-svn-id: trunk@26461 -
2014-01-14 21:40:02 +00:00
Jonas Maebe
ca446b4b2a - removed registration of x86_6432 target because it's not supported in any
way by the compiler (and furthermore it would have to be registerd in an
    the x86_64 compiler binary, not an i386 one) (mantis #25525)

git-svn-id: trunk@26460 -
2014-01-14 20:37:18 +00:00
Jonas Maebe
5fc4af09dd * don't crash when searching for a type helper in an anonymous array (or
other non-record/objectdef-based) type (mantis #25504)

git-svn-id: trunk@26459 -
2014-01-14 19:52:20 +00:00
Jeppe Johansen
123742647c Fixed problem in estimation of stack size for thumb targets. Types passed by value were not handled properly.
git-svn-id: trunk@26458 -
2014-01-14 19:27:15 +00:00
svenbarth
6273192ce1 + Add a new overload to DynLibs to allow loading by Ordinal only. This needs specific operating system support however and will return Nil (using a default implementation) if ordinals are not supported.
+ Implement overload for the three supported Windows targets.

git-svn-id: trunk@26457 -
2014-01-14 15:23:55 +00:00
marco
194abaddb4 * copy osdefs.inc from Linux. RTL included Linux dir, package does not.
git-svn-id: trunk@26456 -
2014-01-14 14:52:01 +00:00
pierre
baf79eb12b Recompiled with pic option
git-svn-id: trunk@26455 -
2014-01-13 23:07:56 +00:00
pierre
d492b3d17d crtbeginS.o seems to use _init, not __init
git-svn-id: trunk@26454 -
2014-01-13 23:04:54 +00:00
pierre
9833faeb0a Fix loading of __progname_storage+255
git-svn-id: trunk@26453 -
2014-01-13 23:03:51 +00:00
pierre
fdb3525d9f crtbeginS.o seems to use _init, not __init
git-svn-id: trunk@26452 -
2014-01-13 23:02:06 +00:00