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
daniel
e21858f85a
+ Add Jonas his explanation as comments to gas_regname
...
git-svn-id: trunk@4272 -
2006-07-21 11:26:00 +00:00
Jonas Maebe
e08aa358fb
* removed stb from calculation_target_op0 (stb does not calculate a value
...
to store in operand 0)
git-svn-id: trunk@4269 -
2006-07-20 22:38:26 +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
Jonas Maebe
ef16df72da
* some optimizations for code generated for
...
"(x and power_of_two_const) <>/= 0)"
git-svn-id: trunk@4159 -
2006-07-13 17:48:41 +00:00
Jonas Maebe
e32e5e1f9f
* fixed interface wrappers for darwin in case they end up in
...
a shared library
git-svn-id: trunk@3976 -
2006-06-27 13:42:00 +00:00
Károly Balogh
bea92e0656
+ small optimizations for code generated for MorphOS syscalls
...
git-svn-id: trunk@3939 -
2006-06-25 12:33:07 +00:00
Jonas Maebe
bc96cd8008
+ more rlwinm optimizations
...
git-svn-id: trunk@3823 -
2006-06-08 09:48:08 +00:00
tom_at_work
c5cbdda62e
* fixed generation of ANDI and ANDIS instructions in the optimizer, properly casting the immediate parameter to an unsigned integer
...
git-svn-id: trunk@3800 -
2006-06-04 21:16:10 +00:00
yury
550626ef34
- Removed need of assembler startup files for wince. Now compiler directly creates .pdata section needed for arm-wince exception handling.
...
git-svn-id: trunk@3764 -
2006-06-02 08:36:25 +00:00
Jonas Maebe
488d8ae766
* improved support for merging two consecutive rlwinm's (now also works
...
if both perform a rotation)
git-svn-id: trunk@3759 -
2006-05-31 20:25:39 +00:00
Jonas Maebe
3a3651a050
+ ppc implementations of subsetreg routines
...
git-svn-id: trunk@3758 -
2006-05-31 19:01:08 +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
a20f211811
* don't try to reuse registers from left/right, impedes optimal register
...
allocation
git-svn-id: trunk@3669 -
2006-05-25 11:31:32 +00:00
Jonas Maebe
a3cb1b1523
+ support for "exotic" locations in load_left_right()
...
git-svn-id: trunk@3556 -
2006-05-17 19:12:00 +00:00
Jonas Maebe
67dc63048c
* fixed and enhanced rlwinm optimizations somewhat
...
git-svn-id: trunk@3555 -
2006-05-17 19:04:31 +00:00
Jonas Maebe
a387be19a0
+ a_call_ref for ppc32 and ppc64
...
git-svn-id: trunk@3392 -
2006-04-30 20:50:37 +00:00
Jonas Maebe
0d77459b9d
* added missing masking of upper 24/16 bits on ppc after performing
...
add/sub/shl/mul on 8 or 16 bit "registers" + test (tcinvint5)
* optimized register-register loading of < 32 bit values (removes
30KB of superfluous extsb/extsh/rlwinm's from compiler+rtl)
git-svn-id: trunk@3207 -
2006-04-14 13:01:10 +00:00
Jonas Maebe
55a2007321
* fixed skipping of parameter registers for ppc/aix in case a parameter
...
has to be passed on the stack before all registesters are used up
* fixed calculation of stack offsets for ppc/aix abi for small records,
arrays and ordinals passed on the stack after all registers are used
+ test for all of the above
git-svn-id: trunk@3166 -
2006-04-07 22:17:45 +00:00
Jonas Maebe
c41da1172c
* removed wrong comment along with commented-out code
...
git-svn-id: trunk@3165 -
2006-04-07 21:57:30 +00:00
Jonas Maebe
385815beff
* fixed offset calculation of first parameter on the stack if there
...
were any preceding parameters < 4 bytes
git-svn-id: trunk@3141 -
2006-04-04 12:44:19 +00:00
Jonas Maebe
6c62d6a647
+ get_max_value in defutil
...
* use a linear cmp list instead of subtractions on ppc if low >=
low(smallint) and high <= high(word), because a compare does not
introduce any dependencies (and in those cases using subtractions
does not save any instructions or bytes either)
git-svn-id: trunk@3065 -
2006-03-28 11:49:16 +00:00
peter
0ec2921bbe
* split newasmsymbol to refasmsymbol and defineasmsymbol
...
git-svn-id: trunk@3057 -
2006-03-27 11:45:18 +00:00
peter
870be04a3f
* use dwarf_reg()
...
git-svn-id: trunk@3046 -
2006-03-26 20:15:32 +00:00
Jonas Maebe
ab8f96f4cf
* disabled i386 createtempparaloc again because it generates wrong
...
code in case of nested function calls with lots of arguments
git-svn-id: trunk@2948 -
2006-03-17 22:01:25 +00:00
Jonas Maebe
8a6ebdf274
- disabled loop unrolling for level 3 optimizations since it only causes
...
crashes (and even if it didn't, on its own it mainly causes code
bloat)
git-svn-id: trunk@2941 -
2006-03-17 17:42:39 +00:00
Jonas Maebe
0232ab62cb
* fixed compilation
...
git-svn-id: trunk@2940 -
2006-03-17 17:26:58 +00:00
peter
b7fe6797bf
Merged revisions 2921-2922,2925 via svnmerge from
...
http://svn.freepascal.org/svn/fpc/branches/linker/compiler
........
r2921 | peter | 2006-03-15 08:35:00 +0100 (Wed, 15 Mar 2006) | 2 lines
* pass ObjectWriter to ObjectOuput
........
r2922 | peter | 2006-03-15 12:40:30 +0100 (Wed, 15 Mar 2006) | 2 lines
* refactor asmdata
........
r2925 | peter | 2006-03-15 16:09:39 +0100 (Wed, 15 Mar 2006) | 3 lines
* add cfi to asmdata
* move asmlist, asmcfi, asmdata to own unit
........
git-svn-id: trunk@2932 -
2006-03-16 08:52:22 +00:00
Jonas Maebe
e919e1f2fd
* fixed compilation
...
git-svn-id: trunk@2914 -
2006-03-14 08:38:13 +00:00
peter
2888a21593
* list supported optimization options in -i
...
* support $OPTIMIZATION and $O+
git-svn-id: trunk@2904 -
2006-03-13 11:17:56 +00:00
peter
b6e35a200e
* rewrite of optimizer options
...
git-svn-id: trunk@2901 -
2006-03-13 09:05:50 +00:00
Jonas Maebe
4ed39b0c16
* don't explicitly us NR_F0 in concatcopy but ask a register from
...
the register allocator (since NR_F0 can also be used by the ra)
git-svn-id: trunk@2855 -
2006-03-11 14:13:47 +00:00
Jonas Maebe
988f689445
* fixed compilation
...
git-svn-id: trunk@2851 -
2006-03-11 09:30:09 +00:00
Jonas Maebe
9de2847865
+ support for passing parameters via pre-allocated stack space on i386
...
(override/adjust cgutils.use_fixed_stack to change conditions where
this is done, currently only activated for darwin-i386)
* make sure the stack is always aligned to 16 bytes on darwin-i386
git-svn-id: trunk@2840 -
2006-03-10 19:59:44 +00:00