1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
# fr30 testcase for
# mach(): fr30
# sth $Ri,@$Rj
.include "testutils.inc"
START
.text
.global sth
sth:
mvr_h_gr sp,r9 ; Save stack pointer
; Test sth $Ri,@Rj
mvi_h_mem 0xdeadbeef,sp
mvi_h_gr 0xaaaabeef,r8
set_cc 0x0f ; Condition codes should not change
sth r8,@sp
test_cc 1 1 1 1
test_h_mem 0xbeefbeef,sp
test_h_gr 0xaaaabeef,r8
; Test sth $Ri,@(R13,Rj)
mvi_h_mem 0xbeefdead,sp
mvi_h_gr 0xaaaadead,r8
mvr_h_gr sp,r1
inci_h_gr -8,sp
mvr_h_gr sp,r2
mvi_h_mem 0xbeefdead,sp
inci_h_gr 4,sp
mvi_h_mem 0xbeefdead,sp
mvi_h_gr 4,r13
set_cc 0x0e ; Condition codes should not change
sth r8,@(r13,sp)
test_cc 1 1 1 0
test_h_mem 0xdeaddead,r1
test_h_gr 0xaaaadead,r8
mvi_h_gr 0,r13
set_cc 0x0d ; Condition codes should not change
sth r8,@(r13,sp)
test_cc 1 1 0 1
test_h_mem 0xdeaddead,sp
test_h_gr 0xaaaadead,r8
mvi_h_gr -4,r13
set_cc 0x0c ; Condition codes should not change
sth r8,@(r13,sp)
test_cc 1 1 0 0
test_h_mem 0xdeaddead,r2
test_h_gr 0xaaaadead,r8
; Test sth $Ri,@(R14,$disp9)
mvr_h_gr r9,sp ; Restore stack pointer
mvi_h_gr 0xaaaabeef,r8
mvi_h_mem 0xdeadbeef,sp
mvr_h_gr sp,r14
inci_h_gr -254,r14
mvr_h_gr r14,r2
mvi_h_mem 0xdeadbeef,r14
inci_h_gr -256,r14
mvr_h_gr r14,r3
mvi_h_mem 0xdeadbeef,r14
inci_h_gr 256,r14
set_cc 0x0b ; Condition codes should not change
sth r8,@(r14,254)
test_cc 1 0 1 1
test_h_mem 0xbeefbeef,r1
test_h_gr 0xaaaabeef,r8
set_cc 0x0a ; Condition codes should not change
sth r8,@(r14,0)
test_cc 1 0 1 0
test_h_mem 0xbeefbeef,r2
test_h_gr 0xaaaabeef,r8
set_cc 0x09 ; Condition codes should not change
sth r8,@(r14,-256)
test_cc 1 0 0 1
test_h_mem 0xbeefbeef,r3
test_h_gr 0xaaaabeef,r8
pass
|