blob: b8a0d9ca0ac891d5fb57c2b026e92c7bfc73ac73 [file] [log] [blame]
; 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