MIPS: Verify the ISA mode and alignment of branch and jump targets
[external/binutils.git] / gas / testsuite / gas / mips / unaligned-jump-2.s
1         .text
2         .set    noreorder
3         .space  0x1000
4
5         .align  4
6         .ent    foo
7 foo:
8         nor     $0, $0
9         jalx    bar0
10          nor    $0, $0
11         jal     bar0
12          nor    $0, $0
13         j       bar0
14          nor    $0, $0
15         jalx    bar1
16          nor    $0, $0
17         jal     bar1
18          nor    $0, $0
19         j       bar1
20          nor    $0, $0
21         jalx    bar2
22          nor    $0, $0
23         jal     bar2
24          nor    $0, $0
25         j       bar2
26          nor    $0, $0
27         jalx    bar3
28          nor    $0, $0
29         jal     bar3
30          nor    $0, $0
31         j       bar3
32          nor    $0, $0
33         jalx    bar4
34          nor    $0, $0
35         jal     bar4
36          nor    $0, $0
37         j       bar4
38          nor    $0, $0
39         jalx    bar4 + 1
40          nor    $0, $0
41         jal     bar4 + 1
42          nor    $0, $0
43         j       bar4 + 1
44          nor    $0, $0
45         jalx    bar4 + 2
46          nor    $0, $0
47         jal     bar4 + 2
48          nor    $0, $0
49         j       bar4 + 2
50          nor    $0, $0
51         jalx    bar4 + 3
52          nor    $0, $0
53         jal     bar4 + 3
54          nor    $0, $0
55         j       bar4 + 3
56          nor    $0, $0
57         jalx    bar4 + 4
58          nor    $0, $0
59         jal     bar4 + 4
60          nor    $0, $0
61         j       bar4 + 4
62          nor    $0, $0
63         jalx    bar16
64          nor    $0, $0
65         jal     bar16
66          nor    $0, $0
67         j       bar16
68          nor    $0, $0
69         jalx    bar17
70          nor    $0, $0
71         jal     bar17
72          nor    $0, $0
73         j       bar17
74          nor    $0, $0
75         jalx    bar18
76          nor    $0, $0
77         jal     bar18
78          nor    $0, $0
79         j       bar18
80          nor    $0, $0
81         jalx    bar18 + 1
82          nor    $0, $0
83         jal     bar18 + 1
84          nor    $0, $0
85         j       bar18 + 1
86          nor    $0, $0
87         jalx    bar18 + 2
88          nor    $0, $0
89         jal     bar18 + 2
90          nor    $0, $0
91         j       bar18 + 2
92          nor    $0, $0
93         jalx    bar18 + 3
94          nor    $0, $0
95         jal     bar18 + 3
96          nor    $0, $0
97         j       bar18 + 3
98          nor    $0, $0
99         jalx    bar18 + 4
100          nor    $0, $0
101         jal     bar18 + 4
102          nor    $0, $0
103         j       bar18 + 4
104          nor    $0, $0
105         jalr    $0, $ra
106          nor    $0, $0
107         .end    foo
108
109 # Force some (non-delay-slot) zero bytes, to make 'objdump' print ...
110         .align  4, 0
111         .space  16
112
113         .macro  obj n:req
114         .globl  bar\@
115         .type   bar\@, @object
116 bar\@ :
117         .byte   0
118         .size   bar\@, . - bar\@
119         .if     \n - 1
120         obj     \n - 1
121         .endif
122         .endm
123
124         .macro  fun n:req
125         .globl  bar\@
126         .type   bar\@, @function
127 bar\@ :
128         .insn
129         .hword  0
130         .size   bar\@, . - bar\@
131         .if     \n - 1
132         fun     \n - 1
133         .endif
134         .endm
135
136         .align  4
137         .set    micromips
138         obj     16
139         fun     8