Fix PPC again, oops

db4
Slava Pestov 2008-08-31 05:50:02 -05:00
parent dd45c26234
commit b73bc69084
1 changed files with 42 additions and 41 deletions

View File

@ -5,9 +5,10 @@ cpu.ppc.assembler cpu.ppc.architecture cpu.ppc.allot
cpu.architecture kernel kernel.private math math.private cpu.architecture kernel kernel.private math math.private
namespaces sequences words generic quotations byte-arrays namespaces sequences words generic quotations byte-arrays
hashtables hashtables.private compiler.generator hashtables hashtables.private compiler.generator
compiler.generator.registers generator.fixup sequences.private compiler.generator.registers compiler.generator.fixup
sbufs vectors system layouts math.floats.private classes sequences.private sbufs vectors system layouts
slots.private combinators compiler.constants ; math.floats.private classes slots.private combinators
compiler.constants ;
IN: cpu.ppc.intrinsics IN: cpu.ppc.intrinsics
: %slot-literal-known-tag : %slot-literal-known-tag
@ -436,44 +437,44 @@ IN: cpu.ppc.intrinsics
{ +clobber+ { "n" } } { +clobber+ { "n" } }
} define-intrinsic } define-intrinsic
\ (tuple) [ ! \ (tuple) [
tuple "layout" get size>> 2 + cells %allot ! tuple "layout" get size>> 2 + cells %allot
! Store layout ! ! Store layout
"layout" get 12 load-indirect ! "layout" get 12 load-indirect
12 11 cell STW ! 12 11 cell STW
! Store tagged ptr in reg ! ! Store tagged ptr in reg
"tuple" get tuple %store-tagged ! "tuple" get tuple %store-tagged
] H{ ! ] H{
{ +input+ { { [ ] "layout" } } } ! { +input+ { { [ ] "layout" } } }
{ +scratch+ { { f "tuple" } } } ! { +scratch+ { { f "tuple" } } }
{ +output+ { "tuple" } } ! { +output+ { "tuple" } }
} define-intrinsic ! } define-intrinsic
!
\ (array) [ ! \ (array) [
array "n" get 2 + cells %allot ! array "n" get 2 + cells %allot
! Store length ! ! Store length
"n" operand 12 LI ! "n" operand 12 LI
12 11 cell STW ! 12 11 cell STW
! Store tagged ptr in reg ! ! Store tagged ptr in reg
"array" get object %store-tagged ! "array" get object %store-tagged
] H{ ! ] H{
{ +input+ { { [ ] "n" } } } ! { +input+ { { [ ] "n" } } }
{ +scratch+ { { f "array" } } } ! { +scratch+ { { f "array" } } }
{ +output+ { "array" } } ! { +output+ { "array" } }
} define-intrinsic ! } define-intrinsic
!
\ (byte-array) [ ! \ (byte-array) [
byte-array "n" get 2 cells + %allot ! byte-array "n" get 2 cells + %allot
! Store length ! ! Store length
"n" operand 12 LI ! "n" operand 12 LI
12 11 cell STW ! 12 11 cell STW
! Store tagged ptr in reg ! ! Store tagged ptr in reg
"array" get object %store-tagged ! "array" get object %store-tagged
] H{ ! ] H{
{ +input+ { { [ ] "n" } } } ! { +input+ { { [ ] "n" } } }
{ +scratch+ { { f "array" } } } ! { +scratch+ { { f "array" } } }
{ +output+ { "array" } } ! { +output+ { "array" } }
} define-intrinsic ! } define-intrinsic
\ <ratio> [ \ <ratio> [
ratio 3 cells %allot ratio 3 cells %allot