Commit Graph

37796 Commits

Author SHA1 Message Date
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
michael
2bb5a1ba7b * Patch from Ludo Brands to test Modified behaviour
git-svn-id: trunk@21876 -
2012-07-11 15:20:11 +00:00
michael
c10901e460 * Patch from Ludo Brands to fix Modified behaviour (bug ID 22381)
git-svn-id: trunk@21875 -
2012-07-11 15:18:37 +00:00
michael
d28eeaee48 * Patch from Ludo Brands to fix late binding for com servers (bug 22378)
git-svn-id: trunk@21874 -
2012-07-11 15:15:28 +00:00
michael
53186644a7 * Added option to fetch all errors
git-svn-id: trunk@21873 -
2012-07-11 15:08:13 +00:00
michael
bcf3dde7eb * Initialize QueryString
git-svn-id: trunk@21872 -
2012-07-11 14:54:26 +00:00
michael
ffc3164594 * Do not decode the URL before passing it on
git-svn-id: trunk@21871 -
2012-07-11 13:54:07 +00:00
michael
8dc7313374 * Added decode parameter to parseuri
git-svn-id: trunk@21870 -
2012-07-11 13:53:25 +00:00
Jonas Maebe
89c230c035 * moved assert handling from second to first pass, so that the code generator
knows that the frame pointer needs to be available (and the code is also
    much simpler this way), fixes test/units/system/tassert7 after r21843

git-svn-id: trunk@21869 -
2012-07-11 11:49:47 +00:00
michael
093748402e * Only one result section for overloaded functions
git-svn-id: trunk@21868 -
2012-07-11 11:15:09 +00:00
michael
789a6452c9 * Implemented overloaded variant of fileage function
git-svn-id: trunk@21867 -
2012-07-11 10:42:23 +00:00
michael
597483610b * Added UniversalTimeToLocal LocalTimeToUniversal as per bug #17435
git-svn-id: trunk@21866 -
2012-07-11 10:15:25 +00:00
michael
64ab9c06d3 * Added GetLocalTimeOffset function
git-svn-id: trunk@21865 -
2012-07-11 09:56:34 +00:00
sergei
21524c56c6 * If subtrahend symbol belongs to current section, generate a RELATIVE relocation instead of PIC_PAIR. Now the corresponding relative expressions in assembler operands compile correctly on all i386 targets (and x86_64 too, although such feature is less important there).
+ Test.

git-svn-id: trunk@21864 -
2012-07-11 09:05:21 +00:00
masta
57b67dfa30 Better SP adjustments on entry/exit for ARM
If the needed adjustment is not expressible in a shifterconst, the old code
loaded a temporary register (fixed to r12) via a_load_const_reg and used it
to adjust the SP. Resulting in:

mov r12, #44
orr r12, r12, #4096
sub sp, sp, r12

The new code will try to split the adjustment into 2 shifterconstants and
will do two seperate adjustments:

sub sp, sp, #44
sub sp, sp, #4096

If that doesn't work we'll fall back to the old code. But that should
happen VERY rarely, only for stacks bigger than 256k which are not
expressible in 2 shifter constants.

git-svn-id: trunk@21863 -
2012-07-11 08:41:45 +00:00
Jonas Maebe
1955255dda * let thlcg.a_call_name() return the tcgpara representing the function
result location (NR_FUNCTION_RESULT_REG is not valid on all platforms)
   o this requires passing the forced function result type (if any) to this
     method
   o a generic, basic thlcg.a_call_name() is now available that sets the
     function result location; can be called by descendants
  * the availability under all circumstances of the correct function return
    type enables g_call_system_proc() on the JVM platform to now determine
    by itself how many stack slots are removed by the call -> do so, instead
    of manually counting them (or forgetting to do so and messing up the
    maximum evaluation stack height calculations)

git-svn-id: trunk@21862 -
2012-07-11 08:25:58 +00:00
Jonas Maebe
aba6923187 * moved g_test_self() from cgobj to hlcgobj
git-svn-id: trunk@21861 -
2012-07-11 08:25:51 +00:00
Jonas Maebe
276a0918f5 * fixed (harmless) class cast error
git-svn-id: trunk@21860 -
2012-07-11 08:25:42 +00:00
pierre
c38b78ba65 + Add missing implementation of pipe syscall
git-svn-id: trunk@21859 -
2012-07-11 07:48:54 +00:00
pierre
ffd01794fb Reserve R25 () register for PIC function calling
git-svn-id: trunk@21857 -
2012-07-10 21:36:00 +00:00
pierre
489b93f2f5 * Overload hlcg.a_call_ref and a_call_reg methods for cdecl'ared functions to use register
git-svn-id: trunk@21856 -
2012-07-10 21:35:11 +00:00
pierre
3f6c3cbb87 * Call hlcg.a_call_ref and a_call_reg instead of cg methods (needed for MIPS cpu)
git-svn-id: trunk@21855 -
2012-07-10 21:34:03 +00:00
sergei
31f9a9d420 * Fixed label name in .globl and .type directives, was causing every library to contain an unwanted dynamic reference to "_start".
git-svn-id: trunk@21854 -
2012-07-10 17:12:34 +00:00
sergei
1112041ff1 * get_pc_addr on x86_64 needs nostackframe attribute to return the correct value.
git-svn-id: trunk@21853 -
2012-07-10 16:54:42 +00:00