push and pop were forgotten, fixed and tested

This commit is contained in:
Torsten Ruger
2014-04-20 23:48:04 +03:00
parent 87db8b527e
commit 2c57ca773b
6 changed files with 25 additions and 6 deletions

View File

@ -30,3 +30,4 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'test'))
require 'crystal'
require 'asm/object_writer'
require "asm/arm/code_generator"

View File

@ -76,6 +76,15 @@ class TestArmAsm < MiniTest::Test
code = @generator.instance_eval { orr r2 , r2 , r3 }.first
assert_code code , :orr , [0x03,0x20,0x82,0xe1] #e1 82 20 03
end
def test_push
code = @generator.instance_eval { push lr }.first
assert_code code , :push , [0x00,0x40,0x2d,0xe9] #e9 2d 40 00
end
def test_pop
code = @generator.instance_eval { pop pc }.first
assert_code code , :pop , [0x00,0x80,0xbd,0xe8] #e8 bd 80 00
end
def test_rsb
code = @generator.instance_eval { rsb r1 , r2 , r3 }.first
assert_code code , :rsb , [0x03,0x10,0x62,0xe0]#e0 62 10 03