Jonas Maebe
|
73cae02c20
--- Merging r29821 into '.':
|
9 năm trước cách đây |
sergei
|
8f4430e795
* tcg.translate_register: check that reg.allocator is not nil before calling its method (in case of "assembler nostackframe" function returning an x87 float compiler tries to translate NR_ST which is used for function result).
|
10 năm trước cách đây |
sergei
|
e4fea2ebc8
* Dummy implementations of a_bit_scan_reg_reg and g_stackpointer_alloc in tcg, removes the need to override these methods in every descendant code generator solely to avoid "constructing a class with abstract method" warning.
|
11 năm trước cách đây |
sergei
|
cd27d64cd5
+ Support (as target-independent as possible) optimization of division by constants:
|
11 năm trước cách đây |
nickysn
|
5dcbaa4b2d
- rm the cpu16bitalu and cpu64bitalu ifdefs from tcg.a_load_ref_cgpara as well
|
11 năm trước cách đây |
Jonas Maebe
|
dab8754bb6
* moved joinreg64 from cg64f32 to cgobj (joinreg128 is also declared
|
11 năm trước cách đây |
sergei
|
9c1f917e3a
* a_call_ref functionality cannot be implemented efficiently at code generator level, because references need specific preparations at earlier points. Moved this support to tcgcallnode and its x86 descendants, and got rid of all ifdef's around.
|
11 năm trước cách đây |
sergei
|
0d3f36eebf
- Remove references to global variable 'cg' from methods of tcg and some of its descendants.
|
11 năm trước cách đây |
nickysn
|
be85998313
* fixes in optimize_op_const:
|
11 năm trước cách đây |
nickysn
|
85dd9e5789
+ added a size parameter to optimize_op_const and do a sign extension of the 'a' parameter up from the specified size, so that things like (i and $ffffffff) get optimized away the same way as (i and -1)
|
11 năm trước cách đây |
sergei
|
5cd0684d45
* tcg.a_load_ref_reg_unaligned: if loading signed 16-bit value, treat upper half as signed 8-bit to ensure that result is properly extended. This routine is used only by SPARC target (other CPUs use specific implementations), and it generates pretty inefficient code, therefore it's probably worth to drop it altogether and implement SPARC-specific version. Mantis #25440.
|
11 năm trước cách đây |
nickysn
|
bf07fc077b
* specify AT_DATA in all references to the tobjectdef.vmt_mangledname symbol.
|
11 năm trước cách đây |
svenbarth
|
c48d572996
Implement support for saving and restoring address registers.
|
12 năm trước cách đây |
svenbarth
|
235c06ab34
Implement volatile address registers. Fixes quite some tests, but also breaks others... (overall more are fixed than are broken :) )
|
12 năm trước cách đây |
florian
|
e81d2d1f3b
* basic avx support for floating point operations (use -Cfavx to activate)
|
12 năm trước cách đây |
nickysn
|
512ca83f33
- don't allocate/deallocate the fpu registers in tcg.[de]allocallcpuregisters on the i8086
|
12 năm trước cách đây |
nickysn
|
a5c5b05362
* initial support for system procs that use calling conventions that push left to right on i8086 or i386
|
12 năm trước cách đây |
florian
|
1eeeb309c7
* intial armv6m support, it is not working yet, constant pool insertation and conditional branch fixup is not working yet
|
12 năm trước cách đây |
paul
|
5d74e0578a
compiler: remove unused variables and unneeded assignments
|
12 năm trước cách đây |
Jonas Maebe
|
69c29a415f
* pass the procdef to getintparaloc instead of only the proccalloption, so
|
12 năm trước cách đây |
florian
|
4f30ac0247
* put records with 16 bytes size into two register on 64 bit targets if possible
|
12 năm trước cách đây |
pierre
|
d8c2930454
Also accept R_ADDRESSREGISTER in a_load_cgparaloc_anyreg method
|
12 năm trước cách đây |
florian
|
2e7fe1aebd
* support of avx register requires now proper usage of R_SUBMMWHOLE
|
13 năm trước cách đây |
florian
|
ca5fabda6d
* cleanup some unused units from uses clauses
|
13 năm trước cách đây |
florian
|
67744ef46e
* fix methodpointers in registers on big endian targets
|
13 năm trước cách đây |
florian
|
d93cee995b
* fix register method pointer for ppc64 and x86_64-linux
|
13 năm trước cách đây |
florian
|
7361e19799
+ support for handling OS_128/OS_S128 on 64 Bit CPUs as far as needed for method pointers in registers
|
13 năm trước cách đây |
Jonas Maebe
|
be8f8fec76
* converted tcg.g_releasevaluepara_openarray() to thlcg
|
13 năm trước cách đây |
Jonas Maebe
|
9197ce100e
* converted tcg.g_copyvaluepara_openarray() to thlcg
|
13 năm trước cách đây |
Jonas Maebe
|
aba6923187
* moved g_test_self() from cgobj to hlcgobj
|
13 năm trước cách đây |