florian
762bd12d16
* handle embedded case jump tables correctly
...
git-svn-id: trunk@6333 -
2007-02-04 14:33:57 +00:00
Jonas Maebe
674660d53b
* getting the length of a string means that it has to be
...
valid and marks it as really read (mantis #8264 )
git-svn-id: trunk@6327 -
2007-02-03 21:28:44 +00:00
michael
644795c316
* Improved hebrew translations from Ido Kanner
...
git-svn-id: trunk@6326 -
2007-02-03 19:53:26 +00:00
florian
35b9bfc83e
* several range check errors fixed
...
git-svn-id: trunk@6324 -
2007-02-03 19:36:06 +00:00
Jonas Maebe
359c19ee9e
- removed ppc601 as ppc32 cpu target
...
+ added ppc740 (g3), ppc7400 (G4) and ppc970 (G5) as ppc32 cpu
targets
* initialise optimizecputype by default to ppc7400 for ppc32 and to
ppc970 for ppc64
* merged ppc32/ppc64 overflow checking code and use the ppc64 one
in case cputype or optimizecputype >= ppc970, because one of
the instructions used in the ppc32 version no longer exists on the
ppc970 (although it's emulated in the kernel on at least Mac OS X)
* moved some other support routines and constants to ppcgen which
were needed for the overflow checking (were identical for ppc32 and
ppc64)
git-svn-id: trunk@6323 -
2007-02-03 19:32:44 +00:00
florian
8d33f640d4
* stop conditional optimization at mov pc,...
...
git-svn-id: trunk@6321 -
2007-02-03 17:40:32 +00:00
Jonas Maebe
4d97044bba
* mark whether or not procsyms are global (DW_AT_external)
...
git-svn-id: trunk@6314 -
2007-02-02 23:18:15 +00:00
Jonas Maebe
7a65ffac28
* use DW_FORM_ref4 instead of DW_FORM_ref_addr on
...
tf_dwarf_relative_addresses platforms
* also add a file to the line info section if no code in the current
module to make gdb happy when doing a "maintenance check-symtabs"
git-svn-id: trunk@6313 -
2007-02-02 23:16:47 +00:00
florian
d09295b686
* shift folding
...
git-svn-id: trunk@6312 -
2007-02-02 23:12:08 +00:00
florian
01b23ca896
* improved last commit
...
git-svn-id: trunk@6309 -
2007-02-02 22:47:29 +00:00
florian
d0b34fef46
* safe an loadaddr for simple references when generating unaligned accesses
...
git-svn-id: trunk@6308 -
2007-02-02 22:43:30 +00:00
florian
986a73c12c
* arm compiler can handled misaligned references
...
git-svn-id: trunk@6307 -
2007-02-02 22:42:27 +00:00
peter
06698d6e1b
* explicitly use shortstring for TFPHashList
...
git-svn-id: trunk@6303 -
2007-02-02 18:58:29 +00:00
Jonas Maebe
ea6204cc56
* only mark abstract varsyms as externally visible if they
...
are not kept in a register and either
a) are in a globalsymtable
b) are marked as static object/class member
c) are marked as "public"
git-svn-id: trunk@6302 -
2007-02-02 17:31:26 +00:00
Jonas Maebe
bf38367b69
* if a module has no procedure/function/init/final code,
...
add a dummy entry to the lineinfo and finish it properly
(needed for at least the Darwin linker)
git-svn-id: trunk@6301 -
2007-02-02 17:23:42 +00:00
Jonas Maebe
d39d06ea01
* initial fixes if tf_dwarf_relative_addresses is set:
...
* store dataptr as a relative offsets instead of absolute addresses
* only place local (address) labels inside the debug_info section
-> also always write debuginfo of defs used from another unit
* don't use DW_LNS_advance_pc on Darwin, because its assembler doesn't
support the .uleb128 pseudo-opcode -> impossible to store the difference
between two labels as an uleb128
-> basic functionality of dwarf2 debug info now works on Darwin. Not
yet workingon Darwin: accessing globals of another compilation unit.
git-svn-id: trunk@6300 -
2007-02-02 16:00:47 +00:00
Jonas Maebe
d99a616167
* simplified use_64bit_headers code to avoid if-statement blowups
...
when adding tf_dwarf_relative_addresses support
git-svn-id: trunk@6299 -
2007-02-02 14:36:56 +00:00
Jonas Maebe
1b25984563
+ new tf_dwarf_relative_addresses target flag for platforms where all
...
addresses which are specified as relative offsets in the dwarf
spec must actually be emitted as relative offsets by the compiler
(only set for Darwin currently, not yet used)
git-svn-id: trunk@6298 -
2007-02-02 13:49:26 +00:00
Jonas Maebe
3067415fe4
* replaced hardcoded '.L' label prefixes with target_asm.labelprefix
...
git-svn-id: trunk@6295 -
2007-02-02 10:38:46 +00:00
tom_at_work
75e343e030
* inline sqrt since it is a mandatory instruction on PPC970 processors (and much faster than the generic routine)
...
git-svn-id: trunk@6286 -
2007-02-01 19:52:09 +00:00
Jonas Maebe
a4a35ced37
* fixed debugging info for local type definitions
...
git-svn-id: trunk@6285 -
2007-02-01 17:31:47 +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
d50bc40cbe
* simplified code generation for paramaddr for a register parameter
...
git-svn-id: trunk@6276 -
2007-01-31 16:36:34 +00:00
Jonas Maebe
1a32e4fdf5
* fixed pushing of words in intel assembler (indirectly related to
...
wrong bug report 7808)
git-svn-id: trunk@6274 -
2007-01-30 21:52:11 +00:00
florian
b16b9d5251
* don't load a spilled register between mov lr,pc mov pc,<reg>
...
git-svn-id: trunk@6273 -
2007-01-30 21:34:26 +00:00
florian
2167655902
* patch from Thorsten Engler submitted in #8235
...
git-svn-id: trunk@6272 -
2007-01-30 19:53:42 +00:00
Jonas Maebe
0650ebe3f2
* fixed tbf/tb0063
...
git-svn-id: trunk@6271 -
2007-01-30 15:53:52 +00:00
Jonas Maebe
9a75d308a8
* fixed missing lineinfo after removing inlining_procedure (missed a "not" in
...
a condition)
git-svn-id: trunk@6270 -
2007-01-30 15:30:47 +00:00
Jonas Maebe
cf508ece4f
* fixed previous commit for -gv
...
git-svn-id: trunk@6267 -
2007-01-29 15:35:12 +00:00
Jonas Maebe
246f75c43a
- removed inlining_procedure global var (artefact from pass_2 inlining)
...
git-svn-id: trunk@6266 -
2007-01-29 15:33:56 +00:00
Jonas Maebe
d6a4fbea47
* removed no longer used allow_only_static global variable
...
git-svn-id: trunk@6265 -
2007-01-29 14:49:28 +00:00
florian
0fd3498892
* fixed longint -> real, was broken in 6153
...
git-svn-id: trunk@6257 -
2007-01-28 21:27:21 +00:00
florian
77b155ea79
* def.size in [1,2,4,8] goes wrong if def.size>255, fixed, resolves #8232
...
git-svn-id: trunk@6245 -
2007-01-28 18:06:51 +00:00
tom_at_work
a0813b42bf
* fixed DWARF debug info for powerpc64/linux, correcting the procedure entry symbol (must be the dotted symbol, not the function descriptor location, otherwise gdb cannot find locals
...
git-svn-id: trunk@6242 -
2007-01-28 12:12:12 +00:00
daniel
e8050233af
+ Patch by Thorsten Engler to optimize string comparisons for = and <> cases. (Mantis #8231 )
...
git-svn-id: trunk@6241 -
2007-01-28 10:58:52 +00:00
florian
c6d3bc813f
* fixes #8229
...
git-svn-id: trunk@6238 -
2007-01-28 08:21:08 +00:00
Jonas Maebe
2ea611e069
* fixed searching fpc.cfg on {$ifdef need_path_search} OS'es
...
git-svn-id: trunk@6237 -
2007-01-27 20:58:26 +00:00
florian
7b39b54951
* set starttime earlier so time stamps don't get messed up
...
git-svn-id: trunk@6228 -
2007-01-27 13:45:49 +00:00
chrivers
997f254ff7
* Fixed crash bug with IMPLEMENTS due to the changes earlier today. (No longer dereferences VtblImplIntf when we should not)
...
git-svn-id: trunk@6221 -
2007-01-26 23:50:09 +00:00
chrivers
0249f07fa9
* Renamed IIOffset to FieldOffset to avoid confusion with IOffset (TImplementedInterface)
...
git-svn-id: trunk@6219 -
2007-01-26 23:03:40 +00:00
Jonas Maebe
da942bdc58
* .NOTPARALLEL target so cycle works with make -j for targets whose
...
rtl makefile has all dependencies properly defined (e.g. darwin)
git-svn-id: trunk@6216 -
2007-01-26 22:46:44 +00:00
tom_at_work
106fe68ce6
* renamed TStringList to TCmdStrList, in general use TCmdStr instead of shortstrings to fix bug #6351
...
git-svn-id: trunk@6215 -
2007-01-26 22:29:39 +00:00
chrivers
0e6348e7b7
* Renamed "fieldoffset" to "iioffset" to avoid confusion with fieldvarsym.fieldoffset
...
git-svn-id: trunk@6214 -
2007-01-26 22:11:39 +00:00
chrivers
83f5a5747c
* Renamed "fieldoffset" to "iioffset" to avoid confusion with fieldvarsym.fieldoffset
...
git-svn-id: trunk@6213 -
2007-01-26 22:11:23 +00:00
chrivers
5e94d3f550
* Updated nobj to match moved iitype field to TImplementedInterface
...
git-svn-id: trunk@6212 -
2007-01-26 22:04:07 +00:00
chrivers
cf04dc0fa1
* Moved iitype iioffset from tobjectdef to TImplementedInterface
...
git-svn-id: trunk@6211 -
2007-01-26 22:01:25 +00:00
chrivers
ceda666d13
* Added several more checks for invalid usage of implements-keyword
...
git-svn-id: trunk@6210 -
2007-01-26 21:58:27 +00:00
ivost
c0e9be49b8
* fixed bug related to IMPLEMENTS keyword. The interface type was stored inside the interface defintion what was wrong! now it's set per TImplementedInterface$
...
* merged IOffset and EntryOffset of TInterfaceEntry. The meaning of IOffset depends now on IType
* to optimize: IOffset and FieldOffset of TImplementedInterface can be merged also! fpc still generate an interfacetable entry even for interfaces that aren't implemented in the current class (redirected by IMPLEMENTS keyword)
git-svn-id: trunk@6206 -
2007-01-26 20:58:46 +00:00
Jonas Maebe
d614eab0fb
* don't call afterconstruction/beforedestruction in case an exception
...
is raised in a constructor (mantis 8222)
git-svn-id: trunk@6202 -
2007-01-26 17:38:53 +00:00
florian
e923c6072d
* handle stack parameters like delphi when using register calling conventions, resolves #8199
...
git-svn-id: trunk@6201 -
2007-01-26 17:38:46 +00:00