@@ -1,5 +1,9 @@
-*- text -*-
+* The base register operand in D(X,B) and D(L,B) may be explicitly omitted
+ in assembly on s390. It can now be coded as D(X,) or D(L,) instead of D(X,0)
+ D(X,%r0), D(L,0), and D(L,%r0).
+
* Warn when a register name type does not match the operand type on s390.
Add support for s390-specific option "warn-regtype-mismatch=[strict|relaxed|
no]" to override the register name type check behavior. The default
@@ -1683,13 +1683,17 @@ md_gather_operands (char *str,
else
{
/* We can find an 'early' closing parentheses in e.g. D(L) instead
- of D(L,B). In this case the base register has to be skipped. */
- if (*str == ')')
+ of D(L,B). In this case the base register has to be skipped.
+ Same if the base register has been explicilty omitted in e.g.
+ D(X,) or D(L,). */
+ if (*str == ')' || (str[0] == ',' && str[1] == ')'))
{
operand = s390_operands + *(++opindex_ptr);
if (!(operand->flags & S390_OPERAND_BASE))
- as_bad (_("syntax error; ')' not allowed here"));
+ as_bad (_("syntax error; '%c' not allowed here"), *str);
+ if (*str == ',')
+ str++;
str++;
}
@@ -5,122 +5,70 @@
.*:8: Error: syntax error; missing '\)' after base register
.*:9: Error: bad expression
.*:9: Error: syntax error; missing '\)' after base register
-.*:10: Error: bad expression
-.*:10: Error: syntax error; missing '\)' after base register
-.*:11: Error: bad expression
-.*:11: Error: syntax error; missing '\)' after base register
.*:12: Error: bad expression
.*:12: Error: syntax error; missing '\)' after base register
+.*:13: Error: bad expression
+.*:13: Error: syntax error; missing '\)' after base register
+.*:14: Error: bad expression
+.*:14: Error: syntax error; missing '\)' after base register
.*:15: Error: bad expression
.*:15: Error: syntax error; missing '\)' after base register
.*:16: Error: bad expression
.*:16: Error: syntax error; missing '\)' after base register
-.*:17: Error: bad expression
-.*:17: Error: syntax error; missing '\)' after base register
-.*:18: Error: bad expression
-.*:18: Error: syntax error; missing '\)' after base register
-.*:19: Error: bad expression
-.*:19: Error: syntax error; missing '\)' after base register
-.*:20: Error: bad expression
-.*:20: Error: syntax error; missing '\)' after base register
+.*:17: Error: operand out of range \(0 is not between 1 and 256\)
+.*:18: Error: missing operand
+.*:19: Error: missing operand
+.*:20: Error: missing operand
.*:21: Error: bad expression
+.*:21: Error: operand out of range \(0 is not between 1 and 256\)
+.*:21: Error: operand out of range \(32 is not between 0 and 15\)
.*:21: Error: syntax error; missing '\)' after base register
+.*:21: Error: syntax error; expected ','
.*:21: Error: bad expression
+.*:21: Error: found 'r', expected: '\)'
.*:21: Error: syntax error; missing '\)' after base register
-.*:22: Error: bad expression
-.*:22: Error: syntax error; missing '\)' after base register
-.*:23: Error: bad expression
-.*:23: Error: syntax error; missing '\)' after base register
-.*:24: Error: operand out of range \(0 is not between 1 and 256\)
-.*:25: Error: missing operand
-.*:26: Error: missing operand
+.*:21: Error: junk at end of line: `r2\)'
+.*:22: Error: syntax error; missing '\(' after displacement
+.*:23: Error: invalid length field specified
+.*:26: Error: operand out of range \(0 is not between 1 and 16\)
.*:27: Error: missing operand
-.*:27: Error: bad expression
-.*:27: Error: syntax error; missing '\)' after base register
-.*:28: Error: bad expression
-.*:28: Error: operand out of range \(0 is not between 1 and 256\)
-.*:28: Error: operand out of range \(32 is not between 0 and 15\)
-.*:28: Error: syntax error; missing '\)' after base register
-.*:28: Error: syntax error; expected ','
-.*:28: Error: bad expression
-.*:28: Error: found 'r', expected: '\)'
-.*:28: Error: syntax error; missing '\)' after base register
-.*:28: Error: junk at end of line: `r2\)'
-.*:29: Error: syntax error; missing '\(' after displacement
-.*:30: Error: invalid length field specified
-.*:33: Error: bad expression
-.*:33: Error: syntax error; missing '\)' after base register
-.*:34: Error: bad expression
-.*:34: Error: syntax error; missing '\)' after base register
-.*:35: Error: bad expression
-.*:35: Error: syntax error; missing '\)' after base register
+.*:28: Error: missing operand
+.*:29: Error: missing operand
+.*:30: Error: bad expression
+.*:30: Error: operand out of range \(0 is not between 1 and 16\)
+.*:30: Error: operand out of range \(32 is not between 0 and 15\)
+.*:30: Error: syntax error; missing '\)' after base register
+.*:30: Error: syntax error; expected ','
+.*:30: Error: found ',', expected: '\)'
+.*:31: Error: syntax error; missing '\(' after displacement
+.*:32: Error: operand out of range \(0 is not between 1 and 16\)
+.*:33: Error: missing operand
+.*:34: Error: missing operand
+.*:35: Error: missing operand
.*:36: Error: bad expression
-.*:36: Error: syntax error; missing '\)' after base register
-.*:37: Error: bad expression
-.*:37: Error: syntax error; missing '\)' after base register
-.*:38: Error: bad expression
-.*:38: Error: syntax error; missing '\)' after base register
-.*:39: Error: bad expression
-.*:39: Error: syntax error; missing '\)' after base register
-.*:39: Error: bad expression
-.*:39: Error: syntax error; missing '\)' after base register
-.*:40: Error: bad expression
-.*:40: Error: syntax error; missing '\)' after base register
-.*:41: Error: bad expression
-.*:41: Error: syntax error; missing '\)' after base register
+.*:36: Error: operand out of range \(0 is not between 1 and 16\)
+.*:36: Error: syntax error; expected ','
+.*:37: Error: syntax error; missing '\(' after displacement
+.*:38: Error: operand out of range \(0 is not between 1 and 16\)
+.*:38: Error: operand out of range \(0 is not between 1 and 16\)
+.*:39: Error: missing operand
+.*:39: Error: missing operand
+.*:40: Error: missing operand
+.*:40: Error: missing operand
+.*:41: Error: missing operand
+.*:41: Error: missing operand
+.*:42: Error: bad expression
.*:42: Error: operand out of range \(0 is not between 1 and 16\)
-.*:43: Error: missing operand
-.*:44: Error: missing operand
-.*:45: Error: missing operand
-.*:45: Error: bad expression
-.*:45: Error: syntax error; missing '\)' after base register
+.*:42: Error: operand out of range \(32 is not between 0 and 15\)
+.*:42: Error: syntax error; missing '\)' after base register
+.*:42: Error: syntax error; expected ','
+.*:42: Error: bad expression
+.*:42: Error: missing '\)'
+.*:42: Error: operand out of range \(0 is not between 1 and 16\)
+.*:42: Error: syntax error; expected ','
+.*:43: Error: syntax error; missing '\(' after displacement
+.*:43: Error: syntax error; missing '\(' after displacement
.*:46: Error: bad expression
-.*:46: Error: operand out of range \(0 is not between 1 and 16\)
-.*:46: Error: operand out of range \(32 is not between 0 and 15\)
.*:46: Error: syntax error; missing '\)' after base register
-.*:46: Error: syntax error; expected ','
-.*:46: Error: found ',', expected: '\)'
-.*:47: Error: syntax error; missing '\(' after displacement
-.*:48: Error: operand out of range \(0 is not between 1 and 16\)
-.*:49: Error: missing operand
-.*:50: Error: missing operand
-.*:51: Error: missing operand
-.*:51: Error: bad expression
-.*:51: Error: syntax error; missing '\)' after base register
-.*:52: Error: bad expression
-.*:52: Error: operand out of range \(0 is not between 1 and 16\)
-.*:52: Error: syntax error; expected ','
-.*:53: Error: syntax error; missing '\(' after displacement
-.*:54: Error: operand out of range \(0 is not between 1 and 16\)
-.*:54: Error: operand out of range \(0 is not between 1 and 16\)
-.*:55: Error: missing operand
-.*:55: Error: missing operand
-.*:56: Error: missing operand
-.*:56: Error: missing operand
-.*:57: Error: missing operand
-.*:57: Error: bad expression
-.*:57: Error: syntax error; missing '\)' after base register
-.*:57: Error: missing operand
-.*:57: Error: bad expression
-.*:57: Error: syntax error; missing '\)' after base register
-.*:58: Error: bad expression
-.*:58: Error: operand out of range \(0 is not between 1 and 16\)
-.*:58: Error: operand out of range \(32 is not between 0 and 15\)
-.*:58: Error: syntax error; missing '\)' after base register
-.*:58: Error: syntax error; expected ','
-.*:58: Error: bad expression
-.*:58: Error: missing '\)'
-.*:58: Error: operand out of range \(0 is not between 1 and 16\)
-.*:58: Error: syntax error; expected ','
-.*:59: Error: syntax error; missing '\(' after displacement
-.*:59: Error: syntax error; missing '\(' after displacement
-.*:62: Error: bad expression
-.*:62: Error: syntax error; missing '\)' after base register
-.*:63: Error: bad expression
-.*:63: Error: syntax error; missing '\)' after base register
-.*:64: Error: bad expression
-.*:64: Error: syntax error; missing '\)' after base register
-.*:65: Error: bad expression
-.*:65: Error: syntax error; missing '\)' after base register
-.*:66: Error: bad expression
-.*:66: Error: syntax error; missing '\)' after base register
+.*:47: Error: bad expression
+.*:47: Error: syntax error; missing '\)' after base register
@@ -5,21 +5,14 @@ foo:
mvi 16(),32 # syntax error: empty parentheses
# R1,D2(X2,B2)
- a %r1,16(%r2,) # syntax error: explicitly omitted base
- a %r1,16(%r0,) # syntax error: explicitly omitted base
- a %r1,16(0,) # syntax error: explicitly omitted base
a %r1,16(,) # syntax error: explicitly omitted index & base
a %r1,16() # syntax error: empty parentheses
# D1(L1,B1),D2(B2)
- mvc 16(1,),32(%r2) # syntax error: explicitly omitted base
mvc 16(1,%r1),32() # syntax error: empty parentheses
mvc 16(1,%r0),32() # syntax error: empty parentheses
mvc 16(1,0),32() # syntax error: empty parentheses
- mvc 16(1,),32(%r0) # syntax error: explicitly omitted base
- mvc 16(1,),32(0) # syntax error: explicitly omitted base
mvc 16(1,),32() # syntax error: explicitly omitted base & empty parentheses
- mvc 16(1,),32 # syntax error: explicitly omitted base
mvc 16(1),32() # syntax error: empty parentheses
mvc 16(0,%r1),32(%r2) # syntax error: length 0
mvc 16(,%r1),32(%r2) # syntax error: explicitly omitted length
@@ -30,15 +23,6 @@ foo:
mvc 16(%r1),32(%r2) # syntax error: omitted length
# D1(L1,B1),D2(L2,B2)
- unpk 16(1,),32(2,%r2) # syntax error: explicitly omitted base
- unpk 16(1,%r1),32(2,) # syntax error: explicitly omitted base
- unpk 16(1,%r0),32(2,) # syntax error: explicitly omitted base
- unpk 16(1,0),32(2,) # syntax error: explicitly omitted base
- unpk 16(1,),32(2,%r0) # syntax error: explicitly omitted base
- unpk 16(1,),32(2,0) # syntax error: explicitly omitted base
- unpk 16(1,),32(2,) # syntax error: explicitly omitted base
- unpk 16(1,),32(2) # syntax error: explicitly omitted base
- unpk 16(1),32(2,) # syntax error: explicitly omitted base
unpk 16(0,%r1),32(2,%r2) # syntax error: length 0
unpk 16(,%r1),32(2,%r2) # syntax error: explicitly omitted length
unpk 16(,1),32(2,%r2) # syntax error: explicitly omitted length
@@ -59,8 +43,5 @@ foo:
unpk 16,32 # syntax error: missing lengths
# V1,D2(VX2,B2),M3
- vgef %v1,16(%v2,),0 # syntax error: explicitly omitted base
- vgef %v1,16(%v0,),0 # syntax error: explicitly omitted base
- vgef %v1,16(0,),0 # syntax error: explicitly omitted base
vgef %v1,16(,),0 # syntax error: explicitly omitted index & base
vgef %v1,16(),0 # syntax error: empty parentheses
@@ -19,6 +19,9 @@ Disassembly of section .text:
.*: 5a 10 30 10 [ ]*a %r1,16\(%r3\)
.*: 5a 12 00 10 [ ]*a %r1,16\(%r2,0\)
.*: 5a 12 00 10 [ ]*a %r1,16\(%r2,0\)
+.*: 5a 12 00 10 [ ]*a %r1,16\(%r2,0\)
+.*: 5a 10 00 10 [ ]*a %r1,16
+.*: 5a 10 00 10 [ ]*a %r1,16
.*: 5a 10 00 10 [ ]*a %r1,16
.*: 5a 10 00 10 [ ]*a %r1,16
.*: 5a 10 00 10 [ ]*a %r1,16
@@ -34,6 +37,7 @@ Disassembly of section .text:
.*: d2 00 00 10 20 20 [ ]*mvc 16\(1,0\),32\(%r2\)
.*: d2 00 00 10 20 20 [ ]*mvc 16\(1,0\),32\(%r2\)
.*: d2 00 00 10 20 20 [ ]*mvc 16\(1,0\),32\(%r2\)
+.*: d2 00 00 10 20 20 [ ]*mvc 16\(1,0\),32\(%r2\)
.*: d2 00 10 10 00 20 [ ]*mvc 16\(1,%r1\),32
.*: d2 00 10 10 00 20 [ ]*mvc 16\(1,%r1\),32
.*: d2 00 10 10 00 20 [ ]*mvc 16\(1,%r1\),32
@@ -46,14 +50,26 @@ Disassembly of section .text:
.*: d2 00 00 10 00 20 [ ]*mvc 16\(1,0\),32
.*: d2 00 00 10 00 20 [ ]*mvc 16\(1,0\),32
.*: d2 00 00 10 00 20 [ ]*mvc 16\(1,0\),32
+.*: d2 00 00 10 00 20 [ ]*mvc 16\(1,0\),32
+.*: d2 00 00 10 00 20 [ ]*mvc 16\(1,0\),32
+.*: d2 00 00 10 00 20 [ ]*mvc 16\(1,0\),32
.*: d2 00 00 00 00 00 [ ]*mvc 0\(1,0\),0
.*: f3 01 10 10 20 20 [ ]*unpk 16\(1,%r1\),32\(2,%r2\)
.*: f3 01 00 10 20 20 [ ]*unpk 16\(1,0\),32\(2,%r2\)
.*: f3 01 00 10 20 20 [ ]*unpk 16\(1,0\),32\(2,%r2\)
.*: f3 01 00 10 20 20 [ ]*unpk 16\(1,0\),32\(2,%r2\)
+.*: f3 01 00 10 20 20 [ ]*unpk 16\(1,0\),32\(2,%r2\)
.*: f3 01 10 10 00 20 [ ]*unpk 16\(1,%r1\),32\(2,0\)
.*: f3 01 10 10 00 20 [ ]*unpk 16\(1,%r1\),32\(2,0\)
.*: f3 01 10 10 00 20 [ ]*unpk 16\(1,%r1\),32\(2,0\)
+.*: f3 01 10 10 00 20 [ ]*unpk 16\(1,%r1\),32\(2,0\)
+.*: f3 01 00 10 00 20 [ ]*unpk 16\(1,0\),32\(2,0\)
+.*: f3 01 00 10 00 20 [ ]*unpk 16\(1,0\),32\(2,0\)
+.*: f3 01 00 10 00 20 [ ]*unpk 16\(1,0\),32\(2,0\)
+.*: f3 01 00 10 00 20 [ ]*unpk 16\(1,0\),32\(2,0\)
+.*: f3 01 00 10 00 20 [ ]*unpk 16\(1,0\),32\(2,0\)
+.*: f3 01 00 10 00 20 [ ]*unpk 16\(1,0\),32\(2,0\)
+.*: f3 01 00 10 00 20 [ ]*unpk 16\(1,0\),32\(2,0\)
.*: f3 01 00 10 00 20 [ ]*unpk 16\(1,0\),32\(2,0\)
.*: f3 01 00 10 00 20 [ ]*unpk 16\(1,0\),32\(2,0\)
.*: f3 01 00 10 00 20 [ ]*unpk 16\(1,0\),32\(2,0\)
@@ -71,6 +87,9 @@ Disassembly of section .text:
.*: e7 10 30 10 00 13 [ ]*vgef %v1,16\(%r3\),0
.*: e7 12 00 10 00 13 [ ]*vgef %v1,16\(%v2,0\),0
.*: e7 12 00 10 00 13 [ ]*vgef %v1,16\(%v2,0\),0
+.*: e7 12 00 10 00 13 [ ]*vgef %v1,16\(%v2,0\),0
+.*: e7 10 00 10 00 13 [ ]*vgef %v1,16,0
+.*: e7 10 00 10 00 13 [ ]*vgef %v1,16,0
.*: e7 10 00 10 00 13 [ ]*vgef %v1,16,0
.*: e7 10 00 10 00 13 [ ]*vgef %v1,16,0
.*: e7 10 00 10 00 13 [ ]*vgef %v1,16,0
@@ -18,13 +18,13 @@ foo:
a %r1,16(%r3)
a %r1,16(%r2,%r0)
a %r1,16(%r2,0)
-# a %r1,16(%r2,) # syntax error: explicitly omitted base
+ a %r1,16(%r2,) # syntax error: explicitly omitted base
a %r1,16(%r0,%r0)
a %r1,16(%r0,0)
-# a %r1,16(%r0,) # syntax error: explicitly omitted base
+ a %r1,16(%r0,) # syntax error: explicitly omitted base
a %r1,16(0,%r0)
a %r1,16(0,0)
-# a %r1,16(0,) # syntax error: explicitly omitted base
+ a %r1,16(0,) # syntax error: explicitly omitted base
a %r1,16(0,%r0)
a %r1,16(,%r0)
a %r1,16(,0)
@@ -39,7 +39,7 @@ foo:
mvc 16(1,%r1),32(%r2)
mvc 16(1,%r0),32(%r2)
mvc 16(1,0),32(%r2)
-# mvc 16(1,),32(%r2) # syntax error: explicitly omitted base
+ mvc 16(1,),32(%r2)
mvc 16(1),32(%r2)
mvc 16(1,%r1),32(%r0)
mvc 16(1,%r1),32(0)
@@ -53,10 +53,10 @@ foo:
mvc 16(1,0),32(0)
# mvc 16(1,0),32() # syntax error: empty parentheses
mvc 16(1,0),32
-# mvc 16(1,),32(%r0) # syntax error: explicitly omitted base
-# mvc 16(1,),32(0) # syntax error: explicitly omitted base
+ mvc 16(1,),32(%r0)
+ mvc 16(1,),32(0)
# mvc 16(1,),32() # syntax error: explicitly omitted base & empty parentheses
-# mvc 16(1,),32 # syntax error: explicitly omitted base
+ mvc 16(1,),32
mvc 16(1),32(%r0)
mvc 16(1),32(0)
# mvc 16(1),32() # syntax error: empty parentheses
@@ -67,27 +67,27 @@ foo:
unpk 16(1,%r1),32(2,%r2)
unpk 16(1,%r0),32(2,%r2)
unpk 16(1,0),32(2,%r2)
-# unpk 16(1,),32(2,%r2) # syntax error: explicitly omitted base
+ unpk 16(1,),32(2,%r2)
unpk 16(1),32(2,%r2)
unpk 16(1,%r1),32(2,%r0)
unpk 16(1,%r1),32(2,0)
-# unpk 16(1,%r1),32(2,) # syntax error: explicitly omitted base
+ unpk 16(1,%r1),32(2,)
unpk 16(1,%r1),32(2)
unpk 16(1,%r0),32(2,%r0)
unpk 16(1,%r0),32(2,0)
-# unpk 16(1,%r0),32(2,) # syntax error: explicitly omitted base
+ unpk 16(1,%r0),32(2,)
unpk 16(1,%r0),32(2)
unpk 16(1,0),32(2,%r0)
unpk 16(1,0),32(2,0)
-# unpk 16(1,0),32(2,) # syntax error: explicitly omitted base
+ unpk 16(1,0),32(2,)
unpk 16(1,0),32(2)
-# unpk 16(1,),32(2,%r0) # syntax error: explicitly omitted base
-# unpk 16(1,),32(2,0) # syntax error: explicitly omitted base
-# unpk 16(1,),32(2,) # syntax error: explicitly omitted base
-# unpk 16(1,),32(2) # syntax error: explicitly omitted base
+ unpk 16(1,),32(2,%r0)
+ unpk 16(1,),32(2,0)
+ unpk 16(1,),32(2,)
+ unpk 16(1,),32(2)
unpk 16(1),32(2,%r0)
unpk 16(1),32(2,0)
-# unpk 16(1),32(2,) # syntax error: explicitly omitted base
+ unpk 16(1),32(2,)
unpk 16(1),32(2)
unpk 0(1),0(2)
@@ -99,13 +99,13 @@ foo:
vgef %v1,16(%r3),0
vgef %v1,16(%v2,%r0),0
vgef %v1,16(%v2,0),0
-# vgef %v1,16(%v2,),0 # syntax error: explicitly omitted base
+ vgef %v1,16(%v2,),0
vgef %v1,16(%v0,%r0),0
vgef %v1,16(%v0,0),0
-# vgef %v1,16(%v0,),0 # syntax error: explicitly omitted base
+ vgef %v1,16(%v0,),0
vgef %v1,16(0,%r0),0
vgef %v1,16(0,0),0
-# vgef %v1,16(0,),0 # syntax error: explicitly omitted base
+ vgef %v1,16(0,),0
vgef %v1,16(,%r0),0
vgef %v1,16(,0),0
# vgef %v1,16(,),0 # syntax error: explicitly omitted index & base
@@ -3,23 +3,19 @@
.*:5: Error: syntax error; missing '\)' after base register
.*:8: Error: bad expression
.*:8: Error: syntax error; missing '\)' after base register
-.*:9: Error: bad expression
-.*:9: Error: syntax error; missing '\)' after base register
+.*:11: Warning: operand 2: expected general register name as base register
.*:12: Error: bad expression
.*:12: Error: syntax error; missing '\)' after base register
-.*:13: Warning: operand 2: expected general register name as base register
-.*:14: Error: bad expression
-.*:14: Error: syntax error; missing '\)' after base register
-.*:17: Error: missing operand
-.*:18: Error: missing operand
-.*:19: Error: invalid length field specified
-.*:20: Error: bad expression
-.*:20: Error: operand out of range \(0 is not between 1 and 256\)
-.*:20: Error: operand out of range \(32 is not between 0 and 15\)
-.*:20: Error: syntax error; missing '\)' after base register
-.*:20: Error: syntax error; expected ','
-.*:20: Error: bad expression
-.*:20: Error: found 'r', expected: '\)'
-.*:20: Error: syntax error; missing '\)' after base register
-.*:20: Error: junk at end of line: `r2\)'
-.*:21: Error: syntax error; missing '\(' after displacement
+.*:15: Error: missing operand
+.*:16: Error: missing operand
+.*:17: Error: invalid length field specified
+.*:18: Error: bad expression
+.*:18: Error: operand out of range \(0 is not between 1 and 256\)
+.*:18: Error: operand out of range \(32 is not between 0 and 15\)
+.*:18: Error: syntax error; missing '\)' after base register
+.*:18: Error: syntax error; expected ','
+.*:18: Error: bad expression
+.*:18: Error: found 'r', expected: '\)'
+.*:18: Error: syntax error; missing '\)' after base register
+.*:18: Error: junk at end of line: `r2\)'
+.*:19: Error: syntax error; missing '\(' after displacement
@@ -5,11 +5,9 @@ foo:
clm %r1,0b1000,16()
# R1,D2(X2,B2)
- a %r1,16(%r2,)
a %r1,16()
# V1,D2(VX2,B2),M3
- vgef %v1,16(%v2,),0
vgef %v1,16(%v2),0
vgef %v1,16(),0
@@ -9,10 +9,12 @@ Disassembly of section .text:
.*: bd 18 20 10 [ ]*clm %r1,8,16\(%r2\)
.*: bd 18 00 10 [ ]*clm %r1,8,16
.*: 5a 12 30 10 [ ]*a %r1,16\(%r2,%r3\)
+.*: 5a 12 00 10 [ ]*a %r1,16\(%r2,0\)
.*: 5a 10 30 10 [ ]*a %r1,16\(%r3\)
.*: 5a 10 30 10 [ ]*a %r1,16\(%r3\)
.*: 5a 10 00 10 [ ]*a %r1,16
.*: e7 12 30 10 00 13 [ ]*vgef %v1,16\(%v2,%r3\),0
+.*: e7 12 00 10 00 13 [ ]*vgef %v1,16\(%v2,0\),0
.*: e7 10 30 10 00 13 [ ]*vgef %v1,16\(%r3\),0
.*: e7 10 30 10 00 13 [ ]*vgef %v1,16\(%r3\),0
.*: e7 10 00 10 00 13 [ ]*vgef %v1,16,0
@@ -20,3 +22,4 @@ Disassembly of section .text:
.*: d2 00 10 10 00 20 [ ]*mvc 16\(1,%r1\),32
.*: d2 00 00 10 20 20 [ ]*mvc 16\(1,0\),32\(%r2\)
.*: d2 00 00 10 00 20 [ ]*mvc 16\(1,0\),32
+.*: 07 07 [ ]*nopr %r7
@@ -7,12 +7,14 @@ foo:
# R1,D1(X2,B2)
a %r1,16(%r2,%r3)
+ a %r1,16(%r2,)
a %r1,16(,%r3)
a %r1,16(%r3)
a %r1,16
# V1,D2(VX2,B2),M3
vgef %v1,16(%v2,%r3),0
+ vgef %v1,16(%v2,),0
vgef %v1,16(,%r3),0
vgef %v1,16(%r3),0
vgef %v1,16,0