merge from gcc
[external/binutils.git] / sim / testsuite / sim / fr30 / call.cgs
index da0d450..413840e 100644 (file)
@@ -9,28 +9,61 @@
        .global call
 
        ; Test call $Ri
+       mvi_h_gr        0xdeadbeef,r9
        mvi_h_gr        #func1,r0
        set_cc          0x0f            ; condition codes shouldn't change
 call1:
        call            @r0
-       fail
+       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
-       fail
+       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
 
-       pass
+       set_cc          0x0f            ; condition codes shouldn't change
+call3:
+       call            func3
+       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
+       restore_rp
+       ret
+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
+
+       fail