Jonas Maebe
0926c4c64d
* properly set needstackframe for assembler routines
...
git-svn-id: trunk@6516 -
2007-02-16 22:13:11 +00:00
Jonas Maebe
c4913ac85d
* don't save stack pointer if we don't need to allocate a
...
stack frame but nevertheless have to store registers to
the stack (not only optimization, but also needed because
in that case no room for the stack pointer is reserved
and thus it'll overwrite one of the saved registers!)
git-svn-id: trunk@6498 -
2007-02-15 20:25:36 +00:00
Jonas Maebe
359c19ee9e
- removed ppc601 as ppc32 cpu target
...
+ added ppc740 (g3), ppc7400 (G4) and ppc970 (G5) as ppc32 cpu
targets
* initialise optimizecputype by default to ppc7400 for ppc32 and to
ppc970 for ppc64
* merged ppc32/ppc64 overflow checking code and use the ppc64 one
in case cputype or optimizecputype >= ppc970, because one of
the instructions used in the ppc32 version no longer exists on the
ppc970 (although it's emulated in the kernel on at least Mac OS X)
* moved some other support routines and constants to ppcgen which
were needed for the overflow checking (were identical for ppc32 and
ppc64)
git-svn-id: trunk@6323 -
2007-02-03 19:32:44 +00:00
Jonas Maebe
846fbf9fa0
* fixed several (harmles) range errors
...
git-svn-id: trunk@6192 -
2007-01-25 21:43:11 +00:00
Jonas Maebe
c866400823
+ support for VMTOFFSET in assembler readers to get VMT offset of virtual
...
methods (mantis #8153 )
git-svn-id: trunk@6168 -
2007-01-24 18:26:23 +00:00
Jonas Maebe
302a2a3ec2
* fixed calling qualified methods in assembler + tests for ppc/ppc64/
...
i386/x86_64
git-svn-id: trunk@6112 -
2007-01-21 22:16:42 +00:00
Jonas Maebe
4d1f213889
* fixed gprof support for darwin/ppc32 (although the output from gprof
...
isn't very useful, since it discards all symbols which contain a '$')
git-svn-id: trunk@6080 -
2007-01-19 21:43:12 +00:00
Jonas Maebe
e815b923d5
* a_loadfpu_* gets two size parameters: fromsize and tosize
...
* fixed downsizing the precision of floating point values
* floating point constants are now treated using only the minimal
precision required (e.g. 2.0 is now a single, 1.1 extended etc)
(Delphi compatible)
git-svn-id: trunk@5927 -
2007-01-12 18:33:51 +00:00
Jonas Maebe
198a0008d0
* fixed -currency after r5896
...
git-svn-id: trunk@5914 -
2007-01-12 09:52:07 +00:00
florian
c238bb15d1
* .init section support
...
git-svn-id: trunk@5835 -
2007-01-07 10:03:52 +00:00
Jonas Maebe
d0b6292137
* disable overflow checking when performing pointer arithmetic
...
(mantis 8049)
git-svn-id: trunk@5822 -
2007-01-05 21:52:31 +00:00
Jonas Maebe
85289e80ce
* fixed overflow in case of op_const64_reg_reg_reg(sub,low(int64),...)
...
git-svn-id: trunk@5821 -
2007-01-05 21:27:27 +00:00
Jonas Maebe
1d96dcc50d
* renamed nf_swaped to nf_swapped
...
git-svn-id: trunk@5818 -
2007-01-05 12:47:22 +00:00
Jonas Maebe
e2193b1540
* fixed mixing of longint/dword to avoid 64 bit conversion
...
git-svn-id: trunk@5788 -
2007-01-02 18:32:59 +00:00
Jonas Maebe
32e06e7a7a
* fixed memory leaks in ppc peephole optimizer
...
git-svn-id: trunk@5569 -
2006-12-11 15:53:30 +00:00
Jonas Maebe
05a07a7dd2
* better fix for previous revision
...
* also applied to x86 and m68k
git-svn-id: trunk@5512 -
2006-11-30 20:55:32 +00:00
Jonas Maebe
3c26e1c40b
* fix subsetref/subsetreg support for int_to_real
...
git-svn-id: trunk@5511 -
2006-11-30 20:29:28 +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
Jonas Maebe
6d36b04c6a
* create common aasmcpu (currently ppc32 version, will commit
...
merged ppc32/ppc64 version right after this one)
git-svn-id: trunk@5319 -
2006-11-10 22:11:15 +00:00
Jonas Maebe
d26ee9dccf
* fixed overflow errors
...
git-svn-id: trunk@5318 -
2006-11-10 21:14:37 +00:00
Jonas Maebe
5522cbd7cd
* fixed typo which caused overflow checks not to be turned off when
...
calculating magic division constants
git-svn-id: trunk@5316 -
2006-11-10 20:53:50 +00:00
peter
0557ddc342
* removed typed const, it is now handled by staticvarsym
...
* globalvarsym renamed to staticvarsym
* fixed invalid regvar use in init when the finalize also uses the var
git-svn-id: trunk@5290 -
2006-11-08 21:04:22 +00:00
Jonas Maebe
469ac311e0
* fixed r5214
...
git-svn-id: trunk@5222 -
2006-11-04 16:44:29 +00:00
peter
3cae449fda
* moved rtti to ncgrtti
...
git-svn-id: trunk@5219 -
2006-11-04 10:43:27 +00:00
Jonas Maebe
66cf666f65
* optimized storing constants into subsetreg/refs (a packed array of
...
boolean can now be as efficient as a set of boolean -- and it is
on ppc32/64)
git-svn-id: trunk@5214 -
2006-11-03 22:00:27 +00:00
Jonas Maebe
9acc38e82a
* moved some more common powerpc32/64 things to ppcgn
...
+ a few initial darwin/ppc64 things
git-svn-id: trunk@5197 -
2006-11-03 12:30:17 +00:00
peter
658c46b903
* remove tdictionary and tindexarray
...
* symtables based on TFPHashObjectList and TFPObjectList
* rename torddef.typ to torddef.ordtype
* rename tfloatdef.typ to tfloatdef.floattype
* rename tdef.deftype to tdef.typ
* remove obsolete browser code, browcol is kept so the ide
can still be compiled
git-svn-id: trunk@5192 -
2006-11-03 00:30:30 +00:00
tom_at_work
35228f0391
* fixes after 5148 changes for ppc platform
...
git-svn-id: trunk@5150 -
2006-11-01 16:09:38 +00:00
Jonas Maebe
c2c0b7a4e7
* fixed compilation
...
git-svn-id: trunk@5141 -
2006-11-01 01:10:58 +00:00
florian
85d63d9fa9
* settings refactored
...
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
peter
3078a1927f
* remove ttype
...
* rename old ttype variables *type to *def
* rename resulttypepass to pass_typecheck
* rename pass_2 to pass_generate_code
git-svn-id: trunk@5077 -
2006-10-29 22:19:39 +00:00
Jonas Maebe
20ae808b65
* also rlwimi_ is read/write for first operand
...
git-svn-id: trunk@4942 -
2006-10-16 11:31:35 +00:00
Jonas Maebe
9e825bdc76
* moved common code for ppc32/ppc64 from nppcadd to shared unit
...
git-svn-id: trunk@4930 -
2006-10-15 15:43:29 +00:00
Jonas Maebe
593f74d155
+ full support for varargs-related functionality for "mwpascal; external;"
...
functions
git-svn-id: trunk@4910 -
2006-10-14 17:56:42 +00:00
florian
2a54d957b2
* fixed two small errors
...
* supported_optimizerswitches now takes generic flags also into account
git-svn-id: trunk@4865 -
2006-10-11 21:14:47 +00:00
florian
a61abb25cb
* reorganized optimizer switch sets
...
git-svn-id: trunk@4862 -
2006-10-11 18:16:10 +00:00
Jonas Maebe
b67050099a
* fixed spilling info for rlwimi
...
git-svn-id: trunk@4812 -
2006-10-06 16:07:30 +00:00
Jonas Maebe
32a86f6daa
* sqr also uses single precision ops for single precision calculations
...
git-svn-id: trunk@4788 -
2006-10-04 15:56:22 +00:00
Jonas Maebe
e9c5049275
* use single precision fpu ops in case of single precision operands
...
git-svn-id: trunk@4784 -
2006-10-04 15:26:10 +00:00
Jonas Maebe
d379417ca4
* fixed reg_cgsize
...
git-svn-id: trunk@4760 -
2006-09-30 21:43:10 +00:00
Jonas Maebe
c261068ab5
* use generic second_addboolean for short circuit and/or (since that code
...
is the same as what was in nppcadd)
git-svn-id: trunk@4600 -
2006-09-10 15:14:03 +00:00
Jonas Maebe
1f42ee201b
+ support for bitpacked records, except for:
...
* rtti
* typed constants
git-svn-id: trunk@4489 -
2006-08-23 15:44:13 +00:00
florian
9e66674ff9
+ first part of qwordbool implementation
...
git-svn-id: trunk@4462 -
2006-08-19 23:16:17 +00:00
Jonas Maebe
d4a818c8ae
* support for subsets which are not a multiple of 8 bits
...
git-svn-id: trunk@4442 -
2006-08-19 11:11:37 +00:00
Jonas Maebe
63123d3c62
* don't reuse loc_register
...
git-svn-id: trunk@4426 -
2006-08-15 15:20:32 +00:00
Károly Balogh
b77a51f67d
+ first somewhat-valid AmigaOS/PowerPC support (no linking yet)
...
git-svn-id: trunk@4329 -
2006-08-02 18:47:25 +00:00
Jonas Maebe
c25aba7592
* cleaned up subsetreg support (put everything in a record)
...
* prepared support for elements with arbitrary bit length (as opposed
to a multiple of 8)
git-svn-id: trunk@4324 -
2006-08-01 20:39:53 +00:00
florian
4095b36047
* cr register name fix
...
git-svn-id: trunk@4276 -
2006-07-22 09:33:47 +00:00