]> gitweb.factorcode.org Git - factor.git/blob - basis/cpu/ppc/32/linux/linux.factor
basis: removing unnecessary method stack effects.
[factor.git] / basis / cpu / ppc / 32 / linux / linux.factor
1 ! Copyright (C) 2011 Erik Charlebois
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors system kernel layouts combinators
4 compiler.cfg.builder.alien.boxing sequences arrays
5 alien.c-types cpu.architecture cpu.ppc alien.complex ;
6 IN: cpu.ppc.32.linux
7
8 M: linux lr-save 1 cells ;
9
10 M: linux has-toc f ;
11
12 M: linux reserved-area-size 2 cells ;
13
14 M: linux allows-null-dereference f ;
15
16 M: ppc param-regs
17     drop {
18         { int-regs { 3 4 5 6 7 8 9 10 } }
19         { float-regs { 1 2 3 4 5 6 7 8 } }
20     } ;
21
22 M: ppc value-struct?
23     lookup-c-type [ complex-double lookup-c-type = ]
24     [ complex-float lookup-c-type = ] bi or ;
25
26 M: ppc dummy-stack-params? f ;
27
28 M: ppc dummy-int-params? f ;
29
30 M: ppc dummy-fp-params? f ;
31
32 M: ppc long-long-on-stack? f ;
33
34 M: ppc long-long-odd-register? t ;
35
36 M: ppc float-right-align-on-stack? f ;
37
38 M: ppc flatten-struct-type
39     {
40         { [ dup lookup-c-type complex-double lookup-c-type = ]
41           [ drop { { int-rep f f } { int-rep f f }
42                    { int-rep f f } { int-rep f f } } ] }
43         { [ dup lookup-c-type complex-float lookup-c-type = ]
44           [ drop { { int-rep f f } { int-rep f f } } ] }
45         [ call-next-method [ first t f 3array ] map ]
46     } cond ;