Commit Graph

581 Commits

Author SHA1 Message Date
Jonas Maebe
d8ed0a8722 * copied createtemppara override from x86, to avoid creating double
copies of large value paras

git-svn-id: trunk@2692 -
2006-02-26 14:53:59 +00:00
Jonas Maebe
71407ba8cb * don't concatcopy if source = dest
git-svn-id: trunk@2691 -
2006-02-26 14:53:20 +00:00
Jonas Maebe
7f247e9305 * fix and suppress some rangecheck/overflow errors (regarding calculation
of magic constants for changing division into multiplication)

git-svn-id: trunk@2653 -
2006-02-20 11:01:38 +00:00
Jonas Maebe
285744fe00 * fixed range errors
git-svn-id: trunk@2649 -
2006-02-20 10:39:37 +00:00
Jonas Maebe
21e604c1ea + add "-arch ppc" to the assembler call to fix assembling when
running on x86

git-svn-id: trunk@2590 -
2006-02-15 11:00:09 +00:00
Jonas Maebe
f7d5dd13bf * no sec_bss markers anymore (.comm/.lcomm automatically change
the section type)
  * sec_eh_frame = sec_debug_frame

git-svn-id: trunk@2534 -
2006-02-12 15:01:07 +00:00
florian
4662a12fd5 * compilation for arm target fixed
git-svn-id: trunk@2408 -
2006-02-02 17:26:18 +00:00
Jonas Maebe
c4b6652468 * fixed tlist overflow in some corner cases when fixing up jumps
git-svn-id: trunk@2341 -
2006-01-26 09:54:50 +00:00
florian
b06643a1eb * tai_const refactored
git-svn-id: trunk@2323 -
2006-01-22 12:58:38 +00:00
Jonas Maebe
d4ec987a0f * fixed compilation
git-svn-id: trunk@2319 -
2006-01-22 09:38:53 +00:00
Károly Balogh
b718d9ff37 + added framework code for AmigaOS/PPC syscall support
git-svn-id: trunk@2239 -
2006-01-09 08:58:30 +00:00
Jonas Maebe
1273e0d7ed * generate signed comparisons for immediate equality comparisons if
possible, because those can be optimized better by the peephole
    optimizer

git-svn-id: trunk@2235 -
2006-01-08 19:54:58 +00:00
tom_at_work
9ee594aedd * changes which were forgotten to commit in r2222 for ppc32 cg
git-svn-id: trunk@2234 -
2006-01-08 18:08:26 +00:00
Jonas Maebe
5e9db609e3 * fixed bug fixref whereby a register of a reference was overwritten
git-svn-id: trunk@2212 -
2006-01-07 21:52:17 +00:00
Károly Balogh
cd38c236a0 + made the compiler to know about PowerPC AmigaOS
git-svn-id: trunk@2201 -
2006-01-07 04:46:27 +00:00
Jonas Maebe
365d2892f4 + support for bo/bi notation for branches in the assembler reader
git-svn-id: trunk@2102 -
2006-01-01 13:34:04 +00:00
Jonas Maebe
41d6d85084 * fixed spilling of fpu registers
git-svn-id: trunk@2090 -
2005-12-31 13:14:56 +00:00
Jonas Maebe
c423e23bb4 * only use r12 as frame pointer in the entry code for ppc if necessary
git-svn-id: trunk@2086 -
2005-12-31 10:54:09 +00:00
Jonas Maebe
6c30925e04 * fixed offsets used by stmw/lmw
git-svn-id: trunk@2084 -
2005-12-30 23:50:37 +00:00
Jonas Maebe
c3f27eee06 * optimized generation of and generated entry and exit code:
* no stack frame generated anymore if it's not necessary
    * only the necessary stack space is now reserved, instead of
      room for all non-volatile registers
    * less usage of helper registers

git-svn-id: trunk@2082 -
2005-12-30 17:20:07 +00:00
Jonas Maebe
66ebbbc5c2 * always generate code which can be used to build dynamically loadable
libraries with

git-svn-id: trunk@2013 -
2005-12-20 19:58:27 +00:00
Jonas Maebe
f0c028d6c8 + dwarf support for darwin/mac os x (not really enabled yet, since it's
currently only used if a target requires it)

git-svn-id: trunk@2010 -
2005-12-20 17:54:11 +00:00
Jonas Maebe
8f6babfef7 * fixed passing record parameters of size >= 3 and whose size is not
divisible by 4 on Darwin (have to be passed on the stack instead of in
    registers), fixes tcalext3

git-svn-id: trunk@2002 -
2005-12-20 10:13:10 +00:00
Jonas Maebe
16f9c89854 - reverted previous commit, committed the wrong file
git-svn-id: trunk@2001 -
2005-12-20 10:13:04 +00:00
Jonas Maebe
a16fa618de * fixed passing record parameters of size >= 3 and whose size is not
divisible by 4 on Darwin (have to be passed on the stack instead of in
    registers), fixes tcalext3

git-svn-id: trunk@2000 -
2005-12-20 10:11:50 +00:00
Jonas Maebe
cc44a19af5 * use stmw/lmw when saving/restoring a lot of registers, to reduce generated
code size and thus instruction cache pressure.

git-svn-id: trunk@1785 -
2005-11-19 17:31:35 +00:00
tom_at_work
8ca0fe382e * removed "+0" offset generation in assembler writer
git-svn-id: trunk@1714 -
2005-11-10 15:11:06 +00:00
tom_at_work
3645a69686 * added mftbu (move from timebase upper) opcode
git-svn-id: trunk@1596 -
2005-10-25 20:45:05 +00:00
Jonas Maebe
89094457c5 * pass varargs float parameters only in integer registers instead of only
in fpu registers for aix abi. Proper fix is to pass them in both, but
    at least gcc under Mac OS X only seems to use the contents in the integer
    registers currently.

git-svn-id: trunk@1576 -
2005-10-23 14:23:16 +00:00
Jonas Maebe
b458554f5b + some optimizations for comparisons with zero whereby the result has to
go to a register

git-svn-id: trunk@1379 -
2005-10-15 11:09:44 +00:00
Jonas Maebe
4558cd705e + optimize some slwi/rlwinm combos
git-svn-id: trunk@1378 -
2005-10-14 21:03:48 +00:00
Jonas Maebe
9cf0865d0e * remove a number of superfluous register moves
git-svn-id: trunk@1377 -
2005-10-14 20:34:53 +00:00
Jonas Maebe
e14d8e6611 * don't replace cmplwi's with flag-setting variants of integer operations,
as the latter perform a signed comparison with 0

git-svn-id: trunk@1365 -
2005-10-13 07:49:02 +00:00
Jonas Maebe
cd3f064a33 + enabled postpeepholeopts phase
+ optimize "integer op" followed by comparison of target register with zero
    to a variant of that integer op which sets the flags (ppc)
  + change rlwinm. instructions which do nothing but an "and" operation into
    andi./andis., since the rlwinm. is cracked on the G5 while andi./andis.
    isn't

git-svn-id: trunk@1361 -
2005-10-12 19:47:21 +00:00
Jonas Maebe
339f76182b + missing rlwnm. and not. instructions
git-svn-id: trunk@1360 -
2005-10-12 19:44:34 +00:00
Jonas Maebe
42e49ccd90 + srwi followed by slwi optimized
+ srwi followed by certain rlwinm's optimized

git-svn-id: trunk@1351 -
2005-10-10 20:43:23 +00:00
Jonas Maebe
cd93450fd6 * fixed a few bugs in yesterday's optimization
git-svn-id: trunk@1322 -
2005-10-08 11:37:18 +00:00
Jonas Maebe
ab3bc45fa4 * cpu-specific overrides of optimizer methods now get called
+ first simple rlwinm optimization for ppc

git-svn-id: trunk@1320 -
2005-10-07 21:44:00 +00:00
peter
ec4d287fd8 * aktoutputformat removed, add new paraXX vars for target
assembler and debuginfo and use these vars to override
    the defaults for the target after the parameters are read
  * remove not-maintained and tested gdb code

git-svn-id: trunk@1201 -
2005-09-25 21:17:37 +00:00
Jonas Maebe
8b8d3de3bf * finally fix for fixing up conditional jumps that are too long
git-svn-id: trunk@1161 -
2005-09-23 10:02:53 +00:00
peter
82faa95118 * lineinfo fixed for binary writer
* add tai_directive to replace old tai_direct calls
    in powerpc

git-svn-id: trunk@1139 -
2005-09-19 11:47:30 +00:00
peter
a3ab2053c9 * support multiple asmlabel types, renamed getlabel to
getjumplabel and added type para to getlabel for specific types
  * moved lineinfo generation from assemble and aggas to dbgstabs

git-svn-id: trunk@1120 -
2005-09-18 21:16:10 +00:00
Károly Balogh
6b01da4f65 * fixed(?) peter's last commit. i hope i did it the right way.
git-svn-id: trunk@1087 -
2005-09-15 16:38:30 +00:00
peter
ca66b9f7c1 * force writing of new section before generating the jumptable
git-svn-id: trunk@1085 -
2005-09-15 14:08:02 +00:00
peter
fdc4925fcd * basic framework for debuginfo class added
git-svn-id: trunk@1084 -
2005-09-15 08:34:51 +00:00
peter
c3727c29b2 * rename al_code to al_procedures, al_bss/al_data to al_globals
* more work for section smartlinking

git-svn-id: trunk@1083 -
2005-09-15 06:51:12 +00:00
Jonas Maebe
9d877e055b * no longer create new asmsymbols in a_jmp(). Very strange that the jmp
peephole optimization worked for ppc...

git-svn-id: trunk@1079 -
2005-09-14 19:22:22 +00:00
Jonas Maebe
5637845b48 * fixed compilation after fpc_resource changes
git-svn-id: trunk@976 -
2005-08-29 13:03:58 +00:00
Jonas Maebe
fdc8c1c0ae * replace divisions by constants with a combination of mul, shift, add from
the ppc compiler writers guide
  + test program for above optimization
  (both by Thomas Schatzl)

git-svn-id: trunk@912 -
2005-08-21 18:35:15 +00:00
Jonas Maebe
97a8ea2e6d + ppc jumptable support for case statements (by Thomas Schatzl)
git-svn-id: trunk@911 -
2005-08-21 18:24:35 +00:00