; Test error message for mul insns at locations likely to trig ; a hardware bug. ; { dg-do assemble { target cris-*-* } } ; { dg-options "--em=criself" } ; First, .text isn't dword-aligned by default. .text muls.w $r1,$r4 ; { dg-error "align" } nop muls.b $r1,$r4 ; { dg-error "align" } mulu.d $r1,$r4 ; { dg-error "align" } ; Neither are other code sections, aligned to word. .section .text.1,"ax",@progbits .p2align 1 muls.w $r1,$r4 ; { dg-error "align" } nop mulu.b $r1,$r4 ; { dg-error "align" } muls.d $r1,$r4 ; { dg-error "align" } ; Now, a section aligned to dword. Errors for certain relative ; positions only. .section .text.2,"ax",@progbits .p2align 2 mulu.w $r1,$r4 nop muls.d $r1,$r4 mulu.w $r1,$r4 ; { dg-error "align" } ; For good measure, a cache-line-aligned section. .section .text.3,"ax",@progbits .p2align 5 muls.w $r1,$r4 mulu.d $r4,$r1 mulu.b $r1,$r4 .rept 12 nop .endr mulu.b $r1,$r4 ; { dg-error "align" } mulu.b $r1,$r4 ; Last, make sure typical alignment use by a fixed gcc passes. .section .text.4,"ax",@progbits .align 1 moveq 0,$r13 moveq 1,$r13 .p2alignw 5,0x050f,2 muls.d $r1,$r4 .rept 12 moveq 2,$r13 .endr .p2alignw 5,0x050f,2 muls.w $r1,$r4 .p2alignw 5,0x050f,2 muls.b $r4,$r1