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
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
Jonas Maebe
614f49355b
- removed commented unused assignintreg() procedure
...
git-svn-id: trunk@648 -
2005-07-18 13:03:34 +00:00
Jonas Maebe
d27fa6d0b3
* fixed another missing swapleftright for subn
...
git-svn-id: trunk@557 -
2005-07-02 12:22:04 +00:00
peter
c1b2e1aac5
* check function/procedure type when adding a proc definition
...
git-svn-id: trunk@546 -
2005-06-30 14:56:05 +00:00
Jonas Maebe
7356f83713
* fixed calling of external procedures if the first time they are used in a
...
compilation unit is in an expression which merely takes their address
git-svn-id: trunk@439 -
2005-06-18 09:06:07 +00:00
Jonas Maebe
0f8e019c44
* fixed web bug tw4078 + added test
...
git-svn-id: trunk@414 -
2005-06-15 16:46:03 +00:00
Jonas Maebe
af3f851751
* rgBase -> rgbase to avoid unnecessary recompiles on case-preserving/
...
insensitive filesystems
git-svn-id: trunk@405 -
2005-06-14 17:36:56 +00:00
Jonas Maebe
2b4d3312f7
* fixed web bug #4058 (missing swapleftright for subtraction if overflow
...
checking is turned on)
git-svn-id: trunk@327 -
2005-06-09 20:17:40 +00:00
peter
4ace790492
* remove $Log
...
git-svn-id: trunk@231 -
2005-06-07 09:47:55 +00:00
Jonas Maebe
aea6563bba
* no longer change r12 when fpu regs have to saved, corrupted copying of
...
stack parameters coming after that
git-svn-id: trunk@130 -
2005-05-27 22:09:49 +00:00
fpc
790a4fe2d3
* log and id tags removed
...
git-svn-id: trunk@42 -
2005-05-21 09:42:41 +00:00
fpc
50778076c3
initial import
...
git-svn-id: trunk@1 -
2005-05-16 18:37:41 +00:00
Jonas Maebe
bfa2301575
* const record parameters > 8 bytes are now passed by reference for non
...
cdecl/cppdecl procedures on Mac OS/Mac OS X to fix compatibility with
GPC (slightly more efficient than Metrowerks behaviour below, but
less efficient in most cases than our previous scheme)
+ "mwpascal" procedure directive to support the const record parameter
behaviour of Metrowerks Pascal, which passes all const records by
reference
2005-03-27 14:10:52 +00:00
Jonas Maebe
a5c94ddccd
* removed some unused variables
2005-03-25 21:55:43 +00:00
Jonas Maebe
46c1b41a7b
- removed unused unit
2005-02-26 15:06:26 +00:00
Jonas Maebe
ec959955bd
* fixed generic jumps optimizer and enabled it for ppc (the label table
...
was not being initialised -> getfinaldestination always failed, which
caused wrong optimizations in some cases)
* changed the inverse_cond into a function, because tasmcond is a record
on ppc
+ added a compare_conditions() function for the same reason
2005-02-26 01:26:59 +00:00
Jonas Maebe
706a87c2df
* don't lose sign of ord types for register parameters
2005-02-19 14:04:14 +00:00
Jonas Maebe
6c38093871
* fixed spilling for several ppc instructions which only read registers
...
+ added support for registers in references that get changed (load/store
with update)
2005-02-18 23:37:51 +00:00
Jonas Maebe
0e4f1738cd
- removed a non-existing instruction (lcrxe)
...
* fixed an instruction (maffs_ -> mffs)
2005-02-18 23:05:47 +00:00
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
florian
22d9294ab3
+ overflow checking for the arm
2005-02-13 18:55:19 +00:00
Jonas Maebe
a823a15888
* records which consist of only a union of one element have to be passed
...
according to record parameter passing rules, not according to the rules
of that item's type (change relevant to AIX abi only)
2005-02-11 15:20:23 +00:00
olle
1a87bc0ff3
* fixed erroneous asm line directive
2005-02-08 22:46:00 +00:00
peter
18ebd28692
* push_addr_param must be defined per target
2005-02-03 20:04:49 +00:00
peter
f5e21ec2ff
* fixed parseparaloc
2005-01-31 17:46:25 +00:00
peter
e820bc93f2
* interface wrapper generation moved to cgobj
...
* generate interface wrappers after the module is parsed
2005-01-24 22:08:32 +00:00
Jonas Maebe
28ea4a8fd4
* fixed bug introduced in revision 1.6
2005-01-24 18:13:46 +00:00
peter
35e466d971
* remove copy_value_on_stack and a_param_copy_ref
2005-01-20 17:47:01 +00:00
peter
04c97cc129
* load jmp_buf_size from system unit
2005-01-20 16:38:45 +00:00
peter
8d251e8506
* unit mapping rewrite
...
* new derefmap added
2005-01-19 22:19:41 +00:00
Jonas Maebe
52212c3fb6
* fixed overallocation of stack space for parameters under SYSV
...
(introduced in one of my previous commits)
* unified code of get_volatile_registers_fpu for SYSV and AIX
2005-01-14 20:59:17 +00:00
Jonas Maebe
74cc20070d
* r2 can be used by the register allocator under Darwin
...
* merged the initialisations of the fpu register allocator for AIX and
SYSV
2005-01-13 22:02:40 +00:00
Jonas Maebe
8654fac06c
* fixed copy_value_on_stack() for AIX abi
...
+ added support for passing empty record parameters
2005-01-13 19:32:08 +00:00
Jonas Maebe
9c22d594b0
+ support for passing records in registers under darwin
...
* tcgpara now also has an intsize field, which contains the size in
bytes of the whole parameter
2005-01-10 21:50:05 +00:00
Jonas Maebe
e0eb172f4b
- removed deprecated constants
2005-01-10 21:48:45 +00:00
Jonas Maebe
7fc8f866c6
* fixed stupid tregister/tsuperregister bug (type checking circumvented
...
using explicit typecase), caused bug3523
2005-01-07 10:58:03 +00:00
Károly Balogh
5908985365
* more SysV call support stuff for MorphOS
2005-01-06 02:13:03 +00:00
Károly Balogh
18be2ff0fd
* sysv abi also uses F0-F13 as volatile registers
2005-01-05 19:01:53 +00:00
Károly Balogh
86c111a794
* fixed SysV syscall support (MorphOS)
2005-01-05 02:31:06 +00:00
Károly Balogh
088575dc32
+ sysv style syscalls added for MorphOS
2005-01-04 17:40:33 +00:00
olle
3f7fdcb45e
* fixed compilation for PowerPC
2004-12-28 02:25:43 +00:00
Jonas Maebe
d377cacc61
* fixed call-by-value passing of records with size 1, 2 or 4 for AIX abi
...
(using a hack, normally all records should by passed by value under the
aix abi, but that's currently impossible)
2004-12-24 15:00:11 +00:00
Jonas Maebe
067c588089
- removed unused variables
2004-12-24 11:58:33 +00:00
Jonas Maebe
4c3b9ce6c3
* fixed a_jmp_name() for darwin
2004-12-24 11:51:55 +00:00
peter
fad0e529a4
* syscall with sysv abi for morphos
2004-12-15 19:30:32 +00:00
Jonas Maebe
fcf16c4983
* fixed synchronising 64bit regvars on 32bit systems at the start and
...
end of procedures
* hack for ppc for loading of paras from their callee location to local
temps
2004-12-11 12:42:28 +00:00
Jonas Maebe
5b7ffabd0c
* only set/clear bit 6 of cr in case of varargs for the sysv abi
2004-12-06 18:06:37 +00:00
Jonas Maebe
4f53d8367d
* introduced bug (x shl 65 = x shl 1 when shifting with a constant, but
...
still 0 otherwise) to pass tshlshr
2004-12-06 17:53:43 +00:00
Jonas Maebe
49a8939b22
* modifications to work with the generic code to copy LOC_REFERENCE
...
parameters to local temps (fixes tests/test/cg/tmanypara)
2004-12-04 21:47:46 +00:00
Jonas Maebe
bd04491f50
* patch from Peter to fix inlining of case statements
2004-11-30 18:13:39 +00:00
Jonas Maebe
26ab4ead33
* fixed intermittent bug in overflow checking of subtractions
2004-11-26 12:30:47 +00:00
Jonas Maebe
fff0683902
* fixed overflow checking of unsigned multiplications
2004-11-26 12:17:04 +00:00
peter
8cf8c54609
* fixed varargs
...
* replaced dynarray with tlist
2004-11-22 22:01:19 +00:00
peter
89b1b583c9
* ttempcreatenode.create_reg merged into .create with parameter
...
whether a register is allowed
* funcret_paraloc renamed to funcretloc
2004-11-21 17:54:59 +00:00
florian
18f7aa97dd
* changed funcret location back to tlocation
2004-11-21 17:17:03 +00:00
peter
4d8460ec2f
* float routines all use internproc and compilerproc helpers
2004-11-21 15:35:23 +00:00
peter
e740a66636
* tparaitem removed, use tparavarsym instead
...
* parameter order is now calculated from paranr value in tparavarsym
2004-11-15 23:35:30 +00:00
florian
60e0494a74
* fixed morphos syscall
2004-11-14 16:26:29 +00:00
peter
0c7e53bb81
* fixed compile of powerpc,sparc,arm
2004-11-11 19:31:33 +00:00
peter
c95a859f0a
* generic tlocation
...
* move tlocation to cgutils
2004-10-31 21:45:02 +00:00
olle
8763a9166a
+ Change of the way global variables, with multiple entrypoints,
...
are referenced, fixes a lot of failed tests
2004-10-31 15:32:13 +00:00
Jonas Maebe
e737e39888
* fixed bugs due to change of the value field of tlocation from aword to
...
aint
2004-10-26 18:22:31 +00:00
Jonas Maebe
0a32b9a526
* fixed tlocation record again for big endian
...
* fixed (currently unused) saved_standard_registers array
2004-10-26 18:22:04 +00:00
Jonas Maebe
c0b4a9026c
+ empty g_save_standard_registers/g_restore_standard_registers overrides
...
(their work was/is done by g_proc_entry/g_proc_exit, and the generic
version saves the registers in the wrong place)
2004-10-26 18:21:29 +00:00
peter
d19663f3a8
* save standard registers moved to tcgobj
2004-10-25 15:36:47 +00:00
peter
705868e816
* remove saveregister calling convention
2004-10-24 20:01:08 +00:00
peter
2ee2004032
* fixed compilation with removed loadref
2004-10-24 11:53:45 +00:00
Jonas Maebe
513b687ce7
+ support for nostackframe directive
2004-10-20 07:32:42 +00:00
mazen
3b092352e1
- remove $IFDEF DELPHI and related code
...
- remove $IFDEF FPCPROCVAR and related code
2004-10-15 09:30:13 +00:00
Jonas Maebe
99c6740d7d
* include pi_do_call if we generate a call instead of internalerroring
...
(workaround)
2004-10-11 07:13:14 +00:00
olle
8461184f4b
* minor fix
2004-10-09 10:48:34 +00:00
florian
36112785f8
* indention fixed
2004-09-25 20:28:20 +00:00
peter
65c3ba277c
* ungetregister is now only used for cpuregisters, renamed to
...
ungetcpuregister
* renamed (get|unget)explicitregister(s) to ..cpuregister
* removed location-release/reference_release
2004-09-25 14:23:54 +00:00
peter
33a834821f
* paraloc branch merged
2004-09-21 17:25:12 +00:00
olle
6daacd9e0e
* floating point constants is now written as byte pattern, to have exact control of each bit.
2004-09-10 11:23:52 +00:00
Jonas Maebe
c2210f01b9
* only specially handle 64bit operations on ordinals
2004-08-30 09:28:40 +00:00
olle
07e8c04224
* made target macos really work again after the dwarf merge
2004-07-26 22:26:39 +00:00
Jonas Maebe
50dfc8f5a7
* do a resulttypepass of left in the overloaded pass_1 before checking
...
its resulttype
2004-07-21 15:09:10 +00:00
florian
aba734edc9
* fixed funcret_paraloc writing in units
2004-07-19 19:15:50 +00:00
Jonas Maebe
c8a7c5b96f
* fixed loading external procedure addresses
2004-07-19 12:45:43 +00:00
Jonas Maebe
8e0fd21568
* fixed op_const_reg_reg for (OP_ADD,0,reg1,reg2)
2004-07-17 14:48:20 +00:00
Jonas Maebe
6dc5cfdb8d
- removed useless maybe_pushfpu code for ppc
2004-07-17 14:47:16 +00:00
florian
b1dc8c5572
* function result location for syscalls on MOS hopefully correctly set now
2004-07-17 13:51:57 +00:00
Jonas Maebe
fab51678da
* fixed passing of fpu paras on the stack
...
* fixed number of fpu parameters passed in registers
* skip corresponding integer registers when using an fpu register for a
parameter under the AIX abi
2004-07-09 21:45:24 +00:00
Jonas Maebe
563f7ba253
* fix for broken TP-style constructor handling in the compiler
2004-07-01 18:00:37 +00:00
Jonas Maebe
d30ced66a1
* fixed several errors due to aword -> aint change
2004-07-01 18:00:00 +00:00
florian
8a9758c5e2
* logs truncated
2004-06-20 08:55:28 +00:00
peter
54cb433625
* powerpc compiles again
2004-06-17 16:55:46 +00:00
florian
588e2c38bf
* dwarf branch merged
2004-06-16 20:07:06 +00:00
Jonas Maebe
42f59a3ca9
* parameters passed on the stack now also work as register variables
2004-06-02 17:18:10 +00:00
Jonas Maebe
174cea8023
* changed calling of external procedures to be the same as under gcc
...
(don't worry about all the generated stubs, they're optimized away
by the linker)
-> side effect: no need anymore to use special declarations for
external C functions under Darwin compared to other platforms
(it's still necessary for variables though)
2004-05-31 18:08:41 +00:00
Jonas Maebe
69382ab923
* fixed second_sqr_real (mainly for regvars)
2004-05-31 11:57:48 +00:00
Jonas Maebe
7f889b8529
* fixed web bug #3103 : the fpu conversion code couldn't deal with offsets
...
outside the smallint range
2004-05-19 22:26:46 +00:00
florian
e8098f6b71
+ added lib support for Amiga/MorphOS syscalls
2004-05-01 22:05:01 +00:00
Károly Balogh
5345dccb1b
* removed some unneeded parts of do_syscall
2004-04-29 22:18:37 +00:00
Károly Balogh
94c6cdb21a
* little cleanup of the previous commit
2004-04-29 14:36:42 +00:00
Károly Balogh
3c785c3405
+ first implementation of PowerPC/MorphOS do_syscall
2004-04-29 14:01:23 +00:00
florian
c68ea95074
+ syscall directive support for MorphOS added
2004-04-28 15:19:03 +00:00
Károly Balogh
6dbbdea44c
* added correct offsets for PowerPC/MorphOS location support
2004-04-18 23:19:48 +00:00
florian
a7478ee97f
+ location support for arguments, currently PowerPC/MorphOS only
2004-04-18 15:22:24 +00:00
olle
6be3ad0f87
* macos: fixed large offsets in references
2004-04-04 17:50:36 +00:00
peter
6b96b70118
* fixed operator overload allowing for pointer-string
...
* replaced some type_e_mismatch with more informational messages
2004-03-18 16:19:03 +00:00
Jonas Maebe
034725dfff
* fixed missing restoring of true/falselabels in case of explicit
...
integer to same-sized boolean conversions
2004-03-17 20:06:56 +00:00
olle
ea51b18d9b
* bugfix for multiline string constants
2004-03-17 12:03:00 +00:00
florian
8cdd1af070
* fixed ppc compilation
2004-03-06 21:37:45 +00:00
Jonas Maebe
e823822f49
* fixed importing of variables from shared libraries, but disabled
...
PIC support for now. You have to save/restore r31 when you us it! :)
Also, it's not necessary to support the imported variables
2004-03-05 22:17:11 +00:00
florian
5b32162bde
* got entry code fixed
2004-03-02 17:48:32 +00:00
florian
61f15e4ec4
* make cycle fixed
...
+ pic support for darwin
+ support of importing vars from shared libs on darwin implemented
2004-03-02 17:32:12 +00:00
olle
c5cdc57f1f
+ adding missing log msg: misc fixes
2004-03-02 00:57:01 +00:00
olle
4fecc1a56f
* big transformation of Tai_[const_]Symbol.Create[data]name*
2004-03-02 00:36:32 +00:00
florian
55439e77a2
* fixed make cycle
2004-02-28 16:00:45 +00:00
florian
2e78263814
* fixed syntax error in previous commit
2004-02-28 14:14:44 +00:00
florian
cb904e6cfa
* jmps in inline assembler fixed
2004-02-28 13:24:36 +00:00
olle
d6382f17f2
+ added Tai_symbol_end
2004-02-27 13:42:52 +00:00
florian
fabb9c33ac
* top_symbol killed
...
+ refaddr to treference added
+ refsymbol to treference added
* top_local stuff moved to an extra record to save memory
+ aint introduced
* tppufile.get/putint64/aint implemented
2004-02-27 10:21:04 +00:00
Károly Balogh
81f5f1a45b
+ morphos target added
2004-02-24 16:06:08 +00:00
florian
06a33abebd
* fixed arg. area calculation
2004-02-19 17:07:42 +00:00
florian
be7067445a
* fixed to compile the rtl again
2004-02-11 23:18:59 +00:00
florian
302d2d1442
* compilation fixed
2004-02-09 22:45:49 +00:00
olle
d173a77b9f
* macos: a_load_store fixed to only allocat temp reg if needed, side effect is compiler work for macos again.
2004-02-09 20:44:40 +00:00
Jonas Maebe
71202a141d
* taicpu.is_same_reg_move() now gets a regtype parameter so it only
...
removes moves of that particular register type. This is necessary so
we don't remove the live_start instruction of a register before it
has been processed
2004-02-08 23:10:21 +00:00
Jonas Maebe
9495f77117
- removed taicpu.is_reg_move because it's not used anymore
...
+ support tracking fpu register moves by rgobj for the ppc
2004-02-08 20:15:42 +00:00
Jonas Maebe
3056a64bf0
* fixed regvars support. Needs -doldregvars to activate. Only tested with
...
ppc, other processors should however only require maxregvars and
maxfpuregvars constants in cpubase.pas. Remember to take scratch-
registers into account when defining that value.
2004-02-08 18:08:59 +00:00
Jonas Maebe
a23c7932cf
* fixed previous commit
2004-02-08 14:50:13 +00:00
Jonas Maebe
169c8f5a3b
* changed an explicit mr to a_load_reg_reg so it's registered with the
...
register allocator as move
2004-02-07 15:01:05 +00:00
peter
8c5b0f7d82
* first try to get cpupara working for x86_64
2004-02-04 22:01:13 +00:00
olle
035c98cad2
* made more in phase with agppcgas.pas
2004-02-04 15:28:24 +00:00
olle
7e373764ba
* uodated header comment
2004-02-04 15:23:28 +00:00
peter
ecfbbeffc3
* renamed xNNbittype to xNNinttype
...
* renamed registers32 to registersint
* replace some s32bit,u32bit with torddef([su]inttype).def.typ
2004-02-03 22:32:53 +00:00
Jonas Maebe
5a98f00e7f
- removed mov "reg, reg" optimizations, as they are removed by the
...
register allocator and may be necessary to indicate a register may not
be reused before some point
2004-02-03 19:49:24 +00:00
Jonas Maebe
4f957bebff
+ implemented second_prefetch
2004-02-02 21:22:19 +00:00
florian
35b8e93073
* fixed more alignment issues
2004-01-30 13:42:03 +00:00
Jonas Maebe
c006ab8326
- removed double construction of fpu register allocator
2004-01-25 16:36:34 +00:00
Jonas Maebe
df428f7a5d
* fixed allocation of parameters passed by reference for powerpc in
...
callee
2004-01-17 15:55:10 +00:00
florian
541955ad91
+ x86 instruction tables for x86-64 extended
2004-01-15 14:01:18 +00:00
peter
47f08937e4
* use localalign info for alignment for locals and temps
...
* sparc fpu flags branching added
* moved powerpc copy_valye_openarray to generic
2004-01-12 22:11:38 +00:00
olle
6ab944bfcf
* gen of conditional instr updated according to agppcgas
...
* gen of PPCAsm command fixed
2004-01-12 00:08:03 +00:00
Jonas Maebe
4c7c8b9c3a
* fixed mtfsb0 instruction for assembler reader/writer
...
* fixed initialisation of fpscr register to avoid spurious SIGPFE's
(uses mtfsb0 instruction, so added extra define in options.pas to avoid
requiring to start with a cross compiler)
2004-01-10 00:16:20 +00:00
peter
b4159755d2
* fixed too long ie number
2004-01-06 21:37:41 +00:00
Jonas Maebe
bee5b615cf
+ as_darwin assembler type (labels start with L)
...
* never generate register->number mappings for Darwin
* always use real register names for Darwin
2004-01-04 21:18:10 +00:00
Jonas Maebe
9e781b8c7b
+ added log message for last commit
2004-01-04 21:17:51 +00:00
Jonas Maebe
744d6d85b2
*** empty log message ***
2004-01-04 21:12:47 +00:00
Jonas Maebe
c2efd86268
+ integer division-by-zero detection support for ppc
...
+ compilerproc FPC_DIVBYZERO
2004-01-01 17:58:16 +00:00
Jonas Maebe
be0397b1d1
* fixed currency bugs. Int64 currency handling still needs to be
...
rewritten so that it doesn't include conversions to real anymore
though
2003-12-31 22:30:39 +00:00
Jonas Maebe
8be1033511
* (64 bit int) shl/shr (value > 63) := 0
2003-12-31 18:12:23 +00:00
Jonas Maebe
92f038ebec
* fixed saving/restoring of volatile fpu registers under sysv
...
+ better provisions for abi differences regarding fpu registers that have
to be saved
2003-12-29 14:17:50 +00:00