Commit History

Author SHA1 Message Date
  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