none/tests/fdleak_cmsg_supp.supp: Add suppressions for older glibc
[valgrind.git] / none / tests / nanomips / pc_instructions.S
blob65d9a38db4c3181bcfbaef462082712493db2bcb
1    .data
2    test_data:
3    .word 0x0
4    .word 0x1
5    .word 0x2
6    .word 0x3
7    .word 0x4
8    .word 0x5
9    .word 0x6
10    .word 0x7
11    .word 0x8
12    .word 0x9
13    .word 0xA
14    .word 0xB
15    .word 0xC
16    .word 0xD
17    .word 0xE
18    .word 0xF
19    print_4_hex_num:
20    .ascii "%08x %08x %08x %08x\n"
21    .byte 0
23    .text
24    .align   2
26    .macro ADDIU_PC  instruction, label, label2, reg, imm
27       .data
28       &label:
29       .ascii "&instruction &reg %d, &imm\n"
30       .byte 0
31       .text
32       &label2:
33       &instruction &reg, &imm
34       move $a1, &reg
35       li $a0, &label
36       li $t0, &label2
37       subu $a1, $a1, $t0
38       lapc[48] $t9, mwrap_printf
39       jalrc $t9
40    .endm
42    .macro ALUI_PC label, label2, reg, imm
43       .data
44       &label:
45       .ascii "aluipc &reg %x, %%pcrel_hi(&imm)\n"
46       .byte 0
47       .text
48       &label2:
49       aluipc &reg, %pcrel_hi(&imm)
50       move $a1, &reg
51       li $a0, &label
52       lui $t0, %hi(&label2)
53       subu $a1, $a1, $t0
54       lapc[48] $t9, mwrap_printf
55       jalrc $t9
56    .endm
58    .macro LOAD_PC label, reg, offset
59       .data
60       &label:
61       .ascii "lwpc &reg %08x &offset\n"
62       .byte 0
63       .text
64       lwpc &reg, test_data + &offset
65       move $a1, &reg
66       li $a0, &label
67       lapc[48] $t9, mwrap_printf
68       jalrc $t9
69    .endm
72    .macro STORE_PC label, reg, offset, val
73       .data
74       &label:
75       .ascii "swpc &reg &val %08x &offset\n"
76       .byte 0
77       .text
78       li &reg, &val
79       swpc &reg, test_data + &offset
80       li $a0, &label
81       lapc[48] $t9, mwrap_printf
82       jalrc $t9
83       balc print_test_data
84       balc cleanup_test_data
85    .endm
87    .globl cleanup_test_data
88    .ent   cleanup_test_data
89    .type  cleanup_test_data, @function
90 cleanup_test_data:
91    li $t0, test_data
92    li $t1, 0
93 loop:
94    swxs $t1, $t1($t0)
95    addiu $t1, $t1, 1
96    bneic $t1, 16, loop
97    jrc   $ra
98    .end  cleanup_test_data
99    .size cleanup_test_data, .-cleanup_test_data
101    .globl print_test_data
102    .ent   print_test_data
103    .type  print_test_data, @function
104 print_test_data:
105    save  16, $ra
106    li $s0, test_data
107    li $a0, print_4_hex_num
108    lw $a1, 0($s0)
109    lw $a2, 4($s0)
110    lw $a3, 8($s0)
111    lw $a4, 12($s0)
112    lapc[48] $t9, mwrap_printf
113    jalrc $t9
114    li $a0, print_4_hex_num
115    lw $a1, 16($s0)
116    lw $a2, 20($s0)
117    lw $a3, 24($s0)
118    lw $a4, 28($s0)
119    lapc[48] $t9, mwrap_printf
120    jalrc $t9
121    li $a0, print_4_hex_num
122    lw $a1, 32($s0)
123    lw $a2, 36($s0)
124    lw $a3, 40($s0)
125    lw $a4, 44($s0)
126    lapc[48] $t9, mwrap_printf
127    jalrc $t9
128    li $a0, print_4_hex_num
129    lw $a1, 48($s0)
130    lw $a2, 52($s0)
131    lw $a3, 56($s0)
132    lw $a4, 60($s0)
133    lapc[48] $t9, mwrap_printf
134    jalrc $t9
135    restore 16, $ra
136    jrc   $ra
137    .set  macro
138    .set  reorder
139    .end  print_test_data
140    .size print_test_data, .-print_test_data
144    .globl main
145    .ent   main
146    .type  main, @function
147 main:
148    .set  noreorder
149    .set  nomacro
150    save  16, $ra
152    # addiupc[32]
153    ADDIU_PC addiupc[32],message1, label1, $s0,-883304
154    ADDIU_PC addiupc[32],message2, label2, $a2,-1367040
155    ADDIU_PC addiupc[32],message3, label3, $t1,-558914
156    ADDIU_PC addiupc[32],message4, label4, $a1,-430560
157    ADDIU_PC addiupc[32],message5, label5, $a5,-1160722
158    ADDIU_PC addiupc[32],message6, label6, $s0,-1342112
159    ADDIU_PC addiupc[32],message7, label7, $a5,1219852
160    ADDIU_PC addiupc[32],message8, label8, $s7,-1244934
161    ADDIU_PC addiupc[32],message9, label9, $t0,-1726688
162    ADDIU_PC addiupc[32],message10, label10, $a5,-1163280
163    ADDIU_PC addiupc[32],message11, label11, $a4,1211532
164    ADDIU_PC addiupc[32],message12, label12, $a1,-1657340
165    ADDIU_PC addiupc[32],message13, label13, $s6,2023420
166    ADDIU_PC addiupc[32],message14, label14, $a7,1287430
167    ADDIU_PC addiupc[32],message15, label15, $a4,-51996
169    # addiupc[48]
170    ADDIU_PC addiupc[48],message16, label16, $a1,177236788
171    ADDIU_PC addiupc[48],message17, label17, $s1,706698569
172    ADDIU_PC addiupc[48],message18, label18, $s2,804137936
173    ADDIU_PC addiupc[48],message19, label19, $s5,1189146130
174    ADDIU_PC addiupc[48],message20, label20, $s6,-444831196
175    ADDIU_PC addiupc[48],message21, label21, $s3,1296895950
176    ADDIU_PC addiupc[48],message22, label22, $a5,-533232603
177    ADDIU_PC addiupc[48],message23, label23, $a5,-1238141567
178    ADDIU_PC addiupc[48],message24, label24, $a5,1438695404
179    ADDIU_PC addiupc[48],message25, label25, $a2,-8616062
180    ADDIU_PC addiupc[48],message26, label26, $a6,-1713242258
181    ADDIU_PC addiupc[48],message27, label27, $t1,766052933
182    ADDIU_PC addiupc[48],message28, label28, $s1,1052359348
183    ADDIU_PC addiupc[48],message29, label29, $a4,1696814736
184    ADDIU_PC addiupc[48],message30, label30, $a5,257472883
186    # aluipc
187    ALUI_PC message31, label31, $t2,0xdbe13000
188    ALUI_PC message32, label32, $a3,0x5c44b000
189    ALUI_PC message33, label33, $s1,0xe4671000
190    ALUI_PC message34, label34, $a4,0x23216000
191    ALUI_PC message35, label35, $a3,0x27b94000
192    ALUI_PC message36, label36, $a0,0x249d8000
193    ALUI_PC message37, label37, $a3,0x4bf6a000
194    ALUI_PC message38, label38, $a5,0x6aa69000
195    ALUI_PC message39, label39, $s1,0xc1fa1000
196    ALUI_PC message40, label40, $a6,0x9b957000
197    ALUI_PC message41, label41, $s0,0x54718000
198    ALUI_PC message42, label42, $s0,0x1c2ca000
199    ALUI_PC message43, label43, $s6,0xd7088000
200    ALUI_PC message44, label44, $s4,0xdfabd000
201    ALUI_PC message45, label45, $a7,0x33879000
203    # lwpc
204    LOAD_PC message46, $s6, 24
205    LOAD_PC message47, $s5, 8
206    LOAD_PC message48, $s1, 12
207    LOAD_PC message49, $s5, 44
208    LOAD_PC message50, $s1, 32
209    LOAD_PC message51, $t0, 16
210    LOAD_PC message52, $s1, 28
211    LOAD_PC message53, $t0, 44
212    LOAD_PC message54, $a3, 24
213    LOAD_PC message55, $t1, 32
214    LOAD_PC message56, $s4, 52
215    LOAD_PC message57, $t2, 0
216    LOAD_PC message58, $s2, 24
217    LOAD_PC message59, $t3, 0
218    LOAD_PC message60, $a2, 8
220    # swpc
221    STORE_PC message61, $a4, 48, 0xc91aa0f8
222    STORE_PC message62, $s2, 48, 0x6f730a24
223    STORE_PC message63, $t0, 52, 0xc2c122ca
224    STORE_PC message64, $a6, 16, 0x8e472ee0
225    STORE_PC message65, $s0, 52, 0x027020a4
226    STORE_PC message66, $t1, 20, 0x99a0cadc
227    STORE_PC message67, $s6, 4, 0xbc8b7a8d
228    STORE_PC message68, $s6, 36, 0xbef3a566
229    STORE_PC message69, $t1, 40, 0xa373f6ed
230    STORE_PC message70, $a4, 52, 0xfa483a90
231    STORE_PC message71, $s0, 0, 0x8a788e97
232    STORE_PC message72, $a0, 0, 0x401629e8
233    STORE_PC message73, $a2, 28, 0x53ea1794
234    STORE_PC message74, $s1, 32, 0xdba7309b
235    STORE_PC message75, $a1, 24, 0x9bfd3f00
237    move $a0, $zero
238    restore 16, $ra
239    jrc   $ra
240    .set  macro
241    .set  reorder
242    .end  main
243    .size main, .-main