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
Jonas Maebe
f1d3ed5225
* fixed tw3402
...
git-svn-id: trunk@907 -
2005-08-21 16:53:22 +00:00
Jonas Maebe
b779d6d28f
* fixed fixref() (by Thomas Schatzl)
...
git-svn-id: trunk@904 -
2005-08-18 11:09:57 +00:00
peter
05a628447f
* put typedconsts in own asmlist to prevent mixing
...
array and string data
* added al_rodata
* renamed tasmlist enum names to include al_ prefix
git-svn-id: trunk@899 -
2005-08-17 08:42:52 +00:00
florian
804207239d
*c <int64>:=-<longint> fixed (bug 4253)
...
git-svn-id: trunk@796 -
2005-08-05 19:00:30 +00:00
daniel
e98865ab40
* Fixes and further development of fast threadvars
...
git-svn-id: trunk@743 -
2005-07-25 14:07:02 +00:00
daniel
4996b31df1
* Fixes compile error
...
git-svn-id: trunk@742 -
2005-07-25 13:07:16 +00:00
Jonas Maebe
f948a34c78
- disabled wrong GOT setup code which destroys r31 without saving it (should
...
have been done a long time ago already)
git-svn-id: trunk@733 -
2005-07-24 08:26:12 +00:00
daniel
d05f58b604
* Group asmlists into array to be able to add
...
some of them more comfortably.
* x86_64 compilation was broken, fixed.
* Sparc compilation was broken, fixed.
git-svn-id: trunk@731 -
2005-07-23 13:44:32 +00:00
daniel
d57c048696
* Remove ifdef 1_0
...
* Add expirimental 32-bit x86_64 target to systems
git-svn-id: trunk@729 -
2005-07-23 08:37:26 +00:00
Jonas Maebe
6171499d15
* fixed creating shared libraries under Darwin/Mac OS X
...
git-svn-id: trunk@727 -
2005-07-22 10:09:52 +00:00
Jonas Maebe
bf51ab03af
+ support for Mach-O in lineinfo.pp (by Jan Ruzicka)
...
* always store the return address in the stack frame on ppc if debuginfo
or lineinfo is turned on (otherwise the parent of a leaf function is
missing in backtraces)
git-svn-id: trunk@724 -
2005-07-21 13:09:45 +00:00
Jonas Maebe
8bc4e0a32f
* inline and compilerproc are now procoptions instead of proccall types
...
(so both can be combined with each other, as well as with other calling
conventions)
* defined COMPPROCINLINEFIXED so SYSTEMINLINE is again activated
git-svn-id: trunk@658 -
2005-07-18 15:27:14 +00:00