+++ /dev/null
-! Copyright (C) 2007 Slava Pestov.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien arrays cpu.architecture cpu.arm.assembler
-cpu.arm.architecture cpu.arm5.assembler kernel kernel.private
-math math.private namespaces sequences words quotations
-byte-arrays hashtables.private hashtables generator
-generator.registers generator.fixup sequences.private
-strings.private ;
-IN: cpu.arm4
-
-: (%char-slot)
- "out" operand string-offset MOV
- "out" operand dup "n" operand 2 <LSR> ADD ;
-
-\ char-slot [
- (%char-slot)
- "out" operand "obj" operand "out" operand <+> LDRH
- "out" operand dup %tag-fixnum
-] H{
- { +input+ { { f "n" } { f "obj" } } }
- { +scratch+ { { f "out" } } }
- { +output+ { "out" } }
-} define-intrinsic
-
-\ set-char-slot [
- "val" operand dup %untag-fixnum
- (%char-slot)
- "val" operand "obj" operand "out" operand <+> STRH
-] H{
- { +input+ { { f "val" } { f "n" } { f "obj" } } }
- { +scratch+ { { f "out" } } }
- { +clobber+ { "val" } }
-} define-intrinsic
-
-\ alien-signed-1 [ LDRSB ]
-\ set-alien-signed-1 [ STRB ]
-define-alien-integer-intrinsics
-
-\ alien-unsigned-2 [ LDRH ]
-\ set-alien-unsigned-2 [ STRH ]
-define-alien-integer-intrinsics
-
-\ alien-signed-2 [ LDRSH ]
-\ set-alien-signed-2 [ STRH ]
-define-alien-integer-intrinsics