Jonas Maebe
|
1320d6bdba
* correctly handle negative paraloc shift values for non power-of-2 sized
|
9 gadi atpakaļ |
Jonas Maebe
|
3f736f6114
* handle the loading of VMT entries at the node level, so it's done in a
|
10 gadi atpakaļ |
florian
|
d598351664
* call also optimize_op_const in the generic a_op_const_reg_reg
|
10 gadi atpakaļ |
Jonas Maebe
|
61e4a1b811
+ added tasmlist parameter to getintparaloc() (needed for llvm)
|
10 gadi atpakaļ |
Jonas Maebe
|
bd203a5b57
* synchronised with trunk till r30240
|
10 gadi atpakaļ |
Jonas Maebe
|
622852b8c9
* check that a_load_cgparaloc_anyreg() is not used to try to move an fpu
|
10 gadi atpakaļ |
Jonas Maebe
|
6d02aedf70
* support multiple register paralocs in tcgobj.a_loadfpu_ref_cgpara()
|
10 gadi atpakaļ |
Jonas Maebe
|
67b8aceaee
* synchronized with privatetrunk till r30095
|
10 gadi atpakaļ |
Jonas Maebe
|
2ab7f5c35d
* moved x86-specific requirements from the generic bsr/bsf code to the
|
10 gadi atpakaļ |
Jonas Maebe
|
504a9d1594
* fixed register sizes in a_load_ref_reg_unaligned()
|
10 gadi atpakaļ |
Jonas Maebe
|
e6511bcb33
* support multiple paralocs in a_load_reg_cgpara() by taking a round trip
|
10 gadi atpakaļ |
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 gadi atpakaļ |
Jonas Maebe
|
b745dcc64c
* moved g_external_wrapper() to the hlcg, and also g_intf_wrapper() because
|
11 gadi atpakaļ |
Jonas Maebe
|
a637fbe596
* moved all g_exception_*() methods to hlcgobj and cleaned them up (no more
|
11 gadi atpakaļ |
Jonas Maebe
|
5c75b6dd6b
* synchronised with trunk up till r28402
|
11 gadi atpakaļ |
Jonas Maebe
|
831cc96f48
* give an internalerror when calling cg.makeregsize() for a high level
|
11 gadi atpakaļ |
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 gadi atpakaļ |
Jonas Maebe
|
7949bebb8d
* synchronised with r28168 of trunk
|
11 gadi atpakaļ |
sergei
|
cd27d64cd5
+ Support (as target-independent as possible) optimization of division by constants:
|
11 gadi atpakaļ |
Jonas Maebe
|
bacd303208
* synchronized with trunk up to r27758
|
11 gadi atpakaļ |
nickysn
|
5dcbaa4b2d
- rm the cpu16bitalu and cpu64bitalu ifdefs from tcg.a_load_ref_cgpara as well
|
11 gadi atpakaļ |
Jonas Maebe
|
dab8754bb6
* moved joinreg64 from cg64f32 to cgobj (joinreg128 is also declared
|
11 gadi atpakaļ |
Jonas Maebe
|
e9268a0a14
* synchronised with trunk up till r26975
|
11 gadi atpakaļ |
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 gadi atpakaļ |
sergei
|
0d3f36eebf
- Remove references to global variable 'cg' from methods of tcg and some of its descendants.
|
11 gadi atpakaļ |
nickysn
|
be85998313
* fixes in optimize_op_const:
|
11 gadi atpakaļ |
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 gadi atpakaļ |
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 gadi atpakaļ |
Jonas Maebe
|
1df3039424
+ LLVM temp allocator based on new R_TEMPREGISTER register class. For every
|
11 gadi atpakaļ |
nickysn
|
bf07fc077b
* specify AT_DATA in all references to the tobjectdef.vmt_mangledname symbol.
|
11 gadi atpakaļ |