xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/mips/r6-64.s (revision 4b169a6ba595ae283ca507b26b15fdff40495b1c)
1# mips64 specific r6 tests (non FPU)
2# mach:  mips64r6
3# as:    -mabi=eabi
4# ld:    -N -Ttext=0x80010000 -Tdata=0x80020000
5# output: *\\npass\\n
6
7  .include "testutils.inc"
8  .include "utils-r6.inc"
9
10  .data
11d0:   .dword 0
12dval: .dword 0xaa55bb66cc77dd88
13d1:   .dword 0xaaaabbbbccccdddd
14d2:   .dword 256
15dlo:  .dword 0xaabbbbccccdddd00
16dhi:  .dword 0xffffffffffffffaa
17dhiu: .dword 0x00000000000000aa
18d3:   .dword 0xffaaaabbbbccccde
19d4:   .dword 0xffffffffffffffdd
20d5:   .dword 0x00000000000000dd
21d6:   .dword 0x00aaaabbbbccccdd
22d7:   .dword 0xeeeeffff00001111
23d8:   .dword 0xbbccccddddeeeeff
24d9:   .dword 0x000000ddaaaabbbb
25d10:  .dword 0x5555dddd3333bbbb
26d11:  .dword 0x9999999999999999
27d12:  .dword 56
28d13:  .dword 8
29d14:  .dword 57
30d15:  .dword 0x000000ddaaaac98b
31d16:  .dword 0xffffffffdead00dd
32d17:  .dword 0xffffffffc0de0000
33d18:  .dword 0x0000123400000000
34d19:  .dword 0xffffabcddead00dd
35d20:  .dword 0xc0de000000000000
36d21:  .dword 0x8000abcddead00dd
37dmask:.dword 0xffffffffffff0000
38dval1: .word 0x1234abcd
39dval2: .word 0xffee0000
40dval3:	.dword 0xffffffffffffffff
41  .fill 240,1,0
42dval4:	.dword 0x5555555555555555
43  .fill  264,1,0
44dval5:	.dword 0xaaaaaaaaaaaaaaaa
45
46  .text
47
48  setup
49
50  .set noreorder
51
52  .ent DIAG
53DIAG:
54
55  writemsg "[1] Test DMUL"
56  r6ck_2r dmul, 6, 5, 30
57  r6ck_2r dmul, -7, 9, -63
58  r6ck_2r dmul, -1, 1, -1
59  r6ck_2dr dmul, d1, d2, dlo
60
61  writemsg "[2] Test DMUH"
62  r6ck_2r dmuh, 6, 5, 0
63  r6ck_2r dmuh, -7, 9, 0xffffffffffffffff
64  r6ck_2r dmuh, -1, 1, -1
65  r6ck_2dr dmuh, d1, d2, dhi
66
67  writemsg "[3] Test DMULU"
68  r6ck_2r dmulu, 12, 10, 120
69  r6ck_2r dmulu, -1, 1, -1
70  r6ck_2dr dmulu, d1, d2, dlo
71
72  writemsg "[4] Test DMUHU"
73  r6ck_2r dmuhu, 12, 10, 0
74  r6ck_2r dmuhu, -1, 1, 0
75  r6ck_2dr dmuhu, d1, d2, dhiu
76
77  writemsg "[5] Test DDIV"
78  r6ck_2r ddiv, 10001, 10, 1000
79  r6ck_2r ddiv, -123456, 560, -220
80  r6ck_2dr ddiv, d1, d2, d3
81
82  writemsg "[6] Test DMOD"
83  r6ck_2r dmod, 10001, 10, 1
84  r6ck_2r dmod, -123456, 560, 0xffffffffffffff00
85  r6ck_2dr dmod, d1, d2, d4
86
87  writemsg "[7] Test DDIVU"
88  r6ck_2r ddivu, 9, 100, 0
89  r6ck_2dr ddivu, d1, d2, d6
90
91  writemsg "[8] Test DMODU"
92  r6ck_2r dmodu, 9, 100, 9
93  r6ck_2dr dmodu, d1, d2, d5
94
95  writemsg "[9] Test DALIGN"
96  r6ck_2dr1i dalign, d7, d1, 3, d8
97  r6ck_2dr1i dalign, d1, d5, 4, d9
98
99  writemsg "[10] Test DBITSWAP"
100  r6ck_1dr dbitswap, d1, d10
101  r6ck_1dr dbitswap, d11, d11
102
103  writemsg "[11] Test DCLZ"
104  r6ck_1dr dclz, d5, d12
105  r6ck_1dr dclz, d6, d13
106
107  writemsg "[12] Test DCLO"
108  r6ck_1dr dclo, d5, d0
109  r6ck_1dr dclo, dhi, d14
110
111  writemsg "[13] Test DLSA"
112  r6ck_2r1i dlsa, 0x82, 0x2000068, 4, 0x2000888
113  r6ck_2dr1i dlsa, d5, d9, 4, d15
114
115  writemsg "[14] Test DAUI"
116  r6ck_1dr1i daui, d5, 0xdead, d16
117  r6ck_1dr1i daui, d0, 0xc0de, d17
118
119  writemsg "[15] Test DAHI"
120  r6ck_0dr1i dahi, d0, 0x1234, d18
121  r6ck_0dr1i dahi, d16, 0xabce, d19
122
123  writemsg "[16] Test DATI"
124  r6ck_0dr1i dati, d0, 0xc0de, d20
125  r6ck_0dr1i dati, d19, 0x8001, d21
126
127  writemsg "[17] Test LDPC"
128  ld $5, dval
129  nop
130  ldpc $4, dval
131  fp_assert $4, $5
132
133  writemsg "[18] Test LWUPC"
134  lwu $5, dval1
135  lwupc $4, dval1
136  fp_assert $4, $5
137  lwu $5, dval2
138  lwupc $4, dval2
139  fp_assert $4, $5
140
141  writemsg "[19] Test LLD"
142  ld $5, dval3
143  dla $3, dval4
144  lld $4, -248($3)
145  fp_assert $4, $5
146
147  writemsg "[20] Test SCD"
148  lld $4, -248($3)
149  dli $4, 0xafaf
150  scd $4, -248($3)
151  ld $5, dval3
152  dli $4, 0xafaf
153  fp_assert $4, $5
154
155  pass
156
157  .end DIAG
158