Commit Graph

373 Commits

Author SHA1 Message Date
Jonas Maebe
807c63916e * do not write the ".file" directive in assembler files for Darwin
(gcc doesn't do it either, and it causes the assembler to report
     errors as if they occur in the Pascal source file)

git-svn-id: trunk@12205 -
2008-11-23 09:49:34 +00:00
Jonas Maebe
a23630260b + "weakexternal" support for imported procedures and variables.
the syntax is exactly the same as for "external", except for
    the keyword. It is currently only active for Darwin targets.
    It should also work at least for Linux targets, but only with
    the GNU assembler (which is why it is not activated there)
  + test for this functionality

git-svn-id: trunk@12009 -
2008-11-01 18:38:32 +00:00
Jonas Maebe
5347e536c2 + support for generating non-pic darwin/arm call stubs
+ write the header for non-pic darwin/arm call stubs properly in aggas
  * r9 is not available for general use on darwin/arm according to the llvm
    code generator

git-svn-id: trunk@11862 -
2008-10-04 14:07:52 +00:00
Jonas Maebe
afa14de20d + some generic changes preparing for darwin/arm support
git-svn-id: trunk@11849 -
2008-10-02 15:10:13 +00:00
yury
491f0fa1d8 * Replaced all user defined warnings by TODO comments to reduce compiler noise.
git-svn-id: trunk@11443 -
2008-07-23 11:00:03 +00:00
giulio
95ce7840bc Added comment for 11257
git-svn-id: trunk@11259 -
2008-06-21 14:32:37 +00:00
giulio
272673bfe1 .rodata* sections must end up in .data section on go32v2, since the go32v2 stub
only handles .text, .data and .bss sections.
Solves bug #11509.

git-svn-id: trunk@11257 -
2008-06-21 14:06:12 +00:00
peter
52722b2cab * allocate .bss entries manual so we can take care of alignment
* disable COMMON symbol code, it might be needed again for ELF package
    support (.comm for ELF supports alignment)

git-svn-id: trunk@10549 -
2008-03-24 11:55:03 +00:00
Jonas Maebe
f36e5411af * split cpu64bit compiler define into
a) cpu64bitaddr, which means that we are generating a compiler which
       will generate code for targets with a 64 bit address space/abi
    b) cpu64bitalu, which means that we are generating a compiler which
       will generate code for a cpu with support for 64 bit integer
       operations (possibly running in a 32 bit address space, depending
       on the cpu64bitaddr define)
   All cpus which had cpu64bit set now have both the above defines set,
   and none of the 32 bit cpus have cpu64bitalu set (and none will
   compile with it currently)
  + pint and puint types, similar to aint/aword (not pword because that
    that conflicts with pword=^word)
  * several changes from aint/aword to pint/pword
  * some changes of tcgsize2size[OS_INT] to sizeof(pint)

git-svn-id: trunk@10320 -
2008-02-13 20:44:00 +00:00
Jonas Maebe
db6e60789b * only use ".set" directive when creating dwarf relsyms on darwin and
not for other relsyms, as older versions of the darwin assembler
    don't understand the ".set" directive (mantis #10541)

git-svn-id: trunk@9621 -
2008-01-03 12:47:31 +00:00
peter
59365a6db9 - garbage was being output sometimes instead of source lines when compiling with -al. This is because lastfileinfo and lastinfile were never initialized for MASM writer. This is true for TPPCMPWAssembler, too.
- long lines were not wrapped.
- constants of type ait_comp_64bit output incorrectly.
- at end of file, current segment was not closed.
patch from Sergei Gorelkin

git-svn-id: trunk@9331 -
2007-11-25 16:46:19 +00:00
Károly Balogh
b91c0756c4 + made m68k to compile system unit again
git-svn-id: trunk@9017 -
2007-10-31 22:33:00 +00:00
peter
9f0ca44c94 * new tf_smartlink_library flag
* use create_smartlink[_sections|_library] to check what to 
    do for smartlinking

git-svn-id: trunk@8715 -
2007-10-01 16:55:08 +00:00
Jonas Maebe
5a0a6d0d9e * fixed and enabled smartlinking on Darwin by adding more .reference
statements (some to work around linker bugs, most because they were
    really missing)

git-svn-id: trunk@8673 -
2007-09-28 22:48:41 +00:00
Jonas Maebe
3266f4e483 + Compiler support for pic on darwin/i386. The i386 rtl still needs
to be made pic-safe (mainly accesses to the global default8087cw)
  * At the same time also made the non-pic code abi-compliant (access
    external data via indirect symbol pointers etc)

    Darwin/i386 also puts the got into a virtual register (like
    Darwin/ppc), a.o. because the register allocator fails to colour
    a routine in aasmcpu.pas if we take away ebx from it.

git-svn-id: trunk@8657 -
2007-09-26 21:42:27 +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
70c2414daa * split off sec_rodata_norel from sec_rodata, and only put constant data
without relocations in sec_rodata_norel. It should be possible to make
    this new section read-only on all platforms, although currently it
    is only done for darwin, and for non-pic code written using the
    -Aas assembler writer.

    Most platforms also have a special section for "constant but with
    relocations" data, but such a section is currently only used for
    Darwin (others still use plain .data sections for that, like they
    did before)

git-svn-id: trunk@8650 -
2007-09-26 15:49:01 +00:00
Jonas Maebe
399201ad7d * removed rodata support for ppc64 again because it doesn't work on
linux/ppc64. Added explanation why it doesn't work and what's needed

git-svn-id: trunk@8304 -
2007-08-24 17:19:52 +00:00
Jonas Maebe
fc53d14e58 * also enable .rodata for ppc64
git-svn-id: trunk@8278 -
2007-08-13 15:02:39 +00:00
florian
4151029ee5 + .fini section support
git-svn-id: trunk@8174 -
2007-07-28 08:40:10 +00:00
Jonas Maebe
62c4f85eb5 * renamed opd section (linux/ppc64) to .opd (same as used by gcc)
git-svn-id: trunk@8171 -
2007-07-27 17:32:39 +00:00
Jonas Maebe
28bab3fb4f - removed some unused variables
* fixed some (harmless) ptrint warnings
  - removed some commented code in agppcmpw
  * added one missing field in a typed constant in cp1251

