nickysn
b6c3329f20
+ also check for negative powers of 2 in the mod by power-of-2 constant x86 optimization, since the sign of the divisor is ignored by the 'mod' operation
...
git-svn-id: trunk@36797 -
2017-07-26 16:10:41 +00:00
nickysn
4b00414183
+ added helper isabspowerof2, which checks whether abs(value) is a power of 2
...
git-svn-id: trunk@36796 -
2017-07-26 16:08:31 +00:00
pierre
7ee567fcca
Use A_LD_R alias in functions using GOT indirection
...
git-svn-id: trunk@36795 -
2017-07-26 14:58:03 +00:00
pierre
ef3b006eb2
Use A_LD_R alias in do_spill_replace function
...
git-svn-id: trunk@36794 -
2017-07-26 14:57:21 +00:00
pierre
6e18d537fc
Use A_LD_R and A_ST_R aliases for spilling_create_(load|store) functions
...
git-svn-id: trunk@36793 -
2017-07-26 14:56:11 +00:00
pierre
f5dfbb5ff3
Add A_ST_R and A_LD_R instruction alias for whole register size store/load
...
git-svn-id: trunk@36792 -
2017-07-26 14:53:30 +00:00
pierre
6f6139609d
Add explicit '.set nompis16' at front of stabs debug information to solve bug report 32138
...
git-svn-id: trunk@36781 -
2017-07-24 07:31:31 +00:00
florian
a2e442e111
* keep the names of X, Y and Z in assembler files, fixes issue #32150
...
git-svn-id: trunk@36776 -
2017-07-23 19:24:45 +00:00
florian
8c33fbbe64
* indention fixed
...
git-svn-id: trunk@36775 -
2017-07-23 19:24:43 +00:00
florian
7ed3757f8c
+ TCGSparc64.a_load_reg_ref_unaligned
...
git-svn-id: trunk@36763 -
2017-07-21 21:17:41 +00:00
florian
eaa33f416c
* sparc64: fix int to bool type conversions for 64 bit ints
...
git-svn-id: trunk@36762 -
2017-07-21 20:41:14 +00:00
nickysn
7c306f18e3
+ perform unsigned modulus by power of 2 constant by using an AND instruction (instead of DIV) on x86
...
git-svn-id: trunk@36756 -
2017-07-21 15:58:26 +00:00
nickysn
9853c4a2a3
+ enabled the load-modify-store optimization for the double argument version
...
(i.e. shift/rotate by k) of sar, rol and ror with type conversion on i386 and
x86_64.
git-svn-id: trunk@36755 -
2017-07-21 13:17:18 +00:00
nickysn
c8377d3bfc
+ enabled the load-modify-store optimization for the double argument version
...
(i.e. shift/rotate by k) of sar, rol and ror on i386 and x86_64. Only the case
without any implicit type conversions is handled for now.
git-svn-id: trunk@36753 -
2017-07-20 14:09:25 +00:00
pierre
6fdd952fd9
Fix check for setting use_unlimited_pic_mode for sparc64
...
git-svn-id: trunk@36746 -
2017-07-18 18:02:36 +00:00
nickysn
e562926763
+ implemented the load/modify/store optimization for i:=sar/rol/ror(i) when
...
there's a type conversion involved as well (e.g. uint32:=SarLongInt(unit32) ).
This only works for signed<->unsigned conversions of equal size, due to the
nature of the sar, rol and ror operations.
git-svn-id: trunk@36745 -
2017-07-18 13:48:35 +00:00
pierre
903955f329
Add 's' for sparc64 specific message prefix
...
git-svn-id: trunk@36744 -
2017-07-18 12:50:47 +00:00
pierre
4c3d8d422a
Add _GLOBAL_OFFSET_TABLE_ for sparc64 if -Cg is used
...
git-svn-id: trunk@36743 -
2017-07-18 12:49:26 +00:00
pierre
f3459454e6
Fix compilation failure for sparc CPU
...
git-svn-id: trunk@36741 -
2017-07-18 04:47:49 +00:00
nickysn
cb0c947f37
+ enabled the load-modify-store optimization for the single argument version
...
(i.e. shift/rotate by 1) of sar, rol and ror on i386 and x86_64.
git-svn-id: trunk@36739 -
2017-07-17 14:50:39 +00:00
florian
a7d127cf08
* only sparc v7 and v8 require an instruction between FCMP and the branch
...
git-svn-id: trunk@36737 -
2017-07-16 09:24:20 +00:00
florian
ac894831e4
* use the 64 bit path in tSparcmoddivnode.pass_generate_code for all 64 bit types (including currency) on sparc64
...
git-svn-id: trunk@36736 -
2017-07-16 09:24:18 +00:00
svenbarth
0c42b6f44a
* fix for Mantis #32118 : also provide a range for undefined defs
...
+ added test
git-svn-id: trunk@36723 -
2017-07-10 19:47:21 +00:00
svenbarth
ca78bfffae
* fix for Mantis #32111 : allow undefined defs as a for loop's counter; the specialization will decide whether it will compile or not
...
+ added test
git-svn-id: trunk@36722 -
2017-07-10 19:45:15 +00:00
florian
bccc2f6863
+ tcg.a_loadfpu_intreg_reg, make use of it in tcg.a_load_cgparaloc_anyreg
...
git-svn-id: trunk@36717 -
2017-07-09 21:33:24 +00:00
florian
dd3d62425c
* guard case statement by internalerror to avoid a warning
...
git-svn-id: trunk@36716 -
2017-07-09 21:33:22 +00:00
florian
f30bf547e2
* TCGSparcGen.maybeadjustresult adapted for sparc64
...
git-svn-id: trunk@36711 -
2017-07-09 18:14:14 +00:00
Károly Balogh
eaa769053b
m68k: enable 68881 FPU on Linux and NetBSD by default
...
git-svn-id: trunk@36699 -
2017-07-08 23:54:39 +00:00
Károly Balogh
0b561b6c8f
powerpc: enable SUPPORT_GET_FRAME
...
git-svn-id: trunk@36698 -
2017-07-08 23:51:55 +00:00
svenbarth
0f9451fbb7
* switch x86_64-linux to indirect entry, essentially allowing for the use of dynamic packages on that target
...
git-svn-id: trunk@36690 -
2017-07-08 20:39:36 +00:00
florian
13801bebfe
* pass debian specific path to c init files to ld for sparc64 as it is done on other targets as well
...
git-svn-id: trunk@36676 -
2017-07-07 22:33:42 +00:00
florian
25950b8575
* 64 bit multiplications for sparc64 fixed
...
git-svn-id: trunk@36675 -
2017-07-07 22:18:16 +00:00
florian
bd57ca99a8
* cosmetics
...
git-svn-id: trunk@36672 -
2017-07-07 22:18:11 +00:00
florian
cbe9a1b65f
* make thlcgcpu.g_intf_wrapper usable for sparc64 as well
...
git-svn-id: trunk@36665 -
2017-07-07 13:17:42 +00:00
florian
8401a460e5
+ support 64 bit sar on sparc64
...
* fix on sparc64 broken a_cmp_const_reg_label and a_cmp_reg_reg_label
git-svn-id: trunk@36661 -
2017-07-07 10:11:44 +00:00
florian
1f4d6e8a4d
* compilation on 32 bit sparc fixed
...
git-svn-id: trunk@36660 -
2017-07-07 09:30:50 +00:00
florian
c8c14d8db9
* pass -32 to the sparc assembler
...
git-svn-id: trunk@36659 -
2017-07-07 09:08:05 +00:00
florian
a9a0ca6649
* sparc64 needs a helper for overflow checked 64 bit division operations
...
git-svn-id: trunk@36658 -
2017-07-07 09:08:02 +00:00
florian
ca51bd56c4
+ a_jmp_cond64
...
* generate 64 bit comparisons if needed
git-svn-id: trunk@36657 -
2017-07-06 18:02:24 +00:00
Károly Balogh
8a22807efa
m68k: also add Debian's custom library path like on other CPUs
...
git-svn-id: trunk@36645 -
2017-07-04 22:51:08 +00:00
florian
109612b7e1
* correctly load 32 bit values on sparc64
...
git-svn-id: trunk@36644 -
2017-07-04 20:52:47 +00:00
florian
57a137068b
* integer registers must have the size R_SUBWHOLE for sparc, resolves issue #32065
...
git-svn-id: trunk@36639 -
2017-07-03 20:49:06 +00:00
florian
28cfa838b5
+ support for the different flag registers of sparc
...
* fixing 64 bit cmp operations on sparc64
git-svn-id: trunk@36638 -
2017-07-03 20:49:05 +00:00
florian
4b30e5ee11
+ TSparcmoddivnode.pass_generate_code for SPARC64
...
git-svn-id: trunk@36637 -
2017-07-03 20:49:03 +00:00
florian
5bc9890727
+ more sparc64 instructions
...
git-svn-id: trunk@36636 -
2017-07-03 20:49:01 +00:00
florian
5b91fd7065
+ taicpu.op_reg_sym for sparc
...
git-svn-id: trunk@36635 -
2017-07-03 20:49:00 +00:00
florian
65c9e6c32e
+ fccX registers
...
git-svn-id: trunk@36633 -
2017-07-03 20:48:56 +00:00
florian
94c3ac027b
* fixed spelling: fpc_mode -> gpc_mode
...
git-svn-id: trunk@36632 -
2017-07-03 20:48:53 +00:00
svenbarth
ad65ff5600
* insert symbol only once
...
git-svn-id: trunk@36620 -
2017-06-30 15:59:33 +00:00
svenbarth
a301bf75ea
* ngenutil.tnodeutils.sym_maybe_initialize: don't use "is" operator, but corresponding is_* functions
...
git-svn-id: trunk@36617 -
2017-06-29 18:51:35 +00:00