yury
319d92fe9a
* Release register of by value parameter after making its local copy. It fixes bug when local stack location is referenced using big (>4k) PC relative offset by ARM CPU. In this case temp register is needed and wrong temp register is allocated.
...
git-svn-id: trunk@5488 -
2006-11-26 14:42:17 +00:00
yury
2fd4be4637
* Additionally check procedure's para_stack_size before doing stackframe optimization. It handles the case when a parameter is passed partially in registers and partially in the stack.
...
git-svn-id: trunk@5486 -
2006-11-26 13:22:11 +00:00
yury
96bfb7ce97
* don't destroy both r11 and r13 when copying data.
...
git-svn-id: trunk@5485 -
2006-11-26 13:18:27 +00:00
yury
d4335749ec
* reverted r5481. That order of instructions can be executed more effectively on newer ARM CPUs.
...
git-svn-id: trunk@5484 -
2006-11-26 11:42:29 +00:00
florian
01a20b25a2
* don't reuse registers
...
git-svn-id: trunk@5483 -
2006-11-26 11:11:14 +00:00
yury
35b1014207
* more usual order of instructions.
...
git-svn-id: trunk@5481 -
2006-11-26 10:06:12 +00:00
florian
d47dc38f2c
* ignore PIC directive on windows and warn about it
...
git-svn-id: trunk@5479 -
2006-11-25 22:58:52 +00:00
florian
f8072062bc
* update german error files by Karl-Michael Schindler
...
git-svn-id: trunk@5478 -
2006-11-25 21:49:13 +00:00
florian
6118c3e477
* fixed assembling of movd with 64 bit registers
...
* fixed passing of floats to c varargs
git-svn-id: trunk@5477 -
2006-11-25 20:32:32 +00:00
florian
b77a5016ca
* don't destroy r13 when copying data
...
git-svn-id: trunk@5470 -
2006-11-24 21:55:23 +00:00
yury
a4407d5ad2
* fixed insertpcrelativedata when case jump table is used.
...
git-svn-id: trunk@5468 -
2006-11-24 13:40:49 +00:00
yury
e94277d5dc
* removed unneeded label.
...
* asm output beautification.
git-svn-id: trunk@5467 -
2006-11-24 13:20:32 +00:00
florian
964a98edca
* fixed spilling with large offsets
...
git-svn-id: trunk@5463 -
2006-11-23 19:49:27 +00:00
Jonas Maebe
1c8dc092b2
* create fpc_write* length/frac parameters as s32inttype to match the
...
declaration in the system unit for 64 OS'es
git-svn-id: trunk@5462 -
2006-11-23 16:40:20 +00:00
Jonas Maebe
f4cb8c1bef
* fixed case for ppc64 with 64 bit values
...
git-svn-id: trunk@5461 -
2006-11-23 16:18:31 +00:00
yury
70b5d41d5c
* optimized case jump table generation for ARM.
...
git-svn-id: trunk@5458 -
2006-11-23 00:55:16 +00:00
yury
187c71ac18
* fixed and enabled case jump table generation for ARM.
...
git-svn-id: trunk@5446 -
2006-11-22 12:16:33 +00:00
yury
61f0f0b793
* define FPC_DOUBLE_HILO_SWAPPED for ARM CPU if needed to properly handle doubles in RTL.
...
git-svn-id: trunk@5439 -
2006-11-21 21:24:01 +00:00
yury
5ceef96cf3
* fixed double parameters passing and storing result for ARM in softfloat mode (by removing old hacks).
...
git-svn-id: trunk@5438 -
2006-11-21 21:20:24 +00:00
yury
257a76d6c8
* finally fixed case code generation for ARM.
...
git-svn-id: trunk@5437 -
2006-11-21 21:16:25 +00:00
florian
ab919747a6
* several m68k fixes
...
* push_value_para partially cleaned up
git-svn-id: trunk@5435 -
2006-11-20 22:13:49 +00:00
Jonas Maebe
c0d46e65ee
* (finally) fixed tests/test/trangeob.pp
...
git-svn-id: trunk@5434 -
2006-11-20 22:03:08 +00:00
micha
09c8d571a6
* fix shared library linking for linux (issue #7849 , patch from Dominique Leducq)
...
git-svn-id: trunk@5433 -
2006-11-20 19:24:20 +00:00
Jonas Maebe
c54e49d428
* fixed range check errors
...
git-svn-id: trunk@5432 -
2006-11-20 13:15:30 +00:00
florian
2b7fb31a9e
* return float values in fpu registers only in non emulation mode
...
git-svn-id: trunk@5429 -
2006-11-19 22:25:23 +00:00
florian
28c5578976
* don't generate vmt for a generic
...
git-svn-id: trunk@5428 -
2006-11-19 22:07:28 +00:00
florian
0d38bda5c4
* small m68k-linux fixes
...
git-svn-id: trunk@5427 -
2006-11-19 21:51:20 +00:00
Jonas Maebe
a15e5dc61c
* always call tobject.create/free in MacPas mode for new/dispose constructs
...
(since macpas methods may accidentally be called like that as well,
as it doesn't have any constructors/destructors)
+ some tests for MacPas objects from the GNU Pascal testsuite
git-svn-id: trunk@5421 -
2006-11-18 13:36:38 +00:00
florian
81726e85d7
* properties can be also passed to formal const parameters
...
git-svn-id: trunk@5419 -
2006-11-18 09:09:21 +00:00
Marc Weustink
6b48dc8143
* fixed lineinfo reference
...
git-svn-id: trunk@5418 -
2006-11-18 02:05:54 +00:00
Marc Weustink
1a5c19fdcf
* reverted to defines for 64bit targets
...
* added 64bit header support
git-svn-id: trunk@5417 -
2006-11-18 00:50:46 +00:00
florian
fbc197f27a
* fixed writing of double constants on WinCE
...
git-svn-id: trunk@5416 -
2006-11-17 22:17:54 +00:00
Jonas Maebe
4dc98db426
* don't put classes/interfaces which need to be finalized in regvars
...
because the code generated by finalize_data_node() can't deal with that
(and it's called from gen_finalize_code() *after* the local symtable
of the current procedure has been allocated, and therefore the
make_not_regable() call of the generated addrnode doesn't do anything)
git-svn-id: trunk@5414 -
2006-11-17 12:06:20 +00:00
Marc Weustink
cfbedf5a10
* added a temp fix for dwarf64 debug generation
...
git-svn-id: trunk@5412 -
2006-11-16 23:56:08 +00:00
florian
ac5b260ec2
* registers of references aren't reused so we can safe a mov
...
git-svn-id: trunk@5411 -
2006-11-16 22:26:03 +00:00
tom_at_work
9905e6d7ff
* never generate 64 bit offsets/sizes in DWARF debug info for now
...
git-svn-id: trunk@5410 -
2006-11-16 22:12:30 +00:00
Jonas Maebe
e04e668640
* give internalerror if trying to take the address of something else
...
than a LOC_REFERENCE or LOC_CREFERENCE
git-svn-id: trunk@5408 -
2006-11-16 20:23:55 +00:00
Jonas Maebe
108c6f4d73
* unified nppcset for ppc32/ppc64 since virtually identical
...
* fixed case bug for ppc64 regarding qwords (must be handled via
genlinearcmplist)
git-svn-id: trunk@5406 -
2006-11-16 18:56:28 +00:00
Jonas Maebe
f60b6faf17
* nppcinl is currently the same for ppc32 and ppc64
...
git-svn-id: trunk@5405 -
2006-11-16 18:27:10 +00:00
Jonas Maebe
7b0d6364a7
* moved ppc32/ppc64 second_int_to_bool to common file
...
git-svn-id: trunk@5404 -
2006-11-16 18:04:58 +00:00
yury
135c0ecfb7
* fixed passing float constants as part of "array of const" parameter for ARM.
...
git-svn-id: trunk@5403 -
2006-11-16 17:01:17 +00:00
yury
347af4dbe4
* fixed case code for ARM.
...
git-svn-id: trunk@5402 -
2006-11-16 13:07:32 +00:00
florian
3f0dfdcba4
* OP_SUB must set always the flags in case of case
...
git-svn-id: trunk@5400 -
2006-11-16 10:21:43 +00:00
florian
3f77637b56
* set is_jmp flag correctly
...
git-svn-id: trunk@5399 -
2006-11-16 09:43:58 +00:00
Károly Balogh
eb01d935d3
- typo fix
...
git-svn-id: trunk@5397 -
2006-11-15 23:10:49 +00:00
florian
6ad8307653
+ better case code generation for arm
...
git-svn-id: trunk@5395 -
2006-11-15 22:44:13 +00:00
florian
1e1f711663
* instructions being already conditional can't be marked as conditional again
...
git-svn-id: trunk@5394 -
2006-11-15 22:42:22 +00:00
florian
84f0b62f93
* cond. instruction optimization enabled
...
git-svn-id: trunk@5393 -
2006-11-15 21:59:29 +00:00
florian
8998a04bf6
* initial copy from i386
...
git-svn-id: trunk@5391 -
2006-11-15 20:33:43 +00:00
Jonas Maebe
5444207df8
* better fix for tw1623 (generates more optimal code)
...
git-svn-id: trunk@5390 -
2006-11-15 14:15:00 +00:00