mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-26 17:18:55 +00:00
s390: Allow to explicitly omit base register operand in assembly
The base register operand B may be omitted in D(B) by coding D and in D(L,B) by coding D(L). The index register operand X may be omitted in D(X,B) by coding D(B) or explicitly omitted by coding D(,B). In both cases the omitted base register operand value defaults to zero. Allow to explicitly omit the base register operand B in D(X,B) and D(L,B) by coding D(X,) and D(L,). Default the omitted base register operand value to zero. gas/ * config/tc-s390.c: Allow to explicitly omit the base register operand in assembly. * NEWS: Mention that the base register now may be omitted on s390. * gas/testsuite/gas/s390/zarch-base-index-0.s: Update test cases for change to allow to explicitly omit the base register operand in assembly. * gas/testsuite/gas/s390/zarch-base-index-0.d: Likewise. * gas/testsuite/gas/s390/zarch-base-index-0-err.s: Likewise. * gas/testsuite/gas/s390/zarch-base-index-0-err.l: Likewise. * gas/testsuite/gas/s390/zarch-omitted-base-index.s: Likewise. * gas/testsuite/gas/s390/zarch-omitted-base-index.d: Likewise. * gas/testsuite/gas/s390/zarch-omitted-base-index-err.s: Likewise. * gas/testsuite/gas/s390/zarch-omitted-base-index-err.l: Likewise. Reviewed-by: Andreas Krebbel <krebbel@linux.ibm.com> Signed-off-by: Jens Remus <jremus@linux.ibm.com>
This commit is contained in:
4
gas/NEWS
4
gas/NEWS
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user