blob: 7bfa0b230f9c8dde4e51ebee4f37670acccba481 [file] [log] [blame]
# fr30 testcase for ret
# mach(): fr30
.include "testutils.inc"
START
.text
.global ret
; Test ret
mvi_h_gr 0xdeadbeef,r9
mvi_h_gr #func1,r0
set_cc 0x0f ; condition codes shouldn't change
call1:
call @r0
testr_h_gr 2,r0
test_h_gr 0xbeefdead,r9
pass
func1:
test_cc 1 1 1 1
mvi_h_gr #call1,r7
inci_h_gr 2,r7
testr_h_dr r7,rp
save_rp
mvi_h_gr #func2,r0
set_cc 0x0f ; condition codes shouldn't change
call2:
call:d @r0
ldi:8 1,r0 ; Must assume this works
testr_h_gr 2,r0
restore_rp
ret
func2:
test_cc 1 1 1 1
mvi_h_gr #call2,r7
inci_h_gr 4,r7
testr_h_dr r7,rp
testr_h_gr 1,r0
save_rp
set_cc 0x0f ; condition codes shouldn't change
call3:
call func3
testr_h_gr 2,r0
restore_rp
ret
func3:
test_cc 1 1 1 1
mvi_h_gr #call3,r7
inci_h_gr 2,r7
testr_h_dr r7,rp
save_rp
set_cc 0x0f ; condition codes shouldn't change
call4:
call:d func4
ldi:8 1,r0 ; Must assume this works
testr_h_gr 3,r0
restore_rp
ret:d
ldi:8 2,r0 ; Must assume this works
func4:
test_cc 1 1 1 1
mvi_h_gr #call4,r7
inci_h_gr 4,r7
testr_h_dr r7,rp
testr_h_gr 1,r0
mvi_h_gr 0xbeefdead,r9
ret:d
ldi:8 3,r0 ; Must assume this works
fail