Commit Graph

11477 Commits

Author SHA1 Message Date
pierre
dbf2be812a * for rip_relative if cs_create_pic is selected
git-svn-id: trunk@14392 -
2009-12-10 13:38:34 +00:00
pierre
21bc57d4c1 * accept @PLT for pic functions
git-svn-id: trunk@14389 -
2009-12-10 13:07:44 +00:00
pierre
617e1b9b10 * handle i386/x86_64 solaris pic as for linux
git-svn-id: trunk@14388 -
2009-12-10 12:47:40 +00:00
pierre
f7b75f4ecb * add tf_needs_symbol_type for x86_64 solaris
git-svn-id: trunk@14387 -
2009-12-10 12:46:19 +00:00
Jonas Maebe
e50c05f44e * fixed inverted condition in inc/dec range/overflow case that caused
unsigned 32/64 bit values to be always explicitly typecasted to signed
    32/64 bit instead of never (mantis #15304)

git-svn-id: trunk@14379 -
2009-12-09 21:54:46 +00:00
florian
ee504ce31f * fixes fullcycle
git-svn-id: trunk@14373 -
2009-12-08 20:12:05 +00:00
Jonas Maebe
09b4918cab * don't allocate persistent temps for classes (they are not refcounted)
git-svn-id: trunk@14372 -
2009-12-08 20:00:27 +00:00
florian
092823308a + mips(el) support in the compiler makefile
* regenerated some makefiles to support mipsel-linux

git-svn-id: trunk@14371 -
2009-12-08 19:57:16 +00:00
Jonas Maebe
40f88809af * don't error out or generate invalid code for "with x do ;"
(Delphi/TP-compatible, mantis #15274)

git-svn-id: trunk@14370 -
2009-12-08 19:45:08 +00:00
Jonas Maebe
82b2a1d48f * fixed endless loop when generating debug info for empty string constants
after r14366

git-svn-id: trunk@14369 -
2009-12-08 19:13:07 +00:00
Jonas Maebe
b521f80b13 * give a proper error when a rangen appears in a vecn that's not an
array parameter (mantis #15287)

git-svn-id: trunk@14368 -
2009-12-08 18:47:24 +00:00
Jonas Maebe
b9b95a8f73 * fixed compiler crash when putting non-constant string in a set expression
(mantis #15288)

git-svn-id: trunk@14367 -
2009-12-08 17:15:31 +00:00
Jonas Maebe
a9c025cd6a * fixed 32 bit -> 64 bit cross compilation
git-svn-id: trunk@14366 -
2009-12-08 16:06:28 +00:00
paul
f718be3afd compiler: remove unused variable
git-svn-id: trunk@14359 -
2009-12-08 04:24:28 +00:00
Jonas Maebe
896e481f86 * fixed function result variable symbol corruption in case a unit is
re-resolved before its implementation is parsed

git-svn-id: trunk@14358 -
2009-12-07 23:27:12 +00:00
Jonas Maebe
c3eb47293a * fixed derefdata corruption in case a unit is re-resolved and it has a
localsymtable with symbols/defs that need to be deref'ed

git-svn-id: trunk@14357 -
2009-12-07 23:26:20 +00:00
pierre
98470e953d * fix native linker end group delimiter
git-svn-id: trunk@14356 -
2009-12-07 22:27:59 +00:00
sekelsenmat
4fd2aa297a Adds mipsel lazarus project
git-svn-id: trunk@14349 -
2009-12-07 13:04:05 +00:00
Jonas Maebe
7547bbb59c * forgot to commit (part of r14342)
git-svn-id: trunk@14343 -
2009-12-06 14:00:05 +00:00
Jonas Maebe
b4c8c73e70 * changed tf_use_function_relative_addresses into an assembler flag (with
the opposite meaning, af_stabs_use_function_absolute_addresses), because it
    is different on Darwin for the internal and external assembler)

git-svn-id: trunk@14342 -
2009-12-06 13:21:28 +00:00
florian
2fbf2df137 * sunos is not supported on mips
git-svn-id: trunk@14341 -
2009-12-06 12:19:08 +00:00
florian
9e59c6dec7 * more mipsel code
git-svn-id: trunk@14340 -
2009-12-06 12:12:15 +00:00
Jonas Maebe
0e96a159c8 * enabled pushing (x87) fpu registers in case too few might be available
also for x86_64, since some of those platforms also support the x87
    (noticed by Florian)

git-svn-id: trunk@14338 -
2009-12-05 22:53:27 +00:00
Jonas Maebe
8f3b1e42c0 + -godwarfmethodclassprefix option to prefix method names in the DWARF debug
info with the classname, like is done for Stabs. Not done by default
    because otherwise once calling methods from the debugger is implemented,
    this would require typing classinstance.classname__methodname

git-svn-id: trunk@14337 -
2009-12-05 22:21:52 +00:00
Jonas Maebe
3a8f889179 * fixed printing formal constants with DWARF:
a) use DW_TAG_variable instead of DW_TAG_constant in combination with a
      DW_AT_constant_value, since that way gdb does support formal constants
   b) store constant strings as either a shortstring or a longstring rather
      than using DW_FORM_string, since gdb's Pascal printer doesn't support
      gdb's generic STRING type yet for output

git-svn-id: trunk@14336 -
2009-12-05 21:54:27 +00:00
Jonas Maebe
fa044d05e0 * fixed shortstring size information
git-svn-id: trunk@14335 -
2009-12-05 19:26:25 +00:00
Jonas Maebe
fbebd87593 * use BLX instead of "mov r14, r15; mov r15, reg" for a_call_reg on ARMv6
and above, so this also works when calling thumb code (should actually
    also be done for ARMv5T, but we don't have a monicker for that yet)
  * use BX instead of "mov r15, r14" for simple returns from subroutines
    on ARMv6+ to support returning to thumb code from ARM code (idem)

git-svn-id: trunk@14332 -
2009-12-04 22:38:50 +00:00
Jonas Maebe
d19eaab7c6 * don't specify ARM architecture subtype to linker, because then it will
refuse linking in compiled resources (because those have a generic
    cpu subtype)

git-svn-id: trunk@14330 -
2009-12-04 20:29:05 +00:00
Jonas Maebe
877c024d4e * added tf_requires_proper_alignment for Darwin/ARM, fixes webtbs/tw7391.pp
with VFP

git-svn-id: trunk@14329 -
2009-12-04 19:56:00 +00:00
Jonas Maebe
4838ebe73b * renamed mark_InlineStart/mark_InlineEnd to mark_NoLineinfoStart/
mark_NoLineinfoEnd
  * add "no line info" markers for try/except and try/finally internal cleanup
    code, so the debugger doesn't jump back and forth between the end and start
    of exception blocks when you arrive at the end
  * honour "no line info" markers in dbgdwarf.pas

git-svn-id: trunk@14327 -
2009-12-04 19:37:22 +00:00
paul
ae52b19820 compiler: generate STABS debug info for Variant type
git-svn-id: trunk@14326 -
2009-12-04 17:06:17 +00:00
Jonas Maebe
e6ce17c1de - removed accidentally committed unfinished code in r14317
git-svn-id: trunk@14321 -
2009-12-04 10:27:28 +00:00
Jonas Maebe
280f27b45c * store/restore trttinode.rttidatatype to/from ppu file, and also copy it in
rttidatatype.getcopy (fixes mantis #15207)

git-svn-id: trunk@14318 -
2009-12-03 23:03:25 +00:00
Jonas Maebe
d1538ab023 o added ARM VPFv2/VFPv3 support:
+ RTL support:
      o VFP exceptions are disabled by default on Darwin,
        because they cause kernel panics on iPhoneOS 2.2.1 at least
      o all denormals are truncated to 0 on Darwin, because disabling
        that also causes kernel panics on iPhoneOS 2.2.1 (probably
        because otherwise denormals can also cause exceptions)
    * set softfloat rounding mode correctly for non-wince/darwin/vfp
      targets
    + compiler support: only half the number of single precision
      registers is available due to limitations of the register
      allocator
    + added a number of comments about why the stackframe on ARM is
      set up the way it is by the compiler
    + added regtype and subregtype info to regsets, because they're
      also used for VFP registers (+ support in assembler reader)
    + various generic support routines for dealing with floating point
      values located in integer registers that have to be transferred to
      mm registers (needed for VFP)
    * renamed use_sse() to use_vectorfpu() and also use it for
      ARM/vfp support
    o only superficially tested for Linux (compiler compiled with -Cpvfpv6
      -Cfvfpv2 works on a Cortex-A8, no testsuite run performed -- at least
      the fpu exception handler still needs to be implemented), Darwin has
      been tested more thoroughly
  + added ARMv6 cpu type and made it default for Darwin/ARM
  + ARMv6+ implementations of atomic operations using ldrex/strex
  * don't use r9 on Darwin/ARM, as it's reserved under certain
    circumstances (don't know yet which ones)
  * changed C-test object files for ARM/Darwin to ARMv6 versions
  * check in assembler reader that regsets are not empty, because
    instructions with a regset operand have undefined behaviour in that
    case
  * fixed resultdef of tarmtypeconvnode.first_int_to_real in case of
    int64->single type conversion
  * fixed constant pool locations in case 64 bit constants are generated,
    and/or when vfp instructions with limited reach are present

  WARNING: when using VFP on an ARMv6 or later cpu, you *must* compile all
    code with -Cparmv6 (or higher), or you will get crashes. The reason is
    that storing/restoring multiple VFP registers must happen using
    different instructions on pre/post-ARMv6.

git-svn-id: trunk@14317 -
2009-12-03 22:46:30 +00:00
Jonas Maebe
3bd7f55f92 * write debug info for Variant with the name "Variant" instead of TVARDATA
so they can be distinguished by debugger frontends

git-svn-id: trunk@14298 -
2009-12-03 14:34:47 +00:00
Jonas Maebe
985c74adde * sizeof(voidpointertype.size) -> voidpointertype.size (although they
happen to be the same currently on all platforms, this is not
     guaranteed)

git-svn-id: trunk@14297 -
2009-12-03 13:29:02 +00:00
Jonas Maebe
93523c7767 * fixed for overflow in sort_movelist (by Paul Ishenin, mantis #15204), and
made a similar change in sort_simplify_worklist

git-svn-id: trunk@14296 -
2009-12-03 11:07:37 +00:00
pierre
3fce09ae26 * modify native likner args for library creation
git-svn-id: trunk@14294 -
2009-12-01 13:52:46 +00:00
Jonas Maebe
f191ab39cd * don't use a voidpointer typecast to access hardcoded objc fields, because
that sets the alignment to 1 and hence causes unnecessary unaligned
    loads/stores on ARM

git-svn-id: trunk@14291 -
2009-11-30 20:43:48 +00:00
Jonas Maebe
a6716fd2a2 * fixed calling inherited class methods from category methods when using
the iPhoneOS/Mac OS X 10.6 objc runtime interface (tests/test/tobjc25.pp)

git-svn-id: trunk@14289 -
2009-11-29 21:41:47 +00:00
pierre
a823e6834d * remove path for sparc
git-svn-id: trunk@14288 -
2009-11-29 20:15:00 +00:00
Jonas Maebe
b30b7ee6b1 * fixed alignment initialisation of temprary dst reference in
g_concatcopy_unaligned()

git-svn-id: trunk@14287 -
2009-11-29 15:14:56 +00:00
florian
be8470125f * solaris x86-64 libraries require pic
git-svn-id: trunk@14286 -
2009-11-28 18:27:58 +00:00
pierre
b0a77480cf rlinkpath and initfini fixes
git-svn-id: trunk@14285 -
2009-11-28 07:08:53 +00:00
pierre
7a21770ead * Add solaris to the -Xr option list
git-svn-id: trunk@14284 -
2009-11-28 07:08:05 +00:00
pierre
100e7c4d76 fix shared lib native linknig
git-svn-id: trunk@14283 -
2009-11-27 23:16:06 +00:00
pierre
6bead44bdf * fix solaris ld version mapfile (option -M)
git-svn-id: trunk@14282 -
2009-11-27 22:38:19 +00:00
pierre
2354c0d43a * avoid trailing spaces in solaris ld call
git-svn-id: trunk@14281 -
2009-11-27 21:23:25 +00:00
florian
9b4be66260 + first patches to support mips/mipsel in the compiler makefile
git-svn-id: trunk@14279 -
2009-11-27 15:22:15 +00:00
florian
28ac4a8dda * several mips/mipsel related stuff fixed
* regenerated linux makefile to support mipsel

git-svn-id: trunk@14278 -
2009-11-27 15:10:56 +00:00