git-svn-id: trunk@8081 -
2007-07-17 13:57:15 +00:00
yury
b86574cf36 * Fixed float constants in softfloat mode when compiler was compiled in hardfloat mode on arm-linux host.
git-svn-id: trunk@7977 -
2007-07-07 19:19:49 +00:00
Jonas Maebe
0d1ff3a0f1 - removed tai_file/tai_loc, no longer needed
git-svn-id: trunk@7945 -
2007-07-04 08:14:48 +00:00
daniel
9adb202a92 * Rework the constexprint to allow operations from low(int64) to high(qword).
+ Some initial work on a formaldef which also carries the typinfo of a parameter.

git-svn-id: trunk@7639 -
2007-06-13 07:41:18 +00:00
peter
29ffdefacb * secrel32 relocation support required by dwarf2 under windows
git-svn-id: trunk@7172 -
2007-04-25 09:06:36 +00:00
Tomas Hajny
30b78920cd * OS/2 compilation fixes (not completely finished yet)
git-svn-id: trunk@6937 -
2007-03-20 00:49:20 +00:00
Jonas Maebe
c13ff3729b * Merged 2.3 branch changes:
+ darwin/ppc64 support
    + val/str/read(ln)/write(ln) support for enums
    + simple cse at the node tree level
    + if-node simplify support
    + simple ssa support for memory locations
    + support for optional overflow/rangecheck boolean parameters for
      operators
    * a lot of unification of the ppc32/ppc64 code generators


