@@ -81,23 +81,23 @@ Disassembly of section .text:
.*: f3 01 00 10 00 20 [ ]*unpk 16\(1,0\),32\(2,0\)
.*: f3 01 00 00 00 00 [ ]*unpk 0\(1,0\),0\(2,0\)
.*: e7 12 30 10 00 13 [ ]*vgef %v1,16\(%v2,%r3\),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 30 10 00 13 [ ]*vgef %v1,16\(%r3\),0
-.*: e7 10 30 10 00 13 [ ]*vgef %v1,16\(%r3\),0
+.*: e7 10 30 10 00 13 [ ]*vgef %v1,16\(%v0,%r3\),0
+.*: e7 10 30 10 00 13 [ ]*vgef %v1,16\(%v0,%r3\),0
+.*: e7 10 30 10 00 13 [ ]*vgef %v1,16\(%v0,%r3\),0
+.*: e7 10 30 10 00 13 [ ]*vgef %v1,16\(%v0,%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
-.*: 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 00 00 10 00 13 [ ]*vgef %v0,16,0
-.*: e7 00 00 10 00 13 [ ]*vgef %v0,16,0
-.*: e7 00 00 00 00 13 [ ]*vgef %v0,0,0
+.*: e7 10 00 10 00 13 [ ]*vgef %v1,16\(%v0,0\),0
+.*: e7 10 00 10 00 13 [ ]*vgef %v1,16\(%v0,0\),0
+.*: e7 10 00 10 00 13 [ ]*vgef %v1,16\(%v0,0\),0
+.*: e7 10 00 10 00 13 [ ]*vgef %v1,16\(%v0,0\),0
+.*: e7 10 00 10 00 13 [ ]*vgef %v1,16\(%v0,0\),0
+.*: e7 10 00 10 00 13 [ ]*vgef %v1,16\(%v0,0\),0
+.*: e7 10 00 10 00 13 [ ]*vgef %v1,16\(%v0,0\),0
+.*: e7 10 00 10 00 13 [ ]*vgef %v1,16\(%v0,0\),0
+.*: e7 10 00 10 00 13 [ ]*vgef %v1,16\(%v0,0\),0
+.*: e7 00 00 10 00 13 [ ]*vgef %v0,16\(%v0,0\),0
+.*: e7 00 00 10 00 13 [ ]*vgef %v0,16\(%v0,0\),0
+.*: e7 00 00 00 00 13 [ ]*vgef %v0,0\(%v0,0\),0
.*: 07 07 [ ]*nopr %r7
@@ -15,9 +15,9 @@ Disassembly of section .text:
.*: 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
+.*: e7 10 30 10 00 13 [ ]*vgef %v1,16\(%v0,%r3\),0
+.*: e7 10 30 10 00 13 [ ]*vgef %v1,16\(%v0,%r3\),0
+.*: e7 10 00 10 00 13 [ ]*vgef %v1,16\(%v0,0\),0
.*: d2 00 10 10 20 20 [ ]*mvc 16\(1,%r1\),32\(%r2\)
.*: d2 00 10 10 00 20 [ ]*mvc 16\(1,%r1\),32
.*: d2 00 00 10 20 20 [ ]*mvc 16\(1,0\),32\(%r2\)
@@ -267,8 +267,9 @@ s390_print_insn_with_opcode (bfd_vma memaddr,
union operand_value val = s390_extract_operand (buffer, operand);
unsigned long flags = operand->flags;
- /* Omit index register 0. */
- if ((flags & S390_OPERAND_INDEX) && val.u == 0)
+ /* Omit index register 0, except for vector index register 0. */
+ if ((flags & S390_OPERAND_INDEX) && !(flags & S390_OPERAND_VR)
+ && val.u == 0)
continue;
/* Omit base register 0, if no or omitted index register 0. */
if ((flags & S390_OPERAND_BASE) && val.u == 0 && separator == '(')
@@ -310,12 +311,8 @@ s390_print_insn_with_opcode (bfd_vma memaddr,
{
info->fprintf_styled_func (info->stream, dis_style_text,
"%c", separator);
- if ((flags & S390_OPERAND_INDEX) && val.u == 0)
- info->fprintf_styled_func (info->stream, dis_style_register,
- "%u", val.u);
- else
- info->fprintf_styled_func (info->stream, dis_style_register,
- "%%v%i", val.u);
+ info->fprintf_styled_func (info->stream, dis_style_register,
+ "%%v%i", val.u);
}
else if (flags & S390_OPERAND_AR)
{