From 613dd60dd770768e24dad2066c4286650efef70b Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Thu, 18 Mar 2021 23:03:19 -0500 Subject: [PATCH] cpu.arm.assembler: Use make for the relocation feature. --- basis/cpu/arm/assembler/assembler.factor | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/basis/cpu/arm/assembler/assembler.factor b/basis/cpu/arm/assembler/assembler.factor index 6c4a20ab8e..0f64ea6e82 100644 --- a/basis/cpu/arm/assembler/assembler.factor +++ b/basis/cpu/arm/assembler/assembler.factor @@ -1,7 +1,7 @@ ! Copyright (C) 2020 Doug Coleman. ! See http://factorcode.org/license.txt for BSD license. USING: accessors combinators cpu.arm.assembler.opcodes io.binary -kernel math math.bitwise namespaces sequences ; +kernel make math math.bitwise namespaces sequences ; IN: cpu.arm.assembler ! pre-index mode: computed addres is the base-register + offset @@ -20,8 +20,8 @@ TUPLE: arm64-assembler ip labels out ; ERROR: arm64-encoding-imm original n-bits-requested truncated ; : ?bits ( x n -- x ) 2dup bits dup reach = [ 2drop ] [ arm64-encoding-imm ] if ; inline -: ip ( -- address ) arm64-assembler get ip>> ; -: >out ( instruction -- ) arm64-assembler get out>> push ; +! : ip ( -- address ) arm64-assembler get ip>> ; +: >out ( instruction -- ) 4 >le % ; : ADR ( imm21 Rd -- ) [ [ 2 bits ] [ -2 shift 19 ?bits ] bi ] dip ADR-encode >out ; @@ -118,7 +118,7 @@ ERROR: imm-out-of-range imm n ; [ 0 \ arm64-assembler ] dip with-output-variable ; inline : assemble-arm ( quot -- bytes ) - with-new-arm64 out>> [ 4 >le ] map concat ; inline + call ; inline : offset-test-arm64 ( offset quot -- instuctions ) with-new-arm64-offset out>> ; inline @@ -150,5 +150,7 @@ ERROR: imm-out-of-range imm n ; ! B but that is breakpoint : Br ( imm26 -- ) 26 ?bits B-encode >out ; : B.cond ( imm19 cond4 -- ) [ 19 ?bits ] dip B.cond-encode >out ; -: BL ( offset -- ) ip - 4 / BL-encode >out ; +! : BL ( offset -- ) ip - 4 / BL-encode >out ; +: BL ( offset -- ) BL-encode >out ; : BR ( Rn -- ) BR-encode >out ; +: BLR ( Rn -- ) BLR-encode >out ; -- 2.34.1