Tomas Hajny
1a430d8110
* GetProcAddr added for OS/2, type of argument for ordinal target specific now
...
git-svn-id: trunk@26521 -
2014-01-19 21:15:26 +00:00
nickysn
b91509159a
+ added asm optimized 64-bit division helpers for i8086 by Max Nazhalov
...
git-svn-id: trunk@26520 -
2014-01-19 20:26:24 +00:00
sergei
ca58cc1d64
+ x86_64: generate position-independent case jump tables (twice smaller than absolute ones and do not require dynamic relocations in .dll/.so).
...
git-svn-id: trunk@26519 -
2014-01-19 15:41:05 +00:00
paul
eb508a18e9
compiler: remove RST writer
...
git-svn-id: trunk@26518 -
2014-01-19 04:40:41 +00:00
Tomas Hajny
cce9498b7c
* fix building for OS/2 and EMX (additional include path necessary)
...
git-svn-id: trunk@26517 -
2014-01-19 01:25:55 +00:00
Tomas Hajny
5f6aefa4c0
+ character sets for central Europe added
...
git-svn-id: trunk@26516 -
2014-01-19 01:24:16 +00:00
sergei
6b1f021fcf
- Removed remaining optimizations that duplicate functionality of tcg.optimize_op_const.
...
- Don't call make_simple_ref if operation will be optimized away or replaced with another one, which calls make_simple_ref itself.
git-svn-id: trunk@26515 -
2014-01-19 01:19:01 +00:00
nickysn
c83032992d
* more fixes to the 3-op IMUL spilling:
...
o Return the correct operation type for all forms of IMUL in
taicpu.spilling_get_operation_type
o Properly support 3-op IMUL in trgx86.do_spill_replace
git-svn-id: trunk@26514 -
2014-01-18 21:46:13 +00:00
florian
a752e3542d
+ more x86 cpu flags
...
git-svn-id: trunk@26513 -
2014-01-18 21:03:09 +00:00
nickysn
4a107dcfa6
+ added 32-bit asm optimized division helpers for i8086 by Max Nazhalov
...
git-svn-id: trunk@26512 -
2014-01-18 20:33:30 +00:00
sergei
78e726b34f
* i386: Somewhat optimized fpc_mul_qword routine, got rid from variable 'r', registers esi and edi. Also ignore overflow checking when both operands have their high dwords equal to zero, because in such case multiplication cannot overflow.
...
git-svn-id: trunk@26511 -
2014-01-18 19:28:00 +00:00
sergei
e6a9f3b15b
* Fixed spilling of 3-operand IMUL instruction (went unnoticed this far because such instructions were not emitted by compiler).
...
git-svn-id: trunk@26510 -
2014-01-18 19:21:48 +00:00
nickysn
1f7b14f38e
* fixed the conversion of powerof2 mul/imuls to lea in tcgx86.a_op_const_reg_reg
...
git-svn-id: trunk@26509 -
2014-01-18 17:58:31 +00:00
nickysn
cc1faad3d2
+ make use of the 3-operand form of IMUL on i386 and x86_64
...
git-svn-id: trunk@26508 -
2014-01-18 17:04:57 +00:00
nickysn
1de847c754
* fixed error in comment
...
git-svn-id: trunk@26507 -
2014-01-18 17:00:10 +00:00
florian
7028210817
+ tzcnt assembler instruction
...
git-svn-id: trunk@26506 -
2014-01-18 12:11:50 +00:00
florian
0e67ca6419
* fixed output of test if a failure happens
...
git-svn-id: trunk@26505 -
2014-01-18 12:08:02 +00:00
sergei
3a3197ae9c
+ i386: inline 64-bit multiplications if overflow checking is disabled and not optimizing for size. Rough testing on Core 2 Duo shows speed improvement by factor of 5, even despite inlined code does not check for zero upper dwords.
...
git-svn-id: trunk@26504 -
2014-01-18 11:41:55 +00:00
florian
2a2184bc40
* regenerated makefiles affected by the last change
...
git-svn-id: trunk@26503 -
2014-01-18 10:21:41 +00:00
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