Commit Graph

55 Commits

Author SHA1 Message Date
Jonas Maebe
165aaea8a4 * made a separate abi entry for powerpc_darwin, as it's not exactly the same
as the AIX abi (especially on ppc64)
   o replaced (for now) all checks for the AIX abi with a check for either the
     AIX or Darwin abi
   o changed the ABI of Darwin/ppc, Darwin/ppc64 and Mac OS/ppc to
     abi_powerpc_darwin

git-svn-id: trunk@30202 -
2015-03-14 18:35:44 +00:00
sergei
96dd464bf2 * Moved fixup_jmps to target-specific classes for powerpc,powerpc64 and MIPS, cleaned out remaining $ifdef's. A slight functionality change is that fixup_jmps is now called before adding the procedure end symbol, not after, but that should not matter.
git-svn-id: trunk@27450 -
2014-04-02 14:17:23 +00:00
Jonas Maebe
1f6ec379de * moved field definitions before method/property definitions (see mantis
#13971)

git-svn-id: trunk@13330 -
2009-06-27 11:27:31 +00:00
Jonas Maebe
335bc9fd46 + PIC support for darwin/ppc32 (-Cg works now, no regressions in test
suite compiled with -Cg compared to without -Cg)
  + support for using a virtual register as PIC/got base register
  * moved got loading code from ncgutil to cgobj/cgcpu (can't test whether
    it didn't break anything under linux/i386, because "make cycle OPT=-Cg"
    was already broken due to the *prt*.as -> si_*.pp changes)

git-svn-id: trunk@8651 -
2007-09-26 16:41:32 +00:00
Jonas Maebe
0926c4c64d * properly set needstackframe for assembler routines
git-svn-id: trunk@6516 -
2007-02-16 22:13:11 +00:00
Jonas Maebe
c4913ac85d * don't save stack pointer if we don't need to allocate a
stack frame but nevertheless have to store registers to
    the stack (not only optimization, but also needed because
    in that case no room for the stack pointer is reserved
    and thus it'll overwrite one of the saved registers!)

git-svn-id: trunk@6498 -
2007-02-15 20:25:36 +00:00
peter
0557ddc342 * removed typed const, it is now handled by staticvarsym
* globalvarsym renamed to staticvarsym
  * fixed invalid regvar use in init when the finalize also uses the var

git-svn-id: trunk@5290 -
2006-11-08 21:04:22 +00:00
peter
3cae449fda * moved rtti to ncgrtti
git-svn-id: trunk@5219 -
2006-11-04 10:43:27 +00:00
peter
658c46b903 * remove tdictionary and tindexarray
* symtables based on TFPHashObjectList and TFPObjectList
  * rename torddef.typ to torddef.ordtype
  * rename tfloatdef.typ to tfloatdef.floattype
  * rename tdef.deftype to tdef.typ
  * remove obsolete browser code, browcol is kept so the ide
    can still be compiled

git-svn-id: trunk@5192 -
2006-11-03 00:30:30 +00:00
florian
85d63d9fa9 * settings refactored
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
peter
b7fe6797bf Merged revisions 2921-2922,2925 via svnmerge from
http://svn.freepascal.org/svn/fpc/branches/linker/compiler

........
r2921 | peter | 2006-03-15 08:35:00 +0100 (Wed, 15 Mar 2006) | 2 lines

  * pass ObjectWriter to ObjectOuput

........
r2922 | peter | 2006-03-15 12:40:30 +0100 (Wed, 15 Mar 2006) | 2 lines

  * refactor asmdata

........
r2925 | peter | 2006-03-15 16:09:39 +0100 (Wed, 15 Mar 2006) | 3 lines

  * add cfi to asmdata
  * move asmlist, asmcfi, asmdata to own unit

........

git-svn-id: trunk@2932 -
2006-03-16 08:52:22 +00:00
Jonas Maebe
988f689445 * fixed compilation
git-svn-id: trunk@2851 -
2006-03-11 09:30:09 +00:00
Jonas Maebe
9de2847865 + support for passing parameters via pre-allocated stack space on i386
(override/adjust cgutils.use_fixed_stack to change conditions where
     this is done, currently only activated for darwin-i386)
  * make sure the stack is always aligned to 16 bytes on darwin-i386

git-svn-id: trunk@2840 -
2006-03-10 19:59:44 +00:00
Jonas Maebe
285744fe00 * fixed range errors
git-svn-id: trunk@2649 -
2006-02-20 10:39:37 +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
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
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
peter
e417e34496 * truncate log 2005-02-14 17:13:06 +00:00
mazen
3b092352e1 - remove $IFDEF DELPHI and related code
- remove $IFDEF FPCPROCVAR and related code
2004-10-15 09:30:13 +00:00
florian
8a9758c5e2 * logs truncated 2004-06-20 08:55:28 +00:00
florian
06a33abebd * fixed arg. area calculation 2004-02-19 17:07:42 +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
Jonas Maebe
62394e45d7 * moved count_locals from pstatmnt to symutils
* use count_locals in powerpc/cpupi to check whether we should set the
    first temp offset (and as such generate a stackframe)
2003-12-07 16:40:45 +00:00
Jonas Maebe
8ad6133ea3 * more ppc fixes, hello world works again under linuxppc 2003-11-29 22:54:32 +00:00
Jonas Maebe
d5373d5971 * fixed several ppc assembler reader related problems
* local vars in assembler procedures now start at offset 4
  * fixed second_int_to_bool (apparently an integer can be in  LOC_JUMP??)
2003-11-29 16:27:19 +00:00
peter
70fe77ca7c * procinfo unit contains tprocinfo
* cginfo renamed to cgbase
  * moved cgmessage to verbose
  * fixed ppc and sparc compiles
2003-10-01 20:34:48 +00:00
peter
99bb20747e * parent framepointer changed to hidden parameter
* tloadparentfpnode added
2003-09-28 17:55:03 +00:00
olle
c6f4df63e6 + cleaning up in proc entry and exit, now calc_stack_frame always is used. 2003-08-18 11:50:55 +00:00
Jonas Maebe
ddcab79323 * set correct localsymtable fixup already in handle_body_start instead
of in after_pass1, as it's necessary to get the correct offsets for
    the calleeside paralocs (and those are now setup in the generic
    handle_body_start)
2003-08-16 14:26:44 +00:00
olle
c2fe8dbd99 * merged macos entry/exit code generation into the general one. 2003-08-08 15:49:24 +00:00
Jonas Maebe
1846337739 * fixed ppc compiler 2003-07-06 20:25:03 +00:00
peter
0dceec9a64 * current_procdef removed, use current_procinfo.procdef instead 2003-06-13 21:19:30 +00:00
Jonas Maebe
6f3e16298a * function results can now also be regvars
- removed tprocinfo.return_offset, never use it again since it's invalid
    if the result is a regvar
2003-06-02 21:42:05 +00:00
Jonas Maebe
d321a5aa3d * fixed framepointer storage: it's now always stored at r1+12, which is
a place in the link area reserved for compiler use.
2003-05-24 11:47:27 +00:00
Jonas Maebe
74301b9544 * fixed support for nested procedures and more parameters than those
which fit in registers (untested/probably not working: calling a
    nested procedure from a deeper nested procedure)
2003-05-23 18:51:26 +00:00
peter
5f6de7eb1f * inherite from tcgprocinfo 2003-05-22 21:34:11 +00:00
Jonas Maebe
624819ccb8 * fixed para/localst calculations (note to self: don't commit at
extremely late/early hours :)
2003-05-17 14:05:30 +00:00
Jonas Maebe
9055529171 * workaround for nested procedures until Peter fixes it properly :) 2003-05-16 23:15:51 +00:00
Jonas Maebe
d816c6a8c6 * powerpc nested procedure fixes, should work completely now if all
local variables of the parent procedure are declared before the
    nested procedures are declared
2003-05-16 20:00:39 +00:00
florian
9c507c2da0 * fixed ppc compiler which was broken by Peter's changes 2003-05-15 19:39:09 +00:00
florian
77d8f335aa * vmtpointer_offset must be adjusted in after_pass1 as well 2003-05-10 23:57:23 +00:00
Jonas Maebe
f64d66fa48 * call inherited after_header as well 2003-05-09 19:00:30 +00:00
peter
60978ba89c * aktprocdef renamed to current_procdef
* procinfo renamed to current_procinfo
  * procinfo will now be stored in current_module so it can be
    cleaned up properly
  * gen_main_procsym changed to create_main_proc and release_main_proc
    to also generate a tprocinfo structure
  * fixed unit implicit initfinal
2003-04-27 11:21:32 +00:00
peter
a5e7f02527 * updated for removed lexlevel 2003-04-27 07:48:05 +00:00
florian
15c0b633ab * fixed the powerpc to work with the new function result handling 2003-04-26 11:30:59 +00:00
florian
7ec9711f9a * fixed several issues with nested procedures 2003-04-24 11:24:00 +00:00
Jonas Maebe
f51a189be0 * don't generate entry/exit code for assembler procedures 2003-04-06 16:39:11 +00:00
Jonas Maebe
ec71805aa8 * several ppc/generic result offset related fixes. The "normal" result
offset seems now to be calculated correctly and a lot of duplicate
    calculations have been removed. Nested functions accessing the parent's
    function result don't work at all though :(
2003-04-05 21:09:31 +00:00
florian
938f46f246 * fixed some crashes and a rte 201 2002-12-15 19:22:01 +00:00