From 843fb155df98dc70b233b15479dc6eace61faf40 Mon Sep 17 00:00:00 2001 From: Matthew Berry Date: Wed, 30 Sep 2020 22:03:33 -0700 Subject: [PATCH] fix thumb add not setting value, rename var in thumb multiple load/store --- src/crab/thumb/move_compare_add_subtract.cr | 2 +- src/crab/thumb/multiple_load_store.cr | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/crab/thumb/move_compare_add_subtract.cr b/src/crab/thumb/move_compare_add_subtract.cr index 9924cff..e943d60 100644 --- a/src/crab/thumb/move_compare_add_subtract.cr +++ b/src/crab/thumb/move_compare_add_subtract.cr @@ -7,7 +7,7 @@ module THUMB case op when 0b00 then res = @r[rd] = offset when 0b01 then res = sub(@r[rd], offset, true) - when 0b10 then res = add(@r[rd], offset, true) + when 0b10 then res = @r[rd] = add(@r[rd], offset, true) when 0b11 then res = @r[rd] = sub(@r[rd], offset, true) else raise "Invalid move/compare/add/subtract op: #{op}" end diff --git a/src/crab/thumb/multiple_load_store.cr b/src/crab/thumb/multiple_load_store.cr index fa14e44..5657521 100644 --- a/src/crab/thumb/multiple_load_store.cr +++ b/src/crab/thumb/multiple_load_store.cr @@ -1,10 +1,10 @@ module THUMB def thumb_multiple_load_store(instr : Word) : Nil - load_from_memory = bit?(instr, 11) + load = bit?(instr, 11) rb = bits(instr, 8..10) list = bits(instr, 0..7) address = @r[rb] - if load_from_memory # ldmia + if load # ldmia 8.times do |idx| if bit?(list, idx) @r[idx] = @gba.bus.read_word(address)