........
r6380 | jonas | 2007-02-08 21:25:36 +0100 (Thu, 08 Feb 2007) | 4 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ncgld.pas
   M /branches/fpc_2_3/compiler/tgobj.pas
   A /branches/fpc_2_3/tests/webtbs/tw8283.pp

  + support for replacing the memory location of a temp (including
    local variables) with that of another temp to avoid unnecessary
    copies (mantis #8283)

........
r6381 | jonas | 2007-02-08 22:53:36 +0100 (Thu, 08 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/nflw.pas
   A /branches/fpc_2_3/tests/webtbs/tw8282.pp

  + simplify support for ifn (based on patch by Florian)

........
r6386 | peter | 2007-02-09 13:48:53 +0100 (Fri, 09 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/htypechk.pas
   M /branches/fpc_2_3/compiler/ncal.pas
   M /branches/fpc_2_3/compiler/symconst.pas

  * overflow,rangecheck optional parameters for operators, patch from 8281

........
r6391 | jonas | 2007-02-09 23:52:13 +0100 (Fri, 09 Feb 2007) | 4 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc/agppcgas.pas
   M /branches/fpc_2_3/compiler/powerpc64/cpunode.pas
   D /branches/fpc_2_3/compiler/powerpc64/nppcinl.pas
   M /branches/fpc_2_3/compiler/ppcgen/ngppcinl.pas

  * merged fsqrt(s) support to common powerpc unit, activate for ppc32
    if -Op970 is used (still default for ppc64, since default cpu there
    is already ppc970)

........
r6394 | jonas | 2007-02-10 18:58:47 +0100 (Sat, 10 Feb 2007) | 4 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc/cgcpu.pas
   M /branches/fpc_2_3/compiler/powerpc64/cgcpu.pas
   M /branches/fpc_2_3/compiler/ppcgen/cgppc.pas

  * adapted a_jmp_name for darwin/ppc64
  * merged g_intf_wrapper for ppc32 and ppc64, and added darwin/ppc64
    support to it

........
r6396 | jonas | 2007-02-10 20:16:06 +0100 (Sat, 10 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/cgobj.pas

  + darwin/ppc64 support for g_indirect_sym_load

........
r6397 | jonas | 2007-02-10 20:22:49 +0100 (Sat, 10 Feb 2007) | 4 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc/cgcpu.pas
   M /branches/fpc_2_3/compiler/powerpc64/cgcpu.pas
   M /branches/fpc_2_3/compiler/ppcgen/cgppc.pas

  + darwin/ppc64 support to ppc64's fixref
  * moved ppc32 a_load_store to cgppc and use it for darwin/ppc64 as
    well (its relocatable symbols are only 32 bits large)

........
r6399 | jonas | 2007-02-10 22:02:37 +0100 (Sat, 10 Feb 2007) | 4 lines
Changed paths:
   M /branches/fpc_2_3/compiler/systems.pas

  + system_x86_64_darwin identifier
  + set default source system for system_x86_64_darwin and
    system_powerpc64_darwin

........
r6404 | jonas | 2007-02-10 23:01:23 +0100 (Sat, 10 Feb 2007) | 5 lines
Changed paths:
   M /branches/fpc_2_3/compiler/aasmdata.pas
   M /branches/fpc_2_3/compiler/aggas.pas
   M /branches/fpc_2_3/compiler/cgobj.pas
   M /branches/fpc_2_3/compiler/cgutils.pas
   M /branches/fpc_2_3/compiler/cresstr.pas
   M /branches/fpc_2_3/compiler/dbgdwarf.pas
   M /branches/fpc_2_3/compiler/dbgstabs.pas
   M /branches/fpc_2_3/compiler/ncgutil.pas
   M /branches/fpc_2_3/compiler/ogelf.pas
   M /branches/fpc_2_3/compiler/pdecvar.pas
   M /branches/fpc_2_3/compiler/pmodules.pas
   M /branches/fpc_2_3/compiler/symdef.pas
   M /branches/fpc_2_3/compiler/systems.pas

  + system_x86_64_darwin identifier
  + systems_darwin set which collects all darwin variants
  + added support for darwin/ppc64 and darwin/x86_64 where needed in
    the generic code

........
r6406 | jonas | 2007-02-10 23:24:32 +0100 (Sat, 10 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/cgobj.pas

  * ifdef cpu64 -> ifdef cpu64bit

........
r6409 | jonas | 2007-02-11 00:34:04 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/pdecvar.pas

  * fixed ppc64 compilation

........
r6413 | jonas | 2007-02-11 12:41:27 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/rtl/bsd/system.pp
   M /branches/fpc_2_3/rtl/darwin/powerpc/sig_cpu.inc
   M /branches/fpc_2_3/rtl/darwin/signal.inc

  + darwin/ppc64 support for signal routines

........
r6415 | jonas | 2007-02-11 13:54:53 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/systems/i_linux.pas

  * set abi of linux/ppc64 to abi_powerpc_sysv

........
r6416 | jonas | 2007-02-11 13:55:51 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc64/cputarg.pas
   M /branches/fpc_2_3/compiler/systems/i_bsd.pas
   M /branches/fpc_2_3/compiler/systems/t_bsd.pas

  + darwin/ppc64 source and target information

........
r6418 | jonas | 2007-02-11 14:19:55 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/rtl/powerpc64/math.inc

  * darwin/ppc64 compilation fixes

........
r6419 | jonas | 2007-02-11 14:22:22 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc/cgcpu.pas
   M /branches/fpc_2_3/compiler/powerpc64/cgcpu.pas
   M /branches/fpc_2_3/compiler/ppcgen/cgppc.pas

  * darwin/ppc64 needs the 32 bit version of a_loadaddr_ref_reg

........
r6420 | jonas | 2007-02-11 14:22:55 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/utils/fpcm/fpcmmain.pp

  + darwin/ppc64 support

........
r6426 | jonas | 2007-02-11 16:13:19 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc64/rappcgas.pas

  * fixed refaddr parsing for darwin/ppc64

........
r6427 | jonas | 2007-02-11 16:14:21 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc/agppcgas.pas
   M /branches/fpc_2_3/compiler/powerpc64/agppcgas.pas
   A /branches/fpc_2_3/compiler/ppcgen/agppcutl.pas

  * moved ppc32/ppc64 assembler writer helpers to a common unit

........
r6430 | jonas | 2007-02-11 17:53:23 +0100 (Sun, 11 Feb 2007) | 4 lines
Changed paths:
   D /branches/fpc_2_3/rtl/darwin/powerpc/sig_cpu.inc
   D /branches/fpc_2_3/rtl/darwin/powerpc/sighnd.inc
   A /branches/fpc_2_3/rtl/darwin/powerpc64
   A /branches/fpc_2_3/rtl/darwin/powerpc64/sig_cpu.inc
   A /branches/fpc_2_3/rtl/darwin/powerpc64/sighnd.inc
   A /branches/fpc_2_3/rtl/darwin/ppcgen
   A /branches/fpc_2_3/rtl/darwin/ppcgen/ppchnd.inc (from /branches/fpc_2_3/rtl/darwin/powerpc/sighnd.inc:6422)
   A /branches/fpc_2_3/rtl/darwin/ppcgen/sig_ppc.inc (from /branches/fpc_2_3/rtl/darwin/powerpc/sig_cpu.inc:6422)
   M /branches/fpc_2_3/rtl/darwin/signal.inc

  * fixed ppc/ppc64 signal include handling (both real files are in
    ppcgen, dummies in powerpc and powerpc64 which include those files)
    (1st step because pre-commit filter can't handle replaced files)

........
r6431 | jonas | 2007-02-11 17:53:47 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   A /branches/fpc_2_3/rtl/darwin/powerpc/sig_cpu.inc
   A /branches/fpc_2_3/rtl/darwin/powerpc/sighnd.inc

  * second step of signal include patch

........
r6432 | jonas | 2007-02-11 19:00:12 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/systems/t_bsd.pas

  * changed darwin checks to use systems_darwin constant

........
r6433 | jonas | 2007-02-11 19:05:38 +0100 (Sun, 11 Feb 2007) | 3 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc64/cgcpu.pas

  * handle non-multiple-of-4 offsets with 64 bit loads/stores for
    darwin/ppc64

........
r6434 | jonas | 2007-02-11 19:05:56 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   D /branches/fpc_2_3/compiler/powerpc/agppcgas.pas
   D /branches/fpc_2_3/compiler/powerpc64/agppcgas.pas
   A /branches/fpc_2_3/compiler/ppcgen/agppcgas.pas (from /branches/fpc_2_3/compiler/ppcgen/agppcutl.pas:6427)
   D /branches/fpc_2_3/compiler/ppcgen/agppcutl.pas

  * completely merged ppc assembler writers

........
r6435 | jonas | 2007-02-11 19:06:40 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/rtl/darwin/console.pp
   M /branches/fpc_2_3/rtl/darwin/termiosproc.inc

  * fixed 64 bit compilation

........
r6436 | jonas | 2007-02-11 19:09:28 +0100 (Sun, 11 Feb 2007) | 3 lines
Changed paths:
   M /branches/fpc_2_3/packages/extra/Makefile.fpc

  * universal interfaces aren't 64 bit ready yet -> only compile for
    darwin/ppc and darwin/i386

........
r6438 | jonas | 2007-02-11 19:22:34 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   A /branches/fpc_2_3/tests/test/cg/obj/darwin/powerpc64
   A /branches/fpc_2_3/tests/test/cg/obj/darwin/powerpc64/ctest.o
   A /branches/fpc_2_3/tests/test/cg/obj/darwin/powerpc64/tcext3.o
   A /branches/fpc_2_3/tests/test/cg/obj/darwin/powerpc64/tcext4.o
   A /branches/fpc_2_3/tests/test/cg/obj/darwin/powerpc64/tcext5.o

  + compiled for darwin/ppc64

........
r6439 | jonas | 2007-02-11 20:24:42 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ppcgen/cgppc.pas

  * patch from Thomas to fix linux/ppc64

........
r6440 | jonas | 2007-02-11 20:25:15 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/systems.pas

  * fixed setting source OS for darwin/ppc64

........
r6444 | florian | 2007-02-11 22:24:20 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/globtype.pas
   M /branches/fpc_2_3/compiler/nopt.pas
   M /branches/fpc_2_3/compiler/nutils.pas
   M /branches/fpc_2_3/compiler/optcse.pas
   M /branches/fpc_2_3/compiler/psub.pas

+ first node cse implementation

........
r6445 | jonas | 2007-02-11 22:30:07 +0100 (Sun, 11 Feb 2007) | 6 lines
Changed paths:
   M /branches/fpc_2_3/compiler/cresstr.pas

  * hack to work around strange darwin/ppc64 linker bug: it seems to
    have problems if you put a global symbol at the end of a section
    without any data following (at least in case of the resource strings
    section) -> add dummy byte at the end for darwin/ppc64 (otherwise
    it messes up the address of the first symbol stub entry)

........
r6449 | jonas | 2007-02-11 23:23:44 +0100 (Sun, 11 Feb 2007) | 4 lines
Changed paths:
   M /branches/fpc_2_3/compiler/systems/i_bsd.pas

  * cpupowerpc is defined for both ppc32 and ppc64 ->
    changed to cpupowerpc32 to avoid defining source
    wrongly on ppc64

........
r6450 | jonas | 2007-02-11 23:26:34 +0100 (Sun, 11 Feb 2007) | 3 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ppcgen/ngppcset.pas

  * disable jump tables for darwin/ppc64 for now, don't work
    yet for some reason

........
r6451 | florian | 2007-02-11 23:54:37 +0100 (Sun, 11 Feb 2007) | 3 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ncal.pas
   M /branches/fpc_2_3/compiler/nutils.pas
   M /branches/fpc_2_3/compiler/optcse.pas

* improved cse
* better complexity calculation for subscript nodes with classes or interfaces

........
r6456 | jonas | 2007-02-12 19:33:22 +0100 (Mon, 12 Feb 2007) | 4 lines
Changed paths:
   M /branches/fpc_2_3/compiler/nutils.pas

  + support for notn,shln,shrn,equaln,unequaln,gtn,gten,ltn,lten in
    node_cplexity()
  * mark muln,divn,modn as more complex

........
r6469 | jonas | 2007-02-13 15:56:01 +0100 (Tue, 13 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/optcse.pas

  * fixed when cross-compiling a 64 bit compiler from a 32 bit platform

........
r6471 | jonas | 2007-02-13 16:17:16 +0100 (Tue, 13 Feb 2007) | 3 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc64/cputarg.pas

  * include stabs support (can work on darwin/ppc64, but doesn't work
    yet)

........
r6473 | jonas | 2007-02-13 16:45:48 +0100 (Tue, 13 Feb 2007) | 3 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc64/cgcpu.pas
   M /branches/fpc_2_3/compiler/powerpc64/cpupara.pas

  * R2 is a volatile and usable register under darwin/ppc64
  * R13 is a reserved non-volatile register under darwin/ppc64 (tls)

........
r6479 | jonas | 2007-02-13 20:40:50 +0100 (Tue, 13 Feb 2007) | 3 lines
Changed paths:
   M /branches/fpc_2_3/compiler/systems/i_bsd.pas

  * maxCrecordalign seems to have to be 8 rather 4, in spite of what
    the ABI docs say (although they are contradictory to some extent)

........
r6487 | jonas | 2007-02-14 15:57:40 +0100 (Wed, 14 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/tests/webtbs/tw8153a.pp

  * fixed for darwin/ppc64

........
r6488 | jonas | 2007-02-14 15:58:56 +0100 (Wed, 14 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/tests/webtbs/tw7851a.pp

  * fixed for darwin/ppc64

........
r6494 | jonas | 2007-02-15 19:36:55 +0100 (Thu, 15 Feb 2007) | 3 lines
Changed paths:
   M /branches/fpc_2_3/compiler/systems/i_bsd.pas

  * set default debug info for darwin/ppc64 to dwarf2 since
    it works better than stabs currently

........
r6500 | jonas | 2007-02-15 21:38:16 +0100 (Thu, 15 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/version.pas

  * updated version to 2.3.0

........
r6505 | jonas | 2007-02-15 22:39:28 +0100 (Thu, 15 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/version.pas

  * changed version to 2.3.1

........
r6511 | jonas | 2007-02-16 15:17:24 +0100 (Fri, 16 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc64/itcpugas.pas

  * system_powerpc_darwin -> system_powerpc64_darwin

........
r6546 | daniel | 2007-02-18 15:48:54 +0100 (Sun, 18 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ncginl.pas
   M /branches/fpc_2_3/compiler/ncgld.pas
   M /branches/fpc_2_3/compiler/ncgrtti.pas
   M /branches/fpc_2_3/compiler/ncnv.pas
   M /branches/fpc_2_3/compiler/ninl.pas
   M /branches/fpc_2_3/compiler/nld.pas
   M /branches/fpc_2_3/compiler/nutils.pas
   M /branches/fpc_2_3/compiler/pinline.pas
   M /branches/fpc_2_3/rtl/inc/astrings.inc
   M /branches/fpc_2_3/rtl/inc/compproc.inc
   M /branches/fpc_2_3/rtl/inc/sstrings.inc
   M /branches/fpc_2_3/rtl/inc/text.inc
   M /branches/fpc_2_3/rtl/inc/wstrings.inc

  + Val/str/read/write support for enumeration types.

........
r6547 | daniel | 2007-02-18 17:01:20 +0100 (Sun, 18 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/rtl/inc/sstrings.inc

  * Fix val code that I broke.

........
r6571 | daniel | 2007-02-20 09:27:44 +0100 (Tue, 20 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/rtl/inc/astrings.inc
   M /branches/fpc_2_3/rtl/inc/sstrings.inc
   M /branches/fpc_2_3/rtl/inc/text.inc
   M /branches/fpc_2_3/rtl/inc/wstrings.inc

  * o2s -> ord2str, s2o -> str2ord

........
r6572 | daniel | 2007-02-20 09:33:30 +0100 (Tue, 20 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ncgld.pas
   M /branches/fpc_2_3/compiler/ncgrtti.pas
   M /branches/fpc_2_3/compiler/ninl.pas
   M /branches/fpc_2_3/compiler/nld.pas

  * o2s -> ord2str, s2o -> str2ord

........
r6574 | daniel | 2007-02-20 12:07:58 +0100 (Tue, 20 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/rtl/inc/compproc.inc

  * o2s -> ord2str, s2o -> str2ord

........
r6578 | daniel | 2007-02-20 22:18:49 +0100 (Tue, 20 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/rtl/inc/text.inc

  * Change longint to valsint.

........
r6579 | daniel | 2007-02-20 22:29:09 +0100 (Tue, 20 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ninl.pas

  * Handle ordinal currency types.

........
r6580 | jonas | 2007-02-20 22:29:11 +0100 (Tue, 20 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ncgrtti.pas

  * fixed compilation for cpurequiresproperalignment

........
r6581 | jonas | 2007-02-20 22:30:21 +0100 (Tue, 20 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ninl.pas

  * fixed typo

........
r6582 | daniel | 2007-02-20 22:36:19 +0100 (Tue, 20 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ninl.pas

  * Set is_real to true.

........
r6590 | jonas | 2007-02-21 20:23:54 +0100 (Wed, 21 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/systems/i_bsd.pas

  * set tf_dwarf_only_local_labels for darwin/ppc64

git-svn-id: trunk@6720 -
2007-03-04 20:16:57 +00:00
peter
973c973081 * don't write alignment for .comm and .lcomm, it seems to be only
supported by i386-linux

git-svn-id: trunk@6675 -
2007-02-27 18:21:52 +00:00
oro06
18944f16e9 * wince doesn't like the lcomm with two parameters too
git-svn-id: trunk@6671 -
2007-02-27 08:07:50 +00:00
florian
bc73129bea * win32 doesn't like the lcomm with two parameters either
git-svn-id: trunk@6657 -
2007-02-25 21:19:44 +00:00
florian
e3204bb902 * fixed arm-linux
git-svn-id: trunk@6654 -
2007-02-25 20:44:55 +00:00
peter
e0c58d3658 * use .comm again for global variables
this is needed for shared library linking where the .so
    needs to resolve to the space allocated for the symbol in the
    main program

git-svn-id: trunk@6641 -
2007-02-25 16:05:57 +00:00
Jonas Maebe
73c853757a * proper section names for sec_debug_line, sec_debug_info and
sec_debug_abbrev on darwin

git-svn-id: trunk@6284 -
2007-02-01 15:46:33 +00:00
florian
c238bb15d1 * .init section support
git-svn-id: trunk@5835 -
2007-01-07 10:03:52 +00:00
Jonas Maebe
f56d53c0e1 * disable generation of smartlinkable code for Darwin for now since
the result doesn't work yet due to a bug in Apple's linker

git-svn-id: trunk@5719 -
2006-12-26 17:07:28 +00:00
Károly Balogh
121a5c3cb8 + workaround for old Amiga GNU AS, which vomits for .fpc sections
git-svn-id: trunk@5714 -
2006-12-26 08:43:27 +00:00
Károly Balogh
8c4f672954 + avoidin .sections in the generated asm file for m68k-amiga,
and m68k-linux, to fix old GNU AS. hope this change doesn't
    break the new one... (did i mention that GNU binutils suck?)

git-svn-id: trunk@5545 -
2006-12-05 19:20:43 +00:00
Jonas Maebe
a9980bf951 * fixed darwin compilation
git-svn-id: trunk@5310 -
2006-11-10 17:12:30 +00:00
yury
5f484a0f14 * section "fpc" was renamed to ".fpc".
* compiler version string is stored in .fpc.version section.
* debug start/end links are stored in .fpc.links section.
* fixed linking with eVC++ object files by internal linker.
* .fpc.links section is removed by internal linker before writing executable, because it is no longer needed.

git-svn-id: trunk@5305 -
2006-11-10 10:33:41 +00:00
peter
3e4c8c3425 * fixed invalid typecast
git-svn-id: trunk@5190 -
2006-11-02 23:11:25 +00:00
peter
cb246eb781 * Remove dos,strings units, use SysUtils instead
* replace split* functions with Extract* functions
  * Add Directory caching

git-svn-id: trunk@5102 -
2006-10-30 23:29:35 +00:00
florian
ef7bd58c54 * germanism removed (aktfilepos -> current_filepos)
git-svn-id: trunk@5099 -
2006-10-30 22:37:31 +00:00
peter
070b86a512 * order of named sections added
* fix debugstart and debugend labels

git-svn-id: trunk@5098 -
2006-10-30 22:34:22 +00:00
florian
85d63d9fa9 * settings refactored
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
peter
3078a1927f * remove ttype
* rename old ttype variables *type to *def
  * rename resulttypepass to pass_typecheck
  * rename pass_2 to pass_generate_code

git-svn-id: trunk@5077 -
2006-10-29 22:19:39 +00:00
peter
d07f470b71 * remove ifdef fpc
git-svn-id: trunk@4819 -
2006-10-07 13:43:34 +00:00
Marc Weustink
48340d291e * splitup dwarf2/dwarf3
* changed cpu64bit define into isdwarf64 boolean
* generate info for methods

git-svn-id: trunk@4759 -
2006-09-30 15:21:17 +00:00
peter
088949b864 * fix NOP opcode
git-svn-id: trunk@4732 -
2006-09-26 18:27:18 +00:00
florian
d15f5871c2 * write align opcode in text sections in case of gas output, fixes #7440
git-svn-id: trunk@4702 -
2006-09-24 07:44:33 +00:00
Jonas Maebe
17e61456c6 * support for creating smartlinkable files under darwin. Don't turn on
smartlinking (-XX) yet though, it doesn't work because of bugs in the
    current darwin linker regarding dealing with multiple symbols referring
    to the same address.

git-svn-id: trunk@4613 -
2006-09-12 12:05:38 +00:00
Marc Weustink
9000d5c578 + Added dwarf .debug_line info
-This line, and those below, will be ignored--

M    compiler/dbgdwarf.pas
M    compiler/aggas.pas

git-svn-id: trunk@4607 -
2006-09-10 17:59:18 +00:00
Marc Weustink
1f3e05131a fixed generation of dwarf lineinfo in win32
git-svn-id: trunk@4171 -
2006-07-13 23:53:53 +00:00
yury
550626ef34 - Removed need of assembler startup files for wince. Now compiler directly creates .pdata section needed for arm-wince exception handling.
git-svn-id: trunk@3764 -
2006-06-02 08:36:25 +00:00
tom_at_work
da95ffc4f3 * fixed .toc section label generation
git-svn-id: trunk@3673 -
2006-05-25 20:00:48 +00:00
Jonas Maebe
848fa52fa1 * enable rodata for ppc (+ darwin renaming to ".const")
git-svn-id: trunk@3642 -
2006-05-23 11:08:07 +00:00
florian
3a03aee386 * use .rodata directive on arm
git-svn-id: trunk@3632 -
2006-05-22 19:15:11 +00:00
Jonas Maebe
da3d22e11e * fixed for darwin
git-svn-id: trunk@3413 -
2006-05-02 07:43:52 +00:00
tom_at_work
b64981a704 * initial gprof code for ppc64/linux
* compilation fixes
* alignment related fixes

git-svn-id: trunk@3270 -
2006-04-18 10:21:58 +00:00
florian
97fcac35f3 * fixed compilation on winx64
git-svn-id: trunk@3254 -
2006-04-17 20:33:07 +00:00
peter
efe41b0766 * fixed section smartlinking with ld.exe
* reference debugstart and debugend sections

git-svn-id: trunk@3127 -
2006-04-02 20:18:38 +00:00
peter
5376d2d570 Merged revisions 3072-3073 via svnmerge from
http://svn.freepascal.org/svn/fpc/branches/linker/compiler

........
r3072 | peter | 2006-03-29 13:34:42 +0200 (Wed, 29 Mar 2006) | 4 lines

  * std_regname generate pair of registers for float doubles
  * don't call translate_register for regvars if -sr is passed
  * use std_regname in regalloc message

........
r3073 | peter | 2006-03-29 16:00:37 +0200 (Wed, 29 Mar 2006) | 2 lines

  * CMP instructions only read operands

........

git-svn-id: trunk@3079 -
2006-03-30 06:36:42 +00:00
peter
dfd84c6fd3 * leb128 gets always a 64bit int
* fixed sleb128 encode

git-svn-id: trunk@3060 -
2006-03-27 13:42:06 +00:00
peter
e7a419cbff * leb128 support for binary writers
git-svn-id: trunk@3049 -
2006-03-26 21:12:33 +00:00
peter
37c81492ad Merged revisions 2827,2831,2837,2932-2980 via svnmerge from
svn+ssh://peter@www.freepascal.org/FPC/svn/fpc/branches/linker/compiler

r2827 (peter)
  * smartlinking of resourcestrings


r2831 (peter)
  * process_ea 64bit fixes


r2837 (peter)
  * linker script

git-svn-id: trunk@2981 -
2006-03-19 22:12:52 +00:00
Jonas Maebe
d56857e998 * fixed r2970 (% instead of #)
git-svn-id: trunk@2977 -
2006-03-19 20:41:36 +00:00
peter
76944b0c85 * fix writing of @object for arm
git-svn-id: trunk@2970 -
2006-03-19 19:11:37 +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
693412e70c * removed "inline" directive from TGNUAssembler.WriteInstruction
because it triggers an internalerror when loading the nodetree
    for that method from the ppu file

git-svn-id: trunk@2880 -
2006-03-11 23:29:47 +00:00
peter
86a15e83e9 * fix section flags for stabs
git-svn-id: trunk@2838 -
2006-03-10 18:35:17 +00:00
Jonas Maebe
ba6f1e4990 * factered WriteInstruction out of TGNUAssembler into its own class
* put Apple-specific GNU assembler stuff in its own class
  + darwin/x86 support to the assembler writer

git-svn-id: trunk@2818 -
2006-03-09 14:59:04 +00:00
peter
785550d7e3 Merged revisions 2669,2673,2677,2683,2696,2699-2702,2704,2708,2712-2715,2718,2722-2723,2728-2730,2740,2769 via svnmerge from
svn+ssh://peter@www.freepascal.org/FPC/svn/fpc/branches/linker/compiler

........
r2669 | peter | 2006-02-23 09:31:21 +0100 (Thu, 23 Feb 2006) | 2 lines

  * add compiler dir

........
r2673 | peter | 2006-02-23 17:08:56 +0100 (Thu, 23 Feb 2006) | 2 lines

  * enabled more code

........
r2677 | peter | 2006-02-24 17:46:29 +0100 (Fri, 24 Feb 2006) | 2 lines

  * pe stub and headers

........
r2683 | peter | 2006-02-25 23:13:24 +0100 (Sat, 25 Feb 2006) | 2 lines

  * section options cleanup

........
r2696 | peter | 2006-02-26 20:27:41 +0100 (Sun, 26 Feb 2006) | 2 lines

  * fixed typecasts

........
r2699 | peter | 2006-02-26 23:04:32 +0100 (Sun, 26 Feb 2006) | 2 lines

  * simple linking works

........
r2700 | peter | 2006-02-27 09:44:50 +0100 (Mon, 27 Feb 2006) | 2 lines

  * internal linker script

........
r2701 | peter | 2006-02-27 12:05:12 +0100 (Mon, 27 Feb 2006) | 2 lines

  * make elf working again

........
r2702 | peter | 2006-02-27 14:04:43 +0100 (Mon, 27 Feb 2006) | 3 lines

  * disable dwarf for smartlinking with .a
  * fix section start in new .a file

........
r2704 | peter | 2006-02-27 18:30:43 +0100 (Mon, 27 Feb 2006) | 2 lines

  * stab section fixes

........
r2708 | peter | 2006-02-28 19:29:17 +0100 (Tue, 28 Feb 2006) | 2 lines

  * basic work to merge stabs sections

........
r2712 | peter | 2006-02-28 23:17:48 +0100 (Tue, 28 Feb 2006) | 2 lines

  * unload tmodules before linking

........
r2713 | peter | 2006-02-28 23:18:51 +0100 (Tue, 28 Feb 2006) | 2 lines

  * fixed stabs linking

........
r2714 | peter | 2006-02-28 23:19:19 +0100 (Tue, 28 Feb 2006) | 2 lines

  * show code and data size

........
r2715 | peter | 2006-02-28 23:25:35 +0100 (Tue, 28 Feb 2006) | 2 lines

  * unload .stabs from objdata after it is merged

........
r2718 | peter | 2006-03-01 12:24:38 +0100 (Wed, 01 Mar 2006) | 3 lines

  * memsize/datasize cleanup
  * check for exports/resources when adding module to linker

........
r2722 | peter | 2006-03-03 09:12:20 +0100 (Fri, 03 Mar 2006) | 2 lines

  * new TObjSymbol splitted from TAsmSymbol

........
r2723 | peter | 2006-03-03 14:08:55 +0100 (Fri, 03 Mar 2006) | 2 lines

  * coff fixes after recent objsymbol changes

........
r2728 | peter | 2006-03-03 22:43:04 +0100 (Fri, 03 Mar 2006) | 2 lines

  * fixed coff writer

........
r2729 | peter | 2006-03-04 01:10:32 +0100 (Sat, 04 Mar 2006) | 2 lines

  * fix read-only opening

........
r2730 | peter | 2006-03-04 01:11:16 +0100 (Sat, 04 Mar 2006) | 2 lines

  * Read edata from DLLs, basic work

........
r2740 | peter | 2006-03-04 21:13:43 +0100 (Sat, 04 Mar 2006) | 3 lines

  * deletedef added
  * don't remove defs from index when we are already clearing everything

........
r2769 | peter | 2006-03-05 21:42:33 +0100 (Sun, 05 Mar 2006) | 4 lines

  * moved TObj classes to ogbase
  * ObjSection.SymbolRefs and SymbolDefines list
  * DLL importing

........

git-svn-id: trunk@2771 -
2006-03-05 21:10:37 +00:00
Jonas Maebe
c5243db965 + more darwin i386 support
git-svn-id: trunk@2596 -
2006-02-15 16:31:05 +00:00
florian
2ff2918016 * fixed open arrays with dwarf
* fixed line info writting for smart linked files

git-svn-id: trunk@2446 -
2006-02-05 20:41:13 +00:00
Jonas Maebe
976bb457b4 * fixed WriteDecodedSleb128
git-svn-id: trunk@2413 -
2006-02-03 12:37:50 +00:00
florian
64acd83ab4 + dwarf for procedures and local symbols
git-svn-id: trunk@2360 -
2006-01-28 21:26:37 +00:00
florian
8cd8e4ba8d + basic dwarf support for variables and types
git-svn-id: trunk@2353 -
2006-01-28 16:06:08 +00:00
florian
238d18bef2 * fixed some broken stuff due to tai_const refactoring
git-svn-id: trunk@2329 -
2006-01-22 21:50:12 +00:00
florian
6af88cec0f + first implementation of dwarf line info generation using .file and .loc, little use with binary writers though ...
git-svn-id: trunk@2327 -
2006-01-22 15:59:26 +00:00
florian
b06643a1eb * tai_const refactored
git-svn-id: trunk@2323 -
2006-01-22 12:58:38 +00:00
florian
aa176601fb + added more dwarf sections
git-svn-id: trunk@2318 -
2006-01-21 21:22:47 +00:00
tom_at_work
c887507adf * generic compiler patches for ppc64/linux PIC code
git-svn-id: trunk@2222 -
2006-01-08 13:27:31 +00:00
tom_at_work
8c8e25353b * reverted changes from 2214, needs to be split into several commits
git-svn-id: trunk@2215 -
2006-01-08 01:03:15 +00:00
tom_at_work
6313a9be7b * basic code generation for dynamic linking code for ppc64
git-svn-id: trunk@2214 -
2006-01-07 22:16:33 +00:00
florian
61e3b70cfa * cleaned up segmented thread variables
git-svn-id: trunk@2135 -
2006-01-03 12:49:29 +00:00
florian
06c84e1c5e * fixed writing of symbol sizes
git-svn-id: trunk@2123 -
2006-01-02 18:29:18 +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
peter
1e1ea0c3b6 * write .type and .size only for target that support it
git-svn-id: trunk@1956 -
2005-12-15 11:39:23 +00:00
Jonas Maebe
dac02c3032 * always use the regular secnames for darwin currently
git-svn-id: trunk@1937 -
2005-12-12 14:45:06 +00:00
florian
ca782dddc7 * write correct type usual symbols
git-svn-id: trunk@1933 -
2005-12-11 23:11:55 +00:00
florian
fb8e885a94 + write data block size and type
* changed .space to .zero

git-svn-id: trunk@1931 -
2005-12-11 23:03:20 +00:00
florian
924265c0af * pic compatible section names
git-svn-id: trunk@1924 -
2005-12-10 22:04:04 +00:00
tom_at_work
28381b1287 * new assembler symbol type AT_LABEL needed for PowerPc64 target
+ added automatic definition of FPC_REQUIRES_PROPER_ALIGNMENT define for PowerPC64 target

git-svn-id: trunk@1278 -
2005-10-03 22:13:45 +00:00
tom_at_work
3681639a6a - more PowerPC64 fixes; "Hello World" style programs can be compiled and run
git-svn-id: trunk@1209 -
2005-09-27 18:16:49 +00:00
florian
b1568fed2a * don't strip aname for resources
git-svn-id: trunk@1199 -
2005-09-25 21:03:55 +00:00
michael
2057b480a9 + Fixed resource section names
git-svn-id: trunk@1185 -
2005-09-25 13:12:42 +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
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
michael
3392189fb0 + Implemented resources for ELF
git-svn-id: trunk@956 -
2005-08-28 09:35:35 +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
738660fb8a * Add remarks from the e-mails
git-svn-id: trunk@777 -
2005-08-01 06:57:11 +00:00
daniel
e9f8903be4 * Add Mac OS X exception again
git-svn-id: trunk@776 -
2005-08-01 06:44:28 +00:00
daniel
94447481c1 * Use .space instead of .fill
git-svn-id: trunk@775 -
2005-07-31 21:25:40 +00:00
daniel
6234341ef2 * Uninitialised variables are no longer declared with .comm
git-svn-id: trunk@766 -
2005-07-30 17:40:20 +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
6171499d15 * fixed creating shared libraries under Darwin/Mac OS X
git-svn-id: trunk@727 -
2005-07-22 10:09:52 +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
peter
fcde2cab80 * support rodata like data when writing ordinal cosnts 2004-10-24 13:35:25 +00:00
mazen
a8bf3670d5 * Merge is complete for this file, cycles ! 2004-10-14 16:49:14 +00:00
peter
8fb3536f6e * simple regvar support, not yet finished 2004-09-26 17:45:29 +00:00
peter
519bf9889e don't lowercase filenames in stabs 2004-08-27 20:53:52 +00:00
Tomas Hajny
692fa34dba * fix for OS/2 and EMX - .section not supported by as.exe 2004-07-18 22:04:55 +00:00
Jonas Maebe
bd53954c88 * Darwin fixes 2004-07-01 18:16:10 +00:00
florian
8a9758c5e2 * logs truncated 2004-06-20 08:55:28 +00:00
florian
588e2c38bf * dwarf branch merged 2004-06-16 20:07:06 +00:00
peter
829ec81267 * fix wrong regalloc comments 2004-05-28 21:13:08 +00:00
peter
5358278ca1 tai_regalloc.allocation changed to ratype to notify rgobj of register size changes 2004-05-22 23:34:27 +00:00
florian
8aacc9fb7e * fixed wrong commit from yesterday 2004-04-27 13:38:24 +00:00
florian
1f18d7ac1b * some m68k stuff fixed 2004-04-25 21:26:16 +00:00
florian
e678705648 * small x86_64 fixes 2004-04-12 18:59:32 +00:00
florian
0b0c4a4062 * fixed handling of doubles in a native arm compiler
* fixed handling of typed double constants on arm
2004-03-17 22:27:41 +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
peter
8bfb707401 * tf_need_symbol_size added 2004-02-22 16:51:50 +00:00
florian
37454274bc * fixed several arm floating point issues 2004-01-24 18:12:40 +00:00
florian
1779c5dd8c * fixed symbol type writing for arm-linux
* fixed assembler generation for abs
2004-01-20 21:02:54 +00:00
peter
42c6e9323b * sparc updates, mostly float related 2004-01-12 16:39:40 +00:00
Jonas Maebe
e1fc7227d9 * darwin requires the alginment of .lcomm symbols to be specified
together with the symbol itself, instead of in a .align directive
2004-01-07 17:40:06 +00:00
Jonas Maebe
8f33050b86 * darwin only supports .align, no .balign 2004-01-04 21:08:59 +00:00
Jonas Maebe
2d40a5008b + support exported procedures for linuxppc
* refuse to compile systems/t_linux.pas if processor-specific  support
    for exported procedures is absent
  + generate .type and .size info for all currently defined linux-variants
    in aggas.pas
2004-01-03 13:51:05 +00:00
peter
cb201089ea * fixed range check error 2003-12-14 22:42:54 +00:00
peter
7685cf9c78 * fix range error with tai_const 2003-12-10 17:13:22 +00:00
florian
1af574ceca * assembler readers OOPed
+ typed currency constants
  + typed 128 bit float constants if the CPU supports it
2003-11-12 16:05:39 +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
8af51ea6d3 * locals and paras are allocated in the code generation
* tvarsym.localloc contains the location of para/local when
    generating code for the current procedure
2003-09-23 17:56:05 +00:00
florian
eb9a587759 + support of NaN and Inf in the compiler as values of real constants 2003-09-06 16:47:24 +00:00
florian
0d3832776f * first bunch of adaptions of arm compiler for new register type 2003-09-04 00:15:28 +00:00
peter
601160a0e3 * powerpc compiles again 2003-09-03 19:35:24 +00:00
peter
6a8d5eb25d * NEWRA branch merged 2003-09-03 15:55:00 +00:00
florian
220e05dd5e * fixed arm concatcopy
+ arm support in the common compiler sources added
  * moved some generic cg code around
  + tfputype added
  * ...
2003-09-03 11:18:36 +00:00
daniel
8cb289e65f * Fixed PowerPC compilation 2003-08-19 11:53:03 +00:00
daniel
787fcc5797 * Made ATT asm writer work with -sr 2003-08-18 11:49:47 +00:00
daniel
0263254289 * Now -sr works... 2003-08-17 21:11:00 +00:00
daniel
63e1b70931 * Notranslation changed into -sr functionality 2003-08-17 20:47:47 +00:00
Jonas Maebe
4f8c390198 * fixed regvars so they work with newra (at least for ppc)
* fixed some volatile register bugs
  + -dnotranslation option for -dnewra, which causes the registers not to
    be translated from virtual to normal registers. Requires support in
    the assembler writer as well, which is only implemented in aggas/
    agppcgas currently
2003-08-17 16:59:20 +00:00
peter
7c733ebcca * write sec_none info in extdebug 2003-04-28 21:17:53 +00:00
peter
f4b818fc1d * removed funcretn,funcretsym, function result is now in varsym
and aliases for result and function name are added using absolutesym
  * vs_hidden parameter for funcret passed in parameter
  * vs_hidden fixes
  * writenode changed to printnode and released from extdebug
  * -vp option added to generate a tree.log with the nodetree
  * nicer printnode for statements, callnode
2003-04-25 20:59:33 +00:00
florian
41da381f1a * fixed a lot of PowerPC related stuff 2003-04-24 22:29:57 +00:00
peter
9ed2ce8c12 * removed some notes/hints 2003-04-22 14:33:38 +00:00
peter
2721d341f0 * merged some verbosity options.
* V_LineInfo is a verbosity flag to include line info
2003-01-09 21:52:37 +00:00
daniel
55a161bbbf * Tregister changed into a record 2003-01-08 18:43:56 +00:00
carl
d23ef9fb9a - remove some duplicates and unused vars 2002-12-07 14:03:25 +00:00
peter
5fffe4335e * long symbol name fix merged 2002-12-06 17:50:39 +00:00
carl
64655be168 * memory optimization (3-4%) : cleanup of tai fields,
cleanup of tdef and tsym fields.
  * make it work for m68k
2002-11-17 16:31:55 +00:00
peter
bfd72ad5d5 * merged changes from 1.0.7 up to 04-11
- -V option for generating bug report tracing
    - more tracing for option parsing
    - errors for cdecl and high()
    - win32 import stabs
    - win32 records<=8 are returned in eax:edx (turned off by default)
    - heaptrc update
    - more info for temp management in .s file with EXTDEBUG
2002-11-15 01:58:45 +00:00
peter
477bc04c6a * always include lineno after fileswitch. valgrind requires this 2002-10-30 21:01:14 +00:00
carl
67486c96c3 * fixes for Delphi 6 compilation
(warning : Some features do not work under Delphi)
2002-10-05 12:43:23 +00:00
florian
fb5e694dca * write double # before float constants when -al is turned on
else some gas versions interpret it as line number
2002-08-31 16:05:17 +00:00
peter
ecb430a8eb * don't write (stabs)line info when inlining a procedure 2002-08-20 16:55:38 +00:00
florian
0d1a344d7f + the ppc gas assembler writer adds now registers aliases
to the assembler file
2002-08-18 22:16:14 +00:00
peter
98dd65b0f3 * inlining is now also allowed in interface
* renamed write/load to ppuwrite/ppuload
  * tnode storing in ppu
  * nld,ncon,nbas are already updated for storing in ppu
2002-08-18 20:06:23 +00:00
florian
eb2ca8d10f * rewrote the system handling 2002-07-26 21:15:37 +00:00
florian
07783d2a0d * powerpc target fixed, very simple units can be compiled
* some basic stuff for better callparanode handling, far from being finished
2002-07-07 09:52:32 +00:00
peter
4285e99853 * internal linker
* reorganized aasm layer
2002-07-01 18:46:20 +00:00
peter
06ebac4e27 * readded missing revisions 2002-05-18 13:34:04 +00:00
carl
21b3a10f02 + defines.inc -> fpcdefs.inc to avoid conflicts if compiling by hand
+ try to fix temp allocation (still in ifdef)
+ generic constructor calls
+ start of tassembler / tmodulebase class cleanup
2002-05-16 19:46:34 +00:00
peter
2992e1819c * removed old logs and updated copyright year 2002-05-14 19:34:38 +00:00
carl
820e6cbe4c + comments in register allocator uses std_Reg2str 2002-04-15 18:53:48 +00:00
carl
4c1cbe5c2b + basic GNU assembler writer class 2002-04-14 16:51:54 +00:00