Home | History | Annotate | Download | only in cris
      1 ; Test that we get errors when we require a register prefix.
      2 
      3 ; { dg-do assemble }
      4 
      5 	.syntax register_prefix
      6 start:
      7 
      8 ; Some simple tests that we indeed require a register prefix, and some
      9 ; that should not be flagged as syntax errors.
     10 
     11 	push srp		; { dg-error "(Illegal|Invalid) operands" }
     12 	push r3			; { dg-error "(Illegal|Invalid) operands" }
     13 	move.d $r7,r8		; { dg-error "(Illegal|Invalid) operands" }
     14 	move.d r8,[$r11]	; { dg-error "(Illegal|Invalid) operands" }
     15 	move.d $r8,[$r11+]
     16 	move.d $r8,[$r10+$r9.b]
     17 	move.d $r7,[$r10+[$r1].d]
     18 	move.d $r7,[$r10+[$r3+].w]
     19 	move $r8,srp		; { dg-error "(Illegal|Invalid) operands" }
     20 	move ccr,$r13		; { dg-error "(Illegal|Invalid) operands" }
     21 	movem r4,[$r12+]	; { dg-error "(Illegal|Invalid) operands" }
     22 
     23 ; Here we have no ambiguity; r10 can only be a symbol when we reuire a
     24 ; prefix.  It does not just miss a size specifier, e.g. as in [r12+r10.d].
     25 	move.d $r13,[$r12+r10]
     26 
     27 	.syntax no_register_prefix
     28 
     29 ; Perhaps in this one we should backtrack and retry r10 as a symbol, but
     30 ; the ambiguity is closer to a programming error, so we should catch it as
     31 ; such.
     32 	move.d $r13,[$r12+r10]	; { dg-error "(Illegal|Invalid) operands" }
     33 	move.d r13,[r12+r16]	; No register named r16 so must be a symbol.
     34 	nop
     35