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