From 458610b970fdc308b9913fcbed39f84bcd3decde Mon Sep 17 00:00:00 2001 From: Torsten Ruger Date: Sun, 15 Nov 2015 11:28:16 +0200 Subject: [PATCH] implement string length --- lib/arm/translator.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/arm/translator.rb b/lib/arm/translator.rb index 5f661b1c..9aa1b988 100644 --- a/lib/arm/translator.rb +++ b/lib/arm/translator.rb @@ -130,9 +130,9 @@ module Arm def putstring int_code codes = ArmMachine.ldr( :r1 , Register.message_reg, 4 * Register.resolve_index(:message , :receiver) - 4) - codes.append ArmMachine.add( :r1 , :r1 , 8 ) - codes.append ArmMachine.mov( :r0 , 1 ) - codes.append ArmMachine.mov( :r2 , 12 ) # String length, obvious TODO + codes.append ArmMachine.ldr( :r2 , :r1 , 4 ) # String length + codes.append ArmMachine.add( :r1 , :r1 , 8 ) # adjust for object header + codes.append ArmMachine.mov( :r0 , 1 ) # write to stdout == 1 syscall(int_code , codes ) end