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
tom_at_work
75e343e030
* inline sqrt since it is a mandatory instruction on PPC970 processors (and much faster than the generic routine)
...
git-svn-id: trunk@6286 -
2007-02-01 19:52:09 +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
tom_at_work
8e3112acfe
* fixed generation of branch labels in stubs of functions exported by a library (require a dot prefix on ppc64/linux; fixes tlibrary2)
...
git-svn-id: trunk@6092 -
2007-01-20 22:16:23 +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
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
1d96dcc50d
* renamed nf_swaped to nf_swapped
...
git-svn-id: trunk@5818 -
2007-01-05 12:47:22 +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
tom_at_work
7ab5fc7980
- cleanup, fixed range check error in cgcpu
...
git-svn-id: trunk@5501 -
2006-11-26 21:35:57 +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
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
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
tom_at_work
9fc11fc5dc
* fix IE2003042401 when assigning booleans to bitpacked arrays, fixes tw7379
...
git-svn-id: trunk@5044 -
2006-10-28 20:18:23 +00:00
tom_at_work
2b5e324638
* Fixed remaining bug in cg so that -O2 works again
...
git-svn-id: trunk@4974 -
2006-10-18 22:51:54 +00:00
Jonas Maebe
0c8dbcf332
* rldimi also modifies first operand
...
git-svn-id: trunk@4943 -
2006-10-16 12:51:45 +00:00
Jonas Maebe
53aecd7c88
* more r4812 for ppc64
...
git-svn-id: trunk@4941 -
2006-10-16 11:16:30 +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
tom_at_work
63d03f2c47
* r4812 for ppc64
...
git-svn-id: trunk@4917 -
2006-10-14 20:59:55 +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
tom_at_work
c64190bda3
* r4760, r4784, r4788 for ppc64
...
git-svn-id: trunk@4832 -
2006-10-08 16:09:46 +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
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
d1bc93c67a
* one more subsetreg fix
...
git-svn-id: trunk@4344 -
2006-08-04 08:37:21 +00:00
tom_at_work
d112bfbd43
* fixed a_load_subsetreg_reg according to Jonas' remarks
...
git-svn-id: trunk@4343 -
2006-08-03 21:27:39 +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
tom_at_work
de20abf3ec
* cr reg fix for ppc64
...
git-svn-id: trunk@4277 -
2006-07-22 11:04:56 +00:00
tom_at_work
5622a7ae64
* fixed some bugs in a_param_ref due to missing begin/end block markers
...
git-svn-id: trunk@4224 -
2006-07-16 10:29:53 +00:00
Jonas Maebe
90cacb4cf5
* changed result type of dwarf_reg from byte to shortint to avoid
...
warning about comparison which can never be true
git-svn-id: trunk@4183 -
2006-07-14 17:25:16 +00:00
tom_at_work
2adcae0cd8
* optimized register-register loading of < 64 bit values (removes superfluous code), similar to 3207 for ppc
...
* fixed fixref() which did not always treat addresses as 64 bit sizes, resulting in problems using above optimization
* cleanup
* removed assembly fpc_int_real again, has problems with border cases
git-svn-id: trunk@3795 -
2006-06-04 17:35:55 +00:00
tom_at_work
a24a329d1c
* fixed record regvar code generation for ppc64 for now
...
git-svn-id: trunk@3787 -
2006-06-04 12:43:28 +00:00
tom_at_work
9a5885b8d2
* small optimizations for the subsetreg functions
...
git-svn-id: trunk@3763 -
2006-06-01 20:57:54 +00:00
tom_at_work
129fe92d9e
* fixed subregister loading and storing for ppc64
...
git-svn-id: trunk@3751 -
2006-05-30 21:57:48 +00:00
Jonas Maebe
03302dc7c4
* fixed support for macpas & and | operators: they only work on booleans
...
now, and always perform short circuit boolean evaluation (also in {$b+})
git-svn-id: trunk@3745 -
2006-05-30 13:02:36 +00:00
Jonas Maebe
6335ce6e45
- reverted previous wrong commit
...
git-svn-id: trunk@3743 -
2006-05-30 07:37:09 +00:00
Jonas Maebe
b784b2f39e
* fixed a_load_subsetreg_reg for loading signed fields (EXTRDI results
...
in an unsigned number)
git-svn-id: trunk@3739 -
2006-05-29 20:26:06 +00:00
tom_at_work
dba5da67af
* initial support for subregister loading (ppc64 specific part only)
...
+ added EXTRDI and INSRDI opcode
* lots of additional debug code when EXTDEBUG enabled
git-svn-id: trunk@3724 -
2006-05-28 21:02:25 +00:00
tom_at_work
1bd43869d0
* reenabled generation of TOC labels for symbols with a length under a certain threshold (to avoid too long symbols passed to the cg which will get truncated)
...
* cleanup
git-svn-id: trunk@3674 -
2006-05-25 20:16:25 +00:00