sergei
|
4168388235
+ SPARC: support 8 and 16-bit arithmetic shifts.
|
11 years ago |
sergei
|
63c1a05718
* SPARC: Removed hacks with g1_used that were used for g_intf_wrapper to be operational without initialized reg.allocator, and replaced them with a proper solution (which is basically a clone from MIPS cg).
|
11 years ago |
sergei
|
05489d6e05
* SPARC: fixed g_intf_wrapper for non-virtual methods once again, my initial assumption was not correct: a wrapper does not necessarily reference methods from the class that implements the interface, it may be methods from parent classes, which can be located arbitrarily far away in address space.
|
11 years ago |
sergei
|
bf94257310
* SPARC: simplified and fixed a_load_const_reg method, was generating redundant instructions for constants with non-zero bits 10..12.
|
11 years ago |
sergei
|
f8a60522d4
- SPARC: removed 3 code generator methods, they provide no difference in generated code from generic code generator.
|
11 years ago |
sergei
|
176d8434e4
* SPARC: completely rewrote PIC-related code, got it twice shorter in source lines and much less instructions in generated code.
|
11 years ago |
sergei
|
eaba90dda7
* SPARC: since peephole optimizer recognizes only one conditional branching instruction, generate all branches using A_Bxx opcode, and change it to A_FBxx if necessary when writing assembler. This enables optimization of floating-point branches.
|
11 years ago |
sergei
|
890d757573
+ SPARC: override g_external_wrapper method and emit PIC-safe jump without distance limit. Mantis #25455.
|
11 years ago |
sergei
|
e6a9bfdc1d
* SPARC, g_concatcopy and g_concatcopy_unaligned: removed strange (probably long outdated) comments and unnecessary operations.
|
11 years ago |
sergei
|
03fb83cc01
* SPARC: fixed PIC interface wrappers for non-virtual methods. The fix uses branching with 8 MB distance limit, but in particular case of interface wrappers this limit applies to code size of a single unit, not to entire program, and is therefore hard enough to reach.
|
11 years ago |
sergei
|
65d24e000f
* SPARC: generate PIC prologue as recommended by ABI, it does not require FPC_GETGOT helper.
|
11 years ago |
sergei
|
5ccdfcf106
* SPARC: optimized a_op_const_reg and a_op_const_reg_reg, take advantage of optimize_op_const functionality.
|
11 years ago |
sergei
|
c3fe0c7379
* On SPARC, using shifts for zero-extending to OS_16 is more efficient than ANDing with 65535 (two instructions and no temp registers vs. three instructions and a temp register).
|
11 years ago |
florian
|
4d5119bf1c
* fixes several issues which cause warnings by the dfa code when using it to detect uninitialized variables
|
11 years ago |
paul
|
51825b6f2e
compiler: change ret_in_param to accept tabstractprocdef instead of tproccalloption to allow check more options (required for record constructor implementation)
|
12 years ago |
Jonas Maebe
|
69c29a415f
* pass the procdef to getintparaloc instead of only the proccalloption, so
|
12 years ago |
pierre
|
b145028f35
Allow testing of delayed pi_needs_got by internal error generated if compiler compiled with -dCHECK_PIC
|
13 years ago |
pierre
|
d88ef103bb
Fix IInterface virtual method helper code for PIC mode (no L7 needed)
|
13 years ago |
pierre
|
5bbd9597e0
+ Add handling of PIC mode with unlimited GOT size
|
13 years ago |
Jonas Maebe
|
7a0ae38700
+ also specify the parameter def when allocating a parameter via
|
13 years ago |
pierre
|
44f8bb35b7
Override abstract method to abvoid warning at compilation time
|
13 years ago |
florian
|
3323f1b3ea
* use sra instead of srl when doing overflow checking on sparc, resolves #20396
|
14 years ago |
florian
|
26850e3425
* fix full cycle after adding new boolean types
|
14 years ago |
sergei
|
9608c4eabe
* Interface wrappers must be global when linking smart, Mantis #19462. Other targets already have this condition in place.
|
14 years ago |
florian
|
bf32e47132
* hopefully fixes broken sparc-solaris building due to r17459
|
14 years ago |
florian
|
77f2d6cc0d
* introduce usage of TCGInt in the code generator units
|
14 years ago |
svenbarth
|
96116a6c3a
Several adjustments because virtual methods in helpers are just normal methods and a VMT isn't generated for them either.
|
14 years ago |
paul
|
b317139006
compiler: fix compilation problems caused by tprocdef._class -> tprocdef.struct rename which was found by make fullcycle
|
14 years ago |
Jonas Maebe
|
283018a3bf
* changed tprocdef.funcretloc[] from a tlocation into a tcgpara so it can
|
15 years ago |
Jonas Maebe
|
9bc15a5f61
* renamed a_param_* to a_load_*_cgpara
|
15 years ago |