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