"/library/compiler/x86/assembler.factor"
"/library/compiler/x86/architecture.factor"
"/library/compiler/x86/alien.factor"
- ! "/library/compiler/x86/intrinsics.factor"
+ "/library/compiler/x86/intrinsics.factor"
}
]
} {
"obj" operand card-offset ADD rel-absolute-cell rel-cards
"obj" operand [] card-mark OR ;
-\ set-slot [
- "obj" operand untag
- ! turn tagged fixnum slot # into an offset
- "slot" operand fixnum>slot@
- ! compute slot address
- "obj" operand "slot" operand ADD
- ! store new slot value
- "obj" operand [] "val" operand MOV
- generate-write-barrier
-] H{
- { +input { { f "val" } { f "obj" } { f "slot" } } }
- { +clobber { "obj" } }
-} define-intrinsic
+! \ set-slot [
+! "obj" operand untag
+! ! turn tagged fixnum slot # into an offset
+! "slot" operand fixnum>slot@
+! ! compute slot address
+! "obj" operand "slot" operand ADD
+! ! store new slot value
+! "obj" operand [] "val" operand MOV
+! generate-write-barrier
+! ] H{
+! { +input { { f "val" } { f "obj" } { f "slot" } } }
+! { +clobber { "obj" "slot" } }
+! } define-intrinsic
\ char-slot [
EBX PUSH
{ +output { "x" } }
{ +clobber { "x" "y" } }
} define-intrinsic
-!
+
\ fixnum/mod [ generate-fixnum/mod ] H{
{ +input { { 0 "x" } { 1 "y" } } }
{ +scratch { { 2 "out" } } }