Commit Graph

313 Commits

Author SHA1 Message Date
Jonas Maebe
2634176ed8 * don't include the compiler's ident in stabs for main and put it
back in the data section

git-svn-id: trunk@2568 -
2006-02-14 15:35:24 +00:00
Jonas Maebe
2435a7a93c * finalization sections in shared libraries under Darwin are now run
* cleaned up the way the initialisation sections of shared libraries
    under Darwin are run

git-svn-id: trunk@2470 -
2006-02-07 14:29:58 +00:00
peter
232555904e * symtablestack cleanup and rewrite
git-svn-id: trunk@2448 -
2006-02-05 22:24:18 +00:00
florian
94038b0d83 + translate register variable locations, enables register variable debug info, with SSA it requires to be extended maintaining location list
git-svn-id: trunk@2409 -
2006-02-02 21:27:23 +00:00
Jonas Maebe
46c0fc3e7c * fixed patch of r2313 (unit init code was not called anymore for
libraries)

git-svn-id: trunk@2334 -
2006-01-25 16:52:32 +00:00
Jonas Maebe
2ef0f67ebb * don't call parameter setup code for library init code (darwin/mac os)
git-svn-id: trunk@2313 -
2006-01-20 22:00:15 +00:00
peter
66f8276445 * refactor booleans in systeminfo structure, they are now flags
* support for case aware filesystems (Windows), they do now only
    one lookup if a file exists
  * add -WI option to generate import section for DLL imports or
    let the linker handle it. Default is still import section until
    the Makefiles are fixed, then the generation can be left to the
    linker

git-svn-id: trunk@2274 -
2006-01-13 15:13:26 +00:00
Jonas Maebe
e4451558c4 * optimized register allocation for tempnodes
git-svn-id: trunk@2221 -
2006-01-08 12:53:43 +00:00
Jonas Maebe
c54826b403 * removed extra deallocation and allocation of function result
registers, allows for most optimal code possible to be generated
    for trivial functions (but in some cases worsens generated code
    because the register allocator is not 100% optimal)

git-svn-id: trunk@2208 -
2006-01-07 16:19:19 +00:00
Jonas Maebe
ac24965242 * procedures which use goto/label revert to the older and less
efficient regvar allocation scheme
  * also allocate regvars before the loops, not just afterwards

git-svn-id: trunk@2192 -
2006-01-05 23:45:00 +00:00
Jonas Maebe
61ef30381c * Only synchronise regvars after a loop (and only those regvars
which are used in the loop). The compiler makes now much
    more efficient use of registers for register variables (and
    different regvars can now also share the same register if
    their live range does not overlap)

git-svn-id: trunk@2186 -
2006-01-05 17:48:11 +00:00
Jonas Maebe
fe71df8928 * also synchronise FPU and MM CREGISTERS at the end of procedures
git-svn-id: trunk@2178 -
2006-01-05 10:24:14 +00:00
florian
abc1bcca24 * fixed previous commit ...
git-svn-id: trunk@2175 -
2006-01-05 09:40:04 +00:00
tom_at_work
3462426b1d * stack frame optimizations
git-svn-id: trunk@2172 -
2006-01-04 23:27:40 +00:00
florian
61e3b70cfa * cleaned up segmented thread variables
git-svn-id: trunk@2135 -
2006-01-03 12:49:29 +00:00
florian
fb4557d71e * first implementation of pic for i386
git-svn-id: trunk@2107 -
2006-01-01 20:14:48 +00:00
Jonas Maebe
9603f4bf82 * fixed double writing of "<var> located in register" in assembler
source after previous patch

git-svn-id: trunk@2104 -
2006-01-01 15:36:42 +00:00
Jonas Maebe
018fa207d7 * only allocate the calleeside register locations of parameters when
needed, avoids some unnecessary register conflicts (not yet perfect
    for 64bit locations on 32bit cpus)

git-svn-id: trunk@2089 -
2005-12-31 12:28: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
de8dbbd2c4 * final fixes for Mac OS X shared library creation: procedures declared
as forward are no longer treated as external symbols
  * changed alloc_proc_symbol() to directly call newasmsymbol as opposed
    to creating a dummy tai_symbol()

git-svn-id: trunk@2058 -
2005-12-26 18:18:05 +00:00
Jonas Maebe
dbf94f4713 * properly fixed allocating procedure symbols, now also works for nested
procedures

git-svn-id: trunk@2029 -
2005-12-22 20:43:29 +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
tom_at_work
b53ee04f98 * base compiler patches to improve C parameter passing compatibility on powerpc64/linux
git-svn-id: trunk@1983 -
2005-12-18 22:07:24 +00:00
florian
3f2f8609e3 + check vmt when loading one, fixes tw2318b
git-svn-id: trunk@1660 -
2005-11-05 16:29:13 +00:00
tom_at_work
c5f89d7efd * release old stack pointer register on ppc64 after method prolog
* threading fixes for ppc64
* fixed a_param_ref to respect the size parameter on ppc64
* better stack size calculation for ppc64

git-svn-id: trunk@1599 -
2005-10-26 19:50:17 +00:00
Jonas Maebe
00b612502e * fixed web bug #4228 (support loading int64 paras passed on the stack into
local regvars)

git-svn-id: trunk@1380 -
2005-10-15 16:03:00 +00:00
peter
51b8a4a132 * move stabs generation to a single procedure call from pmodules
git-svn-id: trunk@1358 -
2005-10-12 10:35:46 +00:00
peter
89297d2c39 * move all stabs ($ifdef gdb) code to dbgstabs
git-svn-id: trunk@1255 -
2005-10-02 11:17:05 +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
peter
a720145fd1 * remove obsolete pass2inline code
git-svn-id: trunk@1198 -
2005-09-25 20:02:17 +00:00
peter
2f0fdd1847 * cleaner fix for tb0496 (r1185)
git-svn-id: trunk@1196 -
2005-09-25 19:23:37 +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
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
olle
32fac59ac5 made target macpas compile again
git-svn-id: trunk@1077 -
2005-09-12 19:39:58 +00:00
peter
35ac5f133e * win32 profiling updates
git-svn-id: trunk@1059 -
2005-09-07 08:32:33 +00:00
Jonas Maebe
3aa4e8008e * fixed tests/webtbs/uw3969 compilation with -Or for ppc (removed
superfluous call to location_get_data_ref)

git-svn-id: trunk@926 -
2005-08-23 06:39:31 +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
daniel
e98865ab40 * Fixes and further development of fast threadvars
git-svn-id: trunk@743 -
2005-07-25 14:07:02 +00:00
daniel
22e89e1a42 * Proof of concept: Support threadvars using segment registers.
git-svn-id: trunk@740 -
2005-07-24 21:06:23 +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
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
37fcf95f90 (belongs together with r503)
* the 'main' procedure for darwin is now placed in the main program instead
  of in the system unit
+ ability to rename this 'main' symbol (-XM<x>, e.g. -XMSDL_main for SDL), for
  all OS'es
+ mention the -Xm parameter in the help

git-svn-id: trunk@541 -
2005-06-30 09:01:44 +00:00
florian
cf2c0d52e3 * initialisation of global mm register variables
git-svn-id: trunk@206 -
2005-06-05 10:40:20 +00:00
florian
355aaa69c8 + before calling a helper procedure, all register classes are now saved, this patch is subject to being merged back
git-svn-id: trunk@201 -
2005-06-05 08:12:33 +00:00
florian
ebcb69478f * fixed a lot of stuff for fpu/mm register variables
git-svn-id: trunk@199 -
2005-06-04 21:23:15 +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
12283206d1 named sections for intf wrappers 2005-03-28 13:10:22 +00:00
Jonas Maebe
a5c94ddccd * removed some unused variables 2005-03-25 21:55:43 +00:00
peter
96d7cbeddc put intf wrappers in code section 2005-03-09 22:37:24 +00:00