Commit | Line | Data |
---|---|---|
5e0116d5 RS |
1 | .equ $fprel, 2 |
2 | ||
3 | .ent foo | |
4 | foo: | |
5 | # Test various forms of relocation syntax. | |
6 | ||
7 | lui $4,(%hi gvar) | |
8 | addiu $4,$4,(%lo (gvar)) | |
9 | lw $4,%lo gvar($5) | |
10 | ||
11 | # Check that registers aren't confused with $ identifiers. | |
12 | ||
13 | lw $4,($fprel)($fp) | |
14 | ||
15 | # Check various forms of paired relocations. | |
16 | ||
17 | lui $4,%call_hi(gfunc) | |
18 | addu $4,$4,$gp | |
19 | lw $25,%call_lo(gfunc)($4) | |
20 | ||
21 | lui $4,%got_hi(gvar) | |
22 | addu $4,$4,$gp | |
23 | lw $5,%got_lo(gvar)($4) | |
24 | ||
25 | lw $4,%got(lvar)($28) | |
26 | sb $5,%lo(lvar)($4) | |
27 | ||
28 | lui $4,%call_hi(gfunc) | |
29 | addiu $4,$4,%call_lo(gfunc) | |
30 | ||
31 | lui $4,%got_hi(gvar) | |
32 | addiu $4,$4,%got_lo(gvar) | |
33 | ||
34 | lw $4,%got(lvar)($28) | |
35 | addiu $4,$4,%lo(lvar) | |
36 | ||
37 | # Check individual relocations. | |
38 | ||
39 | lw $25,%call16(gfunc)($28) | |
40 | addiu $4,$28,%call16(gfunc) | |
41 | ||
42 | lw $4,%got_disp(gvar)($28) | |
43 | addiu $4,$28,%got_disp(gvar) | |
44 | ||
45 | lw $4,%gp_rel(gvar)($28) | |
46 | sw $4,%gp_rel(gvar)($28) | |
47 | addiu $4,$28,%gp_rel(gvar) | |
48 | ||
49 | .space 64 | |
50 | .end foo | |
51 | ||
52 | .data | |
53 | lvar: .word 1,2 |