Jonas Maebe
2adb00ac45
* enabled operand size checking (don't know why it was disabled,
...
but enabling it lets the compiler catch the error in tbf/tb0037
and causes no regressions)
git-svn-id: trunk@9465 -
2007-12-15 22:30:23 +00:00
Jonas Maebe
146b3d8bf3
* fixed location.size for length node and x86_64 mul node
...
git-svn-id: trunk@9464 -
2007-12-15 19:27:24 +00:00
Jonas Maebe
124c6c0c13
* always let mangled names start with an underscore on Mac OS X, because
...
otherwise the linker does not generate the necessary debug map
information for global variables when using dwarf
git-svn-id: trunk@9447 -
2007-12-14 18:00:35 +00:00
florian
8f17101039
* allow application of as operator only to interfaces having a guid, resolves #6797
...
git-svn-id: trunk@9436 -
2007-12-12 21:07:47 +00:00
Jonas Maebe
0a53dddc99
* fixed vmt format type definition
...
git-svn-id: trunk@9429 -
2007-12-11 19:40:00 +00:00
peter
b5e417bd19
* increase the temp requirements for saving MM registers with the full
...
size of an OS_VECTOR so that we can do the alignment based on the offset
after the allocation is done. Using the size is not possible because the
temp alignment can be smaller than the OS_VECTOR requirement
git-svn-id: trunk@9428 -
2007-12-11 19:39:05 +00:00
Jonas Maebe
ead754c2c3
* write name of "self" as "this", so you can use plain field names inside
...
methods in gdb without having to write "self.fieldname" (self is also
still recognised by gdb, that's built in)
git-svn-id: trunk@9427 -
2007-12-11 18:55:48 +00:00
Jonas Maebe
47d221ee7f
* dsymutil under darwin "smart links" dwarf info -> make sure we
...
use the DW_TAG_typedef entries, because without them a type is
only locally visible in the file where it is declared (see
comments)
git-svn-id: trunk@9426 -
2007-12-11 13:10:39 +00:00
Jonas Maebe
f50d9cb9cb
* finish the lineinfo table with a DW_LNE_set_address of the last
...
instruction of the function, like in the example in the dwarf2
specifications appendix 3 and as done by gcc (expected by Apple's
dsymutil)
git-svn-id: trunk@9425 -
2007-12-10 22:09:12 +00:00
Legolas
27eb735d24
* Resized stack value for NDS
...
* Changes to prt0:
+ Added argv support
* New function calls
git-svn-id: trunk@9424 -
2007-12-10 17:06:14 +00:00
Jonas Maebe
974c240266
* also use sse2 instructions to convert int to real on i386
...
for (types convertable to) longint
* fixed expectloc for x86_64 int_to_real if result is in mmreg
git-svn-id: trunk@9423 -
2007-12-09 18:10:23 +00:00
Jonas Maebe
444ba107f8
* fixed location.size for divmodn (in particular the sign)
...
git-svn-id: trunk@9422 -
2007-12-09 18:06:44 +00:00
Jonas Maebe
91e0e5db17
* avoid some superfluous memory accesses when converting a double
...
precision/comp value in an fpu register to an sse value
git-svn-id: trunk@9420 -
2007-12-08 22:59:24 +00:00
Jonas Maebe
814e983c98
* optimize intvar*(-1) to -intvar
...
git-svn-id: trunk@9418 -
2007-12-08 16:41:28 +00:00
Jonas Maebe
24f8249f36
* flush pending local switch changes before evaluating ifopt
...
(mantis #10350 )
git-svn-id: trunk@9413 -
2007-12-07 18:24:57 +00:00
Jonas Maebe
742ff35c48
+ also optimize assignments from calls to by-reference "results":
...
o it's a by-reference parameter, but ignore that since it's
guaranteed to be safe because of the escape analysis
o it's wrapped in an absolute type conversion -> added
actualtargetnode method to tnode which digs through that
git-svn-id: trunk@9412 -
2007-12-07 17:58:25 +00:00
Jonas Maebe
d46b433778
* move conversions of winlinke widestring, variant and records/arrays-
...
with-init-info assignments into helper calls from
tassignmentnode.pass_typecheck to pass_1 so they can be optimised
in more cases (patch from Sergei Gorelkin)
git-svn-id: trunk@9410 -
2007-12-07 15:52:12 +00:00
Jonas Maebe
f38e190892
* don't substitute the result variable of an inlined function with
...
a regable variable, because this result variable of the inlined
function may not be regable + test (mantis #10371 )
git-svn-id: trunk@9409 -
2007-12-07 13:29:16 +00:00
florian
57acf67659
+ constant unicodestrings
...
git-svn-id: trunk@9385 -
2007-12-02 20:43:08 +00:00
peter
6b06d551a1
* don't fail on -Cg- for platforms that do not support PIC
...
git-svn-id: trunk@9383 -
2007-12-02 18:29:27 +00:00
florian
5c96c4a671
+ first part of support for an unicodestring type
...
git-svn-id: trunk@9382 -
2007-12-02 16:39:13 +00:00
Jonas Maebe
154601b41d
* don't handle dynamic arrays using fpc_copy_proc(), because it
...
takes the address of its parameters and a dynamic array can
be in a register (e.g. as function result, mantis #10320 )
git-svn-id: trunk@9381 -
2007-12-02 15:58:48 +00:00
Jonas Maebe
95f00eb633
* fixed x86_64 and non-darwin i386 GOT/GOTPCREL parsing after r9366
...
(I put that code in a separate method because it appeared in two
places, but in one of the two places it was buggy and apparently
never triggered, and I copied that part...)
git-svn-id: trunk@9379 -
2007-12-02 11:13:51 +00:00
sekelsenmat
38048fd073
Small fix for symbian arm target.
...
git-svn-id: trunk@9376 -
2007-12-02 08:27:18 +00:00
Jonas Maebe
5196db1ac3
* fixed low(set)/high(set) after previous changes + test
...
git-svn-id: trunk@9371 -
2007-12-01 17:16:33 +00:00
Jonas Maebe
527190a875
+ relsymbol support for intel asm reader
...
git-svn-id: trunk@9368 -
2007-12-01 14:26:24 +00:00
Jonas Maebe
3f57d681e1
* check that not more than one relsymbol is used
...
git-svn-id: trunk@9367 -
2007-12-01 14:26:06 +00:00
Jonas Maebe
df2980f0c0
+ relsym support
...
* give an error message when using @GOT in darwin/i386 assembler code
(have to use a relsym instead)
git-svn-id: trunk@9366 -
2007-12-01 11:59:37 +00:00
Jonas Maebe
46e1bec6de
* forgot to commit in previous revision
...
git-svn-id: trunk@9365 -
2007-12-01 11:53:50 +00:00
Jonas Maebe
18eb495d0f
* give a regular error message instead of an internal error on x86
...
when using non-PIC references in assembler code when the compiler
is configured to generate PIC code (on ppc, sparc and arm, no
error message is given at all currently)
git-svn-id: trunk@9364 -
2007-12-01 11:28:15 +00:00
Jonas Maebe
feec2a74f2
* fixed crashes with length(pchar) and length(pwidechar) after
...
r9360-r9361
git-svn-id: trunk@9363 -
2007-12-01 10:38:22 +00:00
Jonas Maebe
1380a64b1e
+ simplify support for inline nodes (needed for inlining, because
...
otherwise you get internalerrors, e.g. when an assigned() expression
becomes constant)
* fixed length for constant strings in case of multi/single byte string
conversions
* fixed memory leak in constant evaluation of in_abs_long
git-svn-id: trunk@9361 -
2007-11-30 23:47:49 +00:00
Jonas Maebe
aaa484aa59
* removed goto's from tinlinenode.pass_typecheck and removed some other
...
old no longer needed code from it
git-svn-id: trunk@9360 -
2007-11-30 20:47:38 +00:00
Jonas Maebe
bbca8ee012
* perform 32x32 to 64 multiplication in two more situations (u8bit and
...
u16bit can be converted to s32bit without any problems)
git-svn-id: trunk@9357 -
2007-11-30 17:55:20 +00:00
Jonas Maebe
6c536dab3e
* added several missing make_simple_ref() calls
...
* removed addr_pic again for darwin, as you have to explicitly code
the relative address using a relsym instead of using an assembler
directive like @GOT there
git-svn-id: trunk@9353 -
2007-11-29 22:06:14 +00:00
Jonas Maebe
5a7809394e
* fixed addr_pic check (symbol-relsymbol is also always
...
position-independent)
git-svn-id: trunk@9352 -
2007-11-29 21:50:01 +00:00
peter
cbac667753
* check for eax,edx,ecx,ebx that support 8,16 bit registers in shortint add/sub peephole
...
and update register size of substructor
git-svn-id: trunk@9351 -
2007-11-29 21:16:32 +00:00
peter
dbba46c0e4
* set addr_pic
...
git-svn-id: trunk@9350 -
2007-11-29 21:15:22 +00:00
peter
f0e804beb7
* typecast fix
...
git-svn-id: trunk@9349 -
2007-11-29 21:15:08 +00:00
peter
95772c5cd3
* remove $ifdef extedbug for pic address check
...
git-svn-id: trunk@9348 -
2007-11-29 21:14:47 +00:00
Jonas Maebe
96180029b2
* perform 4 instead of 8 byte copies at a time if source or dest is
...
unaligned
* use integer instead of floating point for 8 byte copies because the
integer unit has lower latency
git-svn-id: trunk@9347 -
2007-11-29 17:18:52 +00:00
Jonas Maebe
bc545b077f
- removed internalerror in case a subsetref value is loaded on a cpu
...
which requires proper alignment (they have to support unaligned accesses
in their a_load_*_* routines)
git-svn-id: trunk@9346 -
2007-11-29 12:59:05 +00:00
Jonas Maebe
31764a0e3b
+ unaligned support in a_load_reg_ref and a_load_ref_reg for ppc64
...
(only needs it in case a 64 bit value is loaded from an address
with alignment < 4 bytes)
git-svn-id: trunk@9345 -
2007-11-29 12:56:31 +00:00
yury
99a8012472
* Allow using constants in {$IF } directive in OBJFPC mode.
...
* Define FPC_OBJFPC_EXTENDED_IF to allow to test if this feature can be safely used.
git-svn-id: trunk@9342 -
2007-11-28 00:07:18 +00:00
yury
a477a3781a
* Added support of HIGH() function in {$IF } preprocessor directive. Delphi 7 supports HIGH() there.
...
git-svn-id: trunk@9341 -
2007-11-27 23:58:53 +00:00
Jonas Maebe
2a767fc893
* fixed powerpc32 compilation after r9331
...
git-svn-id: trunk@9336 -
2007-11-26 11:14:07 +00:00
Jonas Maebe
26930be303
* fixed non-x86 compilation after r9333
...
git-svn-id: trunk@9335 -
2007-11-26 11:13:42 +00:00
florian
fb8bbd5ff0
+ inline abs(<longint>) on x86
...
git-svn-id: trunk@9333 -
2007-11-25 18:54:40 +00:00
marco
1a34960b53
* asmscript stuff under if ldnoresponsfile. Fixes FreeBSD breakage
...
git-svn-id: trunk@9332 -
2007-11-25 18:08:08 +00:00
peter
59365a6db9
- garbage was being output sometimes instead of source lines when compiling with -al. This is because lastfileinfo and lastinfile were never initialized for MASM writer. This is true for TPPCMPWAssembler, too.
...
- long lines were not wrapped.
- constants of type ait_comp_64bit output incorrectly.
- at end of file, current segment was not closed.
patch from Sergei Gorelkin
git-svn-id: trunk@9331 -
2007-11-25 16:46:19 +00:00