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
peter
6058b2c247
* renamed t_times to executionweight and moved it to
...
code generation pass
* include executionweight in the spilling decision
git-svn-id: trunk@9330 -
2007-11-25 16:38:05 +00:00
peter
fcb37c4fa4
* peephole added for non-longint:=non-longint+X
...
git-svn-id: trunk@9329 -
2007-11-25 14:32:59 +00:00
Jonas Maebe
0c06fddb8f
* fixed compilation
...
git-svn-id: trunk@9328 -
2007-11-25 10:20:54 +00:00
sekelsenmat
8476d0af2c
Adds symbian arm target.
...
git-svn-id: trunk@9327 -
2007-11-24 22:04:59 +00:00
Jonas Maebe
0ac6e82c1f
* fixed handling of directories with spaces for LdSupportsNoResponseFile-
...
targets (a.o. darwin) in case no ppas.sh is generated (need to generate
a temporary script in that case as well to use the IFS trick)
* fixed exit code checking of ld when using IFS trick (have to check it
before restoring IFS, otherwise we check the "error result" of this
restoration, which will always be 0)
git-svn-id: trunk@9325 -
2007-11-24 18:06:01 +00:00
Jonas Maebe
d8d393e802
- no longer pass "-read_only_relocs suppress" to the darwin linker when
...
compiling shared libraries as we no longer generate relocations in
read-only sections
git-svn-id: trunk@9323 -
2007-11-24 16:43:47 +00:00
florian
f6e9d133ab
+ x86_64 units for lazarus
...
git-svn-id: trunk@9321 -
2007-11-24 09:21:25 +00:00
Jonas Maebe
b4b069908f
- removed some unnecessary cg. prefixes when calling tcg methods
...
from inside other tcg methods
git-svn-id: trunk@9315 -
2007-11-22 09:03:35 +00:00
Jonas Maebe
80b8494b5c
* fixed wrong unaligned() changes
...
git-svn-id: trunk@9303 -
2007-11-20 12:15:47 +00:00
Jonas Maebe
3b4eba9f86
* fixed handling of unaligned in assignments
...
git-svn-id: trunk@9302 -
2007-11-20 11:59:15 +00:00
peter
cc77ccb52e
* don't use readdata for getbyte/getword/getlongint
...
git-svn-id: trunk@9300 -
2007-11-19 22:52:58 +00:00
peter
241c65d5ec
* optimize fixpath, findfile to not require temp ansistrings
...
* check for verbosity for V_Tried level messages, patches from Sergei Gorelkin
git-svn-id: trunk@9297 -
2007-11-19 22:24:52 +00:00
peter
cb24c78d4d
* typecast to tenumreg before updating usedregs to prevent varset usage, patch from Sergei Gorelkin
...
git-svn-id: trunk@9296 -
2007-11-19 22:22:25 +00:00
peter
f704ee2d70
* remove duplicate temp allocation for register saving
...
* cleanup register saving code by using a procinfo flag if registers
were saved on the stack
git-svn-id: trunk@9293 -
2007-11-18 22:10:10 +00:00
Jonas Maebe
543faa46ad
* do not inline functions/procedures called with things like "nil^"
...
(that can be passed to a const-by-reference or var parameter,
but leads to errors when inlining)
git-svn-id: trunk@9281 -
2007-11-18 14:29:19 +00:00
peter
05e44101e8
* make call by value stdcall for records and arrays delphi compatible
...
git-svn-id: trunk@9280 -
2007-11-18 12:53:55 +00:00
Jonas Maebe
9f04aad33e
* prefer write({short,ansi,wide}string) over write(chararray) for
...
constant strings
git-svn-id: trunk@9279 -
2007-11-18 09:56:25 +00:00
Jonas Maebe
8f187bf6e2
* fixed r9243: that change should only be applied in case both the
...
parasym and the actual parameter are a shortstring rather than
when at least one isn't a shortstring
git-svn-id: trunk@9275 -
2007-11-17 19:58:19 +00:00
yury
4e3547c7bf
* Improved warning "Converting pointers to signed integers may result in wrong comparison results and range errors, use an unsigned type instead.":
...
- check for procedure and class pointers as well;
- do not warn if typecasted pointer is passed as parameter or directly assigned to a variable.
git-svn-id: trunk@9264 -
2007-11-16 13:52:19 +00:00
Jonas Maebe
c8f270c556
+ darwin/x86_64 gprof support
...
git-svn-id: trunk@9252 -
2007-11-14 20:47:55 +00:00
Jonas Maebe
82cf80d4ca
* added missing tcasenode.derefnode override to process all the
...
case-blocks and the else-block
git-svn-id: trunk@9251 -
2007-11-14 19:40:28 +00:00
Jonas Maebe
2e9db26750
* truncate constant shortstrings at the callee side if they are passed
...
to a value parameter with a shorter length, and if they would not be
implicitly passed by reference (if they are passed by reference, then
the callee will perform a shortstring assign which will do the length
truncation). Fixes tarray3 on x86_64
git-svn-id: trunk@9243 -
2007-11-13 20:21:29 +00:00
Jonas Maebe
9f705776c9
* fixed disabling of inlining procedures/functions with nested
...
procedures/functions
git-svn-id: trunk@9232 -
2007-11-13 18:12:25 +00:00
florian
cfed70d698
* removed garbage at the end
...
git-svn-id: trunk@9207 -
2007-11-11 21:26:44 +00:00
florian
246ae7b446
o from Karl-Michael Schindler:
...
* brought german message file up-to-date
git-svn-id: trunk@9206 -
2007-11-11 21:24:55 +00:00
Jonas Maebe
157fc2a3e9
* use -x instead of -s for stripping executables on darwin (-s worked fine on 10.0,
...
was broken on 10.1, fixed in 10.2 and worked fine till 10.4, and has been
deprecated/removed in 10.5; conversely, -x has worked all the time, although it
results in slightly bigger binaries on platforms that also support -s)
git-svn-id: trunk@9204 -
2007-11-11 19:43:41 +00:00