Jonas Maebe
3798b79fd7
+ optimization that (re)orders instance fields of Delphi-style classes in
...
order to minimise memory losses due to alignment padding. Not yet enabled
by default at any optimization level, but can be (de)activated separately
via -Oo(no)orderfields
o added separate tdef.structalignment method that returns the alignment
of a type when it appears in a record/object/class (factors out
AIX-specific double alignment in structs)
o changed the handling of the offset of a delegate interface
implemented via a field, by taking the field offset on demand
rather than at declaration time (because the ordering optimization
causes the offsets of fields to be unknown until the entire
declaration has been parsed)
git-svn-id: trunk@21947 -
2012-07-22 16:47:19 +00:00
michael
5b3026d0ce
* Keep variable information in a more structured way
...
git-svn-id: trunk@21946 -
2012-07-22 14:57:30 +00:00
florian
9672f0537a
* handle exports with a name consisting of a single character correctly
...
git-svn-id: trunk@21945 -
2012-07-22 14:23:09 +00:00
sergei
06844fdb23
* Entirely moved relocation fixup functionality from TObjSection to TExeOutput.
...
git-svn-id: trunk@21944 -
2012-07-22 07:21:11 +00:00
michael
1c894ba71d
* Fixed last known access violations
...
git-svn-id: trunk@21942 -
2012-07-21 08:54:35 +00:00
florian
e10a95bf16
- removed unneeded firstcomplex calls, pass_left_right calls already firstcomplex
...
git-svn-id: trunk@21941 -
2012-07-21 07:09:06 +00:00
sergei
2bc792fe97
* TObjData.FName made protected.
...
* Allow EntryName to remain unspecified.
git-svn-id: trunk@21940 -
2012-07-20 12:50:21 +00:00
michael
34c126a2d0
* Fix access violation in case statement
...
git-svn-id: trunk@21939 -
2012-07-19 16:39:01 +00:00
michael
cd01ae3bd0
* Fixed compilation and finalization
...
git-svn-id: trunk@21938 -
2012-07-19 06:29:38 +00:00
michael
252c2bbc83
* FormatMessageA -> FormatMessage (W version)
...
git-svn-id: trunk@21937 -
2012-07-18 09:17:30 +00:00
michael
8a9bd38cd7
* Copied non-sysutils solution of win32/64
...
git-svn-id: trunk@21936 -
2012-07-18 07:38:21 +00:00
michael
78bfc145c1
* No SysErrorMessage on WinCE ?
...
git-svn-id: trunk@21935 -
2012-07-18 07:36:24 +00:00
michael
f5e36a8510
* Fixed memory leak with unary expressions
...
git-svn-id: trunk@21934 -
2012-07-17 23:43:25 +00:00
michael
f6662b7f3c
* Fixed memory leak
...
git-svn-id: trunk@21933 -
2012-07-17 23:18:03 +00:00
michael
09275660d8
* Fix access violation when file not found. Better GetCurColumn
...
git-svn-id: trunk@21932 -
2012-07-17 22:47:04 +00:00
michael
60022280f0
* Test case for undefine and define
...
git-svn-id: trunk@21931 -
2012-07-17 22:39:22 +00:00
michael
8b8ccb9e05
* Fixed $UNDEF
...
git-svn-id: trunk@21930 -
2012-07-17 22:38:04 +00:00
michael
113c97a306
* Some more reference count fixes
...
git-svn-id: trunk@21929 -
2012-07-17 21:51:13 +00:00
florian
0e9139c914
* retrieve stack size correctly
...
git-svn-id: trunk@21928 -
2012-07-17 20:14:15 +00:00
florian
f6f6df2780
* removed line breaks
...
git-svn-id: trunk@21927 -
2012-07-17 20:13:21 +00:00
florian
a6a1f2a0a1
* properly retrieve the stacktop on win64
...
git-svn-id: trunk@21926 -
2012-07-17 19:47:35 +00:00
Jonas Maebe
6cc78635d7
* send full x/y ansi position information in case of an X-coordinate
...
overflow (don't know what the y-coordinate is at that point, because the
window may be wider than the artificial screenwidth) (mantis #20880 )
git-svn-id: trunk@21925 -
2012-07-17 18:03:23 +00:00
Jonas Maebe
408f459f5a
* the code generator bugs referred to in r21921 weren't completely fixed yet
...
after all, although for some reason the problems only showed up with the
external assembler on x86-64 platforms other than Darwin. Now we never use
GOT entries on x86-64 anymore for local symbols, regardless of their nature,
and instead use plain RIP-relative addressing for them.
git-svn-id: trunk@21924 -
2012-07-17 14:36:37 +00:00
sergei
684bf4fba2
+ Reject object types without VMT as arguments of typeof(). Without this check, an undefined reference to VMT is generated which fails at the linking stage.
...
git-svn-id: trunk@21923 -
2012-07-17 05:46:55 +00:00
michael
a4be3f17d7
* Fixed release problem and except (reported by Seth Grover)
...
git-svn-id: trunk@21922 -
2012-07-16 20:52:22 +00:00
Jonas Maebe
5e93f6b70f
- reverted r1733, which caused all local procedures to become global in case
...
PIC was used. This was probably a workaround for a code generator bug,
which is no longer required
git-svn-id: trunk@21921 -
2012-07-16 15:22:14 +00:00
michael
955a90c4db
* Time is in 24 hours time
...
git-svn-id: trunk@21920 -
2012-07-16 13:24:23 +00:00
florian
a5754ed02b
* more robust get_caller_frame and get_caller_addr for win32 which has always a valid StackTop value
...
git-svn-id: trunk@21919 -
2012-07-15 21:36:06 +00:00
florian
3a9e3991be
* the switch -Oouseebp allows the i386 compiler to use ebp as normal register
...
the drawback of this is that get_caller_frame and get_caller_addr might not work
anymore because they make the wrong assumption (i.e. not required by the abi)
that ebp contains always a valid (not necessarily the current) frame pointer
git-svn-id: trunk@21918 -
2012-07-15 19:23:36 +00:00
Jonas Maebe
b1d00b66ac
* fixed internalerror after invalid type node in subscript node
...
(mantis #22395 )
git-svn-id: trunk@21917 -
2012-07-15 18:17:29 +00:00
florian
a38be24672
* get rid of tabs with wrong size
...
git-svn-id: trunk@21916 -
2012-07-15 16:56:11 +00:00
michael
7a1d4dfe72
* Fix parsing uses unit in filename, added library parsing and exports sections
...
git-svn-id: trunk@21915 -
2012-07-15 16:55:18 +00:00
Jonas Maebe
07ebc51b6c
* always store generics token streams in little endian, so we don't have to
...
keep a separate field for each tstoreddef that records whether the
endianness needs to be swapped
git-svn-id: trunk@21914 -
2012-07-15 16:09:14 +00:00
florian
25b80bedf9
* get rid of tabs with wrong size
...
git-svn-id: trunk@21913 -
2012-07-15 14:04:50 +00:00
florian
3d76823929
* load StackTop and StackBottom correctly on windows, also in libraries
...
git-svn-id: trunk@21912 -
2012-07-15 14:03:45 +00:00
masta
aa4fe66153
Fix ARM ASM-reader for MVN/CMP/CMN/TST/TEQ
...
Like MOV these instructions support 2 operands, with the second beeing a
shifterop.
Without this patch the asm reader would fail on something like
cmp r0, r1, lsr 16
with
Error: Unknown identifier "LSR"
git-svn-id: trunk@21911 -
2012-07-15 01:03:08 +00:00
michael
607b86f582
* Parse program without program header and with complete header
...
git-svn-id: trunk@21910 -
2012-07-13 18:17:52 +00:00
michael
f32b9fd572
* Use container to create statement elements so they get sourcefile information
...
git-svn-id: trunk@21909 -
2012-07-13 13:37:39 +00:00
Tomas Hajny
2bcfe75ea8
* correction for copy&paste error in previous commit
...
git-svn-id: trunk@21908 -
2012-07-12 23:32:51 +00:00
Tomas Hajny
4dccf2d321
* GetLoadErrorStr implemented
...
git-svn-id: trunk@21907 -
2012-07-12 23:30:19 +00:00
Jonas Maebe
7717e43929
* moved setting the call result to a separate method, so it can still be
...
used across multiple levels of inheritance such as on MIPS (and the code
has to be reusable for a_call_ref/reeg in the future anyway)
git-svn-id: trunk@21906 -
2012-07-12 20:56:25 +00:00
sergei
e5ee1c9f67
* Don't access tcfilestream.size 3 times in sequence, as each access costs two seeks (syscalls).
...
+ made size of tobjectreader data available via property.
git-svn-id: trunk@21905 -
2012-07-12 16:10:34 +00:00
pierre
dd59db1bba
* Set retun value of get_frame method to nil
...
git-svn-id: trunk@21904 -
2012-07-12 14:16:24 +00:00
Jonas Maebe
56fcc87cb2
* add get_frame as an internal symbol for the jvm target because that target
...
defines INTERNAL_BACKTRACE (which assumes get_frame to be internal rather
than a system unit procedure)
* changed fpc_assert() declaration for jvm to be the same as for other
targets, so the same code can be used to call it in ninl now that's
called from the first pass
git-svn-id: trunk@21903 -
2012-07-12 13:25:02 +00:00
pierre
54bfc8156d
Fix termios constants for mips cpu, mostly using octal prefix
...
git-svn-id: trunk@21902 -
2012-07-12 13:11:13 +00:00
pierre
68c8383254
Add support for binary/octal/hexadecimal constants
...
git-svn-id: trunk@21901 -
2012-07-12 13:09:32 +00:00
pierre
a311c53167
Replace HandleErrorFrame calls by HandleErrorAddrFrameInd where possible in common code (to allow correct backtrace for mips cpu)
...
git-svn-id: trunk@21900 -
2012-07-12 11:53:59 +00:00
pierre
ca8cc759ac
Add HandleErrorAddrFrameInd to restore same behavior for RTEs as for 2.6.0, i.e. avoid an additional line at fpc_XXX level in stack dump
...
git-svn-id: trunk@21899 -
2012-07-12 10:19:58 +00:00
pierre
edcb02b571
Use need system macro FPC_LOCALS_ARE_STACK_REG_RELATIVE for mips support
...
git-svn-id: trunk@21898 -
2012-07-12 09:15:20 +00:00
pierre
426d21fbd1
Use need system macro FPC_LOCALS_ARE_STACK_REG_RELATIVE for mips support
...
git-svn-id: trunk@21897 -
2012-07-12 09:13:31 +00:00