Properly handle multiple operands for x32 quad.

gas/

2011-03-29  H.J. Lu  <hongjiu.lu@intel.com>

	* config/tc-i386.c (handle_quad): Properly handle multiple
	operands.

gas/testsuite/

2011-03-29  H.J. Lu  <hongjiu.lu@intel.com>

	* gas/i386/ilp32/quad.d: Add tests for multiple operands.
	* gas/i386/ilp32/quad.s: Likewise.
This commit is contained in:
H.J. Lu
2011-03-29 12:40:51 +00:00
parent fc99ebdc2b
commit 75c1c785ac
5 changed files with 23 additions and 8 deletions

View File

@ -1,3 +1,8 @@
2011-03-29 H.J. Lu <hongjiu.lu@intel.com>
* config/tc-i386.c (handle_quad): Properly handle multiple
operands.
2011-03-29 Mike Frysinger <vapier@gentoo.org> 2011-03-29 Mike Frysinger <vapier@gentoo.org>
* config/bfin-parse.y (BYTEUNPACK): Return yyerror when dest * config/bfin-parse.y (BYTEUNPACK): Return yyerror when dest

View File

@ -9182,13 +9182,6 @@ handle_quad (int nbytes)
if (exp.X_op != O_constant) if (exp.X_op != O_constant)
nbytes = 4; nbytes = 4;
emit_expr (&exp, (unsigned int) nbytes); emit_expr (&exp, (unsigned int) nbytes);
}
while (*input_line_pointer++ == ',');
input_line_pointer--; /* Put terminator back into stream. */
demand_empty_rest_of_line ();
/* Zero-extends to 8 bytes if not constant. */ /* Zero-extends to 8 bytes if not constant. */
if (nbytes == 4) if (nbytes == 4)
{ {
@ -9196,5 +9189,12 @@ handle_quad (int nbytes)
exp.X_op = O_constant; exp.X_op = O_constant;
emit_expr (&exp, nbytes); emit_expr (&exp, nbytes);
} }
nbytes = 8;
}
while (*input_line_pointer++ == ',');
input_line_pointer--; /* Put terminator back into stream. */
demand_empty_rest_of_line ();
} }
#endif /* OBJ_ELF || OBJ_MAYBE_ELF */ #endif /* OBJ_ELF || OBJ_MAYBE_ELF */

View File

@ -1,3 +1,8 @@
2011-03-29 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/ilp32/quad.d: Add tests for multiple operands.
* gas/i386/ilp32/quad.s: Likewise.
2011-03-29 Mike Frysinger <vapier@gentoo.org> 2011-03-29 Mike Frysinger <vapier@gentoo.org>
* gas/bfin/expected_errors.s: Add invalid BYTEUNPACK insn tests. * gas/bfin/expected_errors.s: Add invalid BYTEUNPACK insn tests.

View File

@ -7,8 +7,12 @@ RELOCATION RECORDS FOR \[.data\]:
OFFSET +TYPE +VALUE OFFSET +TYPE +VALUE
0+ R_X86_64_32 +foo 0+ R_X86_64_32 +foo
0+10 R_X86_64_32 +bar 0+10 R_X86_64_32 +bar
0+20 R_X86_64_32 +foo
0+30 R_X86_64_32 +bar
Contents of section .data: Contents of section .data:
0000 00000000 00000000 efcdab90 78674512 ............xgE. 0000 00000000 00000000 efcdab90 78674512 ............xgE.
0010 00000000 00000000 ffffffff ffffffff ................ 0010 00000000 00000000 ffffffff ffffffff ................
0020 00000000 00000000 efcdab90 78674512 ............xgE.
0030 00000000 00000000 ffffffff ffffffff ................

View File

@ -3,3 +3,4 @@
.quad 0x1245677890abcdef .quad 0x1245677890abcdef
.quad bar .quad bar
.quad -1 .quad -1
.quad foo, 0x1245677890abcdef, bar, -1