Commit | Line | Data |
---|---|---|
95631471 HPN |
1 | ; Test error message for mul insns at locations likely to trig |
2 | ; a hardware bug. | |
3 | ||
4 | ; { dg-do assemble { target cris-*-* } } | |
66798ad6 | 5 | ; { dg-options "--em=criself" } |
95631471 HPN |
6 | |
7 | ; First, .text isn't dword-aligned by default. | |
8 | .text | |
9 | muls.w $r1,$r4 ; { dg-error "align" } | |
10 | nop | |
11 | muls.b $r1,$r4 ; { dg-error "align" } | |
12 | mulu.d $r1,$r4 ; { dg-error "align" } | |
13 | ||
14 | ; Neither are other code sections, aligned to word. | |
15 | .section .text.1,"ax",@progbits | |
16 | .p2align 1 | |
17 | muls.w $r1,$r4 ; { dg-error "align" } | |
18 | nop | |
19 | mulu.b $r1,$r4 ; { dg-error "align" } | |
20 | muls.d $r1,$r4 ; { dg-error "align" } | |
21 | ||
22 | ; Now, a section aligned to dword. Errors for certain relative | |
23 | ; positions only. | |
24 | .section .text.2,"ax",@progbits | |
25 | .p2align 2 | |
26 | mulu.w $r1,$r4 | |
27 | nop | |
28 | muls.d $r1,$r4 | |
29 | mulu.w $r1,$r4 ; { dg-error "align" } | |
30 | ||
31 | ; For good measure, a cache-line-aligned section. | |
32 | .section .text.3,"ax",@progbits | |
33 | .p2align 5 | |
34 | muls.w $r1,$r4 | |
35 | mulu.d $r4,$r1 | |
36 | mulu.b $r1,$r4 | |
37 | .rept 12 | |
38 | nop | |
39 | .endr | |
40 | mulu.b $r1,$r4 ; { dg-error "align" } | |
41 | mulu.b $r1,$r4 | |
42 | ||
43 | ; Last, make sure typical alignment use by a fixed gcc passes. | |
44 | .section .text.4,"ax",@progbits | |
45 | .align 1 | |
46 | moveq 0,$r13 | |
47 | moveq 1,$r13 | |
48 | .p2alignw 5,0x050f,2 | |
49 | muls.d $r1,$r4 | |
50 | .rept 12 | |
51 | moveq 2,$r13 | |
52 | .endr | |
53 | .p2alignw 5,0x050f,2 | |
54 | muls.w $r1,$r4 | |
55 | .p2alignw 5,0x050f,2 | |
56 | muls.b $r4,$r1 |