| # 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 |