paul
ceb141523d
compiler: store property parameters in a parasymtables together with property. restore those parameters for descendant properties (fixes mantis #0020421 but maybe not very optimal)
...
git-svn-id: trunk@19400 -
2011-10-07 05:58:58 +00:00
florian
4d148382dc
* patch from Ludo Brands: remove po_inline artefact from ancient inlining code in sparc parameter handling, resolves #20397
...
git-svn-id: trunk@19396 -
2011-10-06 18:39:40 +00:00
marco
cf7b43948a
* cmdstr is ansistring now. Running ppc386 "" could cause access of string[1] while length(string)=0
...
git-svn-id: trunk@19394 -
2011-10-06 18:16:12 +00:00
sergei
85f7914906
* Don't generate .seh_endprologue if SEH directives are present in the text of (pure assembler) procedure, as it results in duplicate .seh_endprologue.
...
* Added checks for .seh_endprologue presence and correct position.
git-svn-id: trunk@19388 -
2011-10-06 03:29:35 +00:00
florian
111d05c68f
o patch by Alexander Shishkin, resolves #20409
...
* eliminate warnings in compiler (i386 & i368->x86_64) and minor refactorings
- comment out unused vars and types
- comment out unneeded comparisons (Longword <=> 0)
- suppress some "comparison always true|false" warnings
- tweak visiblity sections
git-svn-id: trunk@19385 -
2011-10-05 20:11:09 +00:00
pierre
4a8b37016a
i386-OpenBSD 4.9 has no underscore prefix
...
git-svn-id: trunk@19377 -
2011-10-04 22:33:13 +00:00
sergei
0db44ae108
+ Support SEH directives in x86_64 AT&T asmreader.
...
git-svn-id: trunk@19366 -
2011-10-04 12:26:41 +00:00
sergei
9eb451756b
+ Support .seh_handler directive
...
git-svn-id: trunk@19365 -
2011-10-04 12:19:24 +00:00
sergei
89c0663c56
+ AT&T asmreader: added methods that can be overridden in descendant readers to handle target-specific directives.
...
git-svn-id: trunk@19364 -
2011-10-04 12:12:06 +00:00
sergei
c6d382fe18
* Moved procedure genlinearlist from ti386casenode to tx86casenode. This optimization works well on x86_64, resulting in approximately twice less instructions than when using generic code.
...
git-svn-id: trunk@19363 -
2011-10-04 11:48:33 +00:00
paul
e0fecf5332
compiler: revert r19358. As stated by Florian, compiler should be able to compile with the latest RTL.
...
git-svn-id: trunk@19360 -
2011-10-04 10:12:49 +00:00
paul
ee2e0a0c1d
compiler: remove CP_xxx constants since they are present in the system unit now
...
git-svn-id: trunk@19358 -
2011-10-04 06:03:03 +00:00
florian
df75368d0b
--- Merging r19281 into '.':
...
U compiler\pdecsub.pas
U compiler\symdef.pas
U compiler\pdecobj.pas
U compiler\htypechk.pas
U compiler\ncal.pas
U compiler\symtable.pas
--- Recording mergeinfo for merge of r19281 into '.':
U .
--- Merging r19282 into '.':
A tests\webtbf\tw19975.pp
--- Recording mergeinfo for merge of r19282 into '.':
G .
git-svn-id: trunk@19343 -
2011-10-03 20:43:19 +00:00
florian
c6a0cafdb0
* don't generate implicit exception frames for pure assembler routines, resolves #20075
...
git-svn-id: trunk@19341 -
2011-10-03 20:09:07 +00:00
florian
7bb1c642dd
* fix division by zero in alignment code, should resolve #20265 an #20240
...
git-svn-id: trunk@19338 -
2011-10-03 16:53:42 +00:00
paul
33a67704ac
compiler: allow type conversions for ordinal types inside type declarations e.g inside enumerations like: Byte(0)..Byte(15)
...
git-svn-id: trunk@19328 -
2011-10-03 01:27:21 +00:00
joost
853f35757d
* Use the same logic for Dwarf-3 and Dwarf-2 output regarding symbol names. Solves problems resolving self in gdb and Dwarf-3.
...
git-svn-id: trunk@19326 -
2011-10-02 16:08:56 +00:00
joost
cd0b2e5288
* Use DW_OP_deref instead of DW_OP_push_object_deref. The latter is not recognized properly by gdb
...
git-svn-id: trunk@19325 -
2011-10-02 08:41:57 +00:00
paul
ff3791d1f3
compiler: emit constants of encoding 0 in CP_NONE/DefaultSystemCodePage encoding (depends on modes witch)
...
git-svn-id: trunk@19302 -
2011-09-30 14:14:58 +00:00
paul
d7ca7a0cba
compiler: emit resource strings in ansistring encoding
...
git-svn-id: trunk@19301 -
2011-09-30 14:14:03 +00:00
paul
7a74d2c2f8
compiler: reduce amount of hints and notes
...
git-svn-id: trunk@19293 -
2011-09-30 08:56:05 +00:00
paul
485695d4e6
compiler, rtl: pass codepage argument to all ansistring str() helpers to return result with correct codepage
...
git-svn-id: trunk@19287 -
2011-09-30 03:26:34 +00:00
florian
9d31a0e2f8
* don't evaluate sizeof(<type param>) as a constant to avoid arithmetic errors in constant folding, resolves #20192
...
git-svn-id: trunk@19285 -
2011-09-29 21:17:44 +00:00
paul
6f185f2184
compiler: replace {$ifdef FPC_FULLVERSION<20700} with {$ifdef VER2_4} for including ccharset as in other compiler places
...
git-svn-id: trunk@19284 -
2011-09-29 14:15:09 +00:00
paul
a769ef0ad2
compiler: don't return te_eual when we convert from RawByteString to another codepage
...
git-svn-id: trunk@19283 -
2011-09-29 12:03:11 +00:00
florian
b93f4b8096
* whitespace fixes
...
* implicitly add PC as base register for symbols
git-svn-id: trunk@19274 -
2011-09-28 20:36:44 +00:00
florian
ce61891ca3
* offset used by A_LDF,A_STF,A_FLDS,A_FLDD,A_FSTS,A_FSTD must be dividable by 4
...
git-svn-id: trunk@19270 -
2011-09-28 19:01:09 +00:00
florian
a6d01c09aa
* make compiler compilable with 2.4.4 rtl
...
git-svn-id: trunk@19269 -
2011-09-28 18:54:32 +00:00
paul
4cf5e36ce7
compiler:
...
- add TTagHashSet class descendant of THashSet with an ability to has also a LongWord value together with key
- change TAsmData.ConstPools[] to be an indexed property to properly initialize ConstPool class, remove pool initialization from all other units
- add ansistring constants to pool together with their encoding to distinct the same text constants with different codepage
+ test
git-svn-id: trunk@19261 -
2011-09-28 01:18:43 +00:00
sergei
6ee77d9088
+ ogelf.pas: support relocation of type R_X86_64_32 which is apparently used by DWARF3 debug info.
...
git-svn-id: trunk@19258 -
2011-09-27 20:38:10 +00:00
florian
d7f7a9bb76
* patch by Alexander Shishkin to clean up $ifopt usage by $push/$pop, resolves #20346
...
git-svn-id: trunk@19256 -
2011-09-27 20:22:40 +00:00
joost
ce01b15c49
* Generate proper Dwarf-debuginfo for DW_AT_vtable_elem_location, containing
...
a Dwarf-block that evaluates the location of a method within the vmt.
The vmtindex as it was used is is only used by older GCC versions and does
not work with a Pascal VMT.
git-svn-id: trunk@19253 -
2011-09-27 15:48:52 +00:00
sergei
4c21beb48e
win64 unwinding, misc fixes:
...
* Insert seh_endprologue directive after the last prologue instruction, not before it
* Omit seh_stackalloc for zero bytes
* (For now) ignore SEH directives in NASM and MASM writers, instead of failing with internal error.
git-svn-id: trunk@19246 -
2011-09-26 13:55:21 +00:00
sergei
d94460e3b3
* Made the x86-specific scalefactor optimization of tvecnode available on x86_64 as well, by moving update_reference_reg_mul method from ti386vecnode to newly introduced tx86vecnode.
...
git-svn-id: trunk@19245 -
2011-09-26 12:58:59 +00:00
pierre
1f0e5b496f
Try to support shared libraries for freebsd
...
git-svn-id: trunk@19242 -
2011-09-26 10:25:27 +00:00
paul
5560f6b3f2
compiler + rtl: pass codepage to fpc_CharArray_To_AnsiStr to get the preserve the codepage of result string
...
git-svn-id: trunk@19240 -
2011-09-26 04:49:09 +00:00
florian
4868b09844
* patch by alexvin to replace $ifopt by $push/$pop, resolves #20332
...
git-svn-id: trunk@19239 -
2011-09-25 21:19:50 +00:00
Jonas Maebe
2b11fd2bef
* cpus that only understand Thumb-2 don't support "blx <imm>"
...
git-svn-id: trunk@19238 -
2011-09-25 20:44:39 +00:00
pierre
ccb0595971
* Extend global label for smart linked objects to bsd systems
...
git-svn-id: trunk@19236 -
2011-09-25 19:30:35 +00:00
pierre
ee67e124ee
+ Add systems_XXXbsd sets
...
git-svn-id: trunk@19235 -
2011-09-25 19:29:14 +00:00
Jonas Maebe
d714eeb84b
* give a proper error when a type identifier is missing in a
...
class operator declaration (mantis #19213 )
git-svn-id: trunk@19226 -
2011-09-25 14:38:06 +00:00
paul
6266b88b74
compiler: fix string const conversion from one codepage to another
...
git-svn-id: trunk@19222 -
2011-09-25 06:41:59 +00:00
florian
5fa184c952
+ patch by Jeppe Johansen to make use of the div/udiv instruction on arm7m, resolves #20022
...
* explicitly make symbol addressing PC relative
git-svn-id: trunk@19221 -
2011-09-24 21:41:01 +00:00
florian
cb647d875c
* avoid mistakes with unimplemented sqr function on architectures with no softfloat support
...
git-svn-id: trunk@19218 -
2011-09-24 21:17:09 +00:00
paul
7a998aec3a
compiler, rtl: add a codepage argument fpc_Read_Text_AnsiStr to create new AnsiString with the codepage of passed AnsiString argument
...
git-svn-id: trunk@19210 -
2011-09-24 17:43:30 +00:00
paul
00396da30c
compiler: cleanup
...
git-svn-id: trunk@19208 -
2011-09-24 17:41:13 +00:00
sergei
b997094755
+ Generate unwind bytecode for function prologues on win64.
...
* For now placed actual processing of unwind info under {$ifdef TEST_WIN64_UNWIND}, because in the current state it doesn't add much value.
git-svn-id: trunk@19200 -
2011-09-23 21:22:25 +00:00
Jonas Maebe
dff5ac3b0a
* don't allow passing a field of a record that's not an lvalue as
...
var-parameter, nor allowing taking its address (mantis #20095 )
git-svn-id: trunk@19199 -
2011-09-23 21:21:49 +00:00
florian
a5cdc0cdde
* changed check introduced in r19193 into the same method as other locations in nadd.pas do
...
git-svn-id: trunk@19197 -
2011-09-23 20:34:10 +00:00
florian
bba726ae78
* don't do x*x -> sqr(x) optmization for arm softfloat
...
git-svn-id: trunk@19193 -
2011-09-23 17:23:35 +00:00