Commit Graph

38069 Commits

Author SHA1 Message Date
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
pierre
bb7f443c53 Use two parameter version of get_caller_frame
git-svn-id: trunk@21896 -
2012-07-12 09:12:02 +00:00
pierre
c89992f6bb Regenerate after change: Add ../compiler/mips unit directory for mipsel
git-svn-id: trunk@21895 -
2012-07-12 09:11:05 +00:00
pierre
2566809146 Add ../compiler/mips unit directory for mipsel
git-svn-id: trunk@21894 -
2012-07-12 09:10:39 +00:00
pierre
ecddfb7838 + Added FPC_LOCALS_ARE_STACK_REG_RELATIVE system macro for MIPS cpu
git-svn-id: trunk@21893 -
2012-07-12 08:54:06 +00:00
michael
8e00e50965 * Fix 64-bit compilation (Bug ID 21874)
git-svn-id: trunk@21892 -
2012-07-12 08:42:06 +00:00
michael
1f25547903 * Fixed compilation (mantis #22413)
git-svn-id: trunk@21891 -
2012-07-12 08:37:40 +00:00
masta
f9cdf3d4ca Be more specific in spilling debug messages
Output "Spilling: " instead of "XXX: " in front of spilling debug
messages. This makes the output easier to process.

git-svn-id: trunk@21890 -
2012-07-12 01:11:29 +00:00
masta
e2a744e19b Consolidate do_spill_read/do_spill_written on arm
ARM can not reference an arbitrary offset so it needs some special
handling if the offset goes beyond abs(4095).

The code for do_spill_read and do_spill written used to be very similar.
I've partially factored out the code into spilling_create_load_store.

The former code loaded the offset from a constant pool, which is a waste
of memory-bandwidth and cache lines. The new code tries to find a way to
adjust the baseregister so the memory location can be reached more
easily, this allows us to handle at least +-1MB with just a single
additional ADD or SUB instruction. If that fails we'll resort to the normal
constant loading code, which on it's own will fallback to loading the
constant from a constant-pool.

So instead of:
ldr r1, =16388
ldr r0, [r13, r1]

which will at least uses 4 cycles (2 Instruction cycles + 2 stall
cycles) on most cores.

We try to generate:
add r1, r13, #16384
ldr r0, [r1, #4]

which most armv5+ cores will execute in 2 cycles. We'll also save on
DCache usage.

git-svn-id: trunk@21889 -
2012-07-12 01:11:23 +00:00
pierre
bf8ec92b5c * Use two parameter get_caller_frame function to get correct result on mips
git-svn-id: trunk@21888 -
2012-07-11 22:17:37 +00:00
pierre
324c5ad29d * Use two parameter get_caller_frame function to get correct result on mips
git-svn-id: trunk@21887 -
2012-07-11 22:16:49 +00:00
pierre
d93282e16d Values of TIOGWINSZ, TIOCSWINSZ, TIOCGPGRP and TIOCSPGRP for mipsel
git-svn-id: trunk@21886 -
2012-07-11 22:15:54 +00:00
florian
701a5d76bb * remove unneeded movs
git-svn-id: trunk@21885 -
2012-07-11 20:58:52 +00:00
Jonas Maebe
d6066ed51a * fixed compilation for i386/m68k after r21878/21879
git-svn-id: trunk@21884 -
2012-07-11 17:41:18 +00:00
sergei
083f0a7137 + Added a flag to tarobjectreader constructor that allows it to work as regular tobjectreader if archive signature is missing.
git-svn-id: trunk@21883 -
2012-07-11 17:39:36 +00:00
michael
a8e634d506 * Added option to remove brackets from menu header From AndrewH (Bug ID 21676)
git-svn-id: trunk@21882 -
2012-07-11 17:13:40 +00:00
michael
153f59a38a * Fixed bug ID #22045
git-svn-id: trunk@21881 -
2012-07-11 16:51:50 +00:00
michael
8eeb22720b * Added GetLoadErrorStr function by Mark Morgan Loyd (Bug ID 22321)
git-svn-id: trunk@21880 -
2012-07-11 15:31:09 +00:00
Jonas Maebe
be8f8fec76 * converted tcg.g_releasevaluepara_openarray() to thlcg
git-svn-id: trunk@21879 -
2012-07-11 15:23:18 +00:00
Jonas Maebe
9197ce100e * converted tcg.g_copyvaluepara_openarray() to thlcg
git-svn-id: trunk@21878 -
2012-07-11 15:23:08 +00:00
Jonas Maebe
596d359e02 * use current code page when converting ansichar to unicodestring
git-svn-id: trunk@21877 -
2012-07-11 15:22:31 +00:00