Commit Graph

543 Commits

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