diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2011-03-29 12:40:51 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2011-03-29 12:40:51 +0000 |
commit | 75c1c785ac61f79188dde9923a90eb918ec11b33 (patch) | |
tree | 8001ccfba308b175206ee38b1bfba821aac9449d /gas/config/tc-i386.c | |
parent | fc99ebdc2b470b31622d9efc28fca6f03945532c (diff) | |
download | gdb-75c1c785ac61f79188dde9923a90eb918ec11b33.zip gdb-75c1c785ac61f79188dde9923a90eb918ec11b33.tar.gz gdb-75c1c785ac61f79188dde9923a90eb918ec11b33.tar.bz2 |
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.
Diffstat (limited to 'gas/config/tc-i386.c')
-rw-r--r-- | gas/config/tc-i386.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 624c78a..aa345b5 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -9182,19 +9182,19 @@ handle_quad (int nbytes) if (exp.X_op != O_constant) nbytes = 4; emit_expr (&exp, (unsigned int) nbytes); + /* Zero-extends to 8 bytes if not constant. */ + if (nbytes == 4) + { + memset (&exp, '\0', sizeof (exp)); + exp.X_op = O_constant; + emit_expr (&exp, nbytes); + } + nbytes = 8; } 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. */ - if (nbytes == 4) - { - memset (&exp, '\0', sizeof (exp)); - exp.X_op = O_constant; - emit_expr (&exp, nbytes); - } } #endif /* OBJ_ELF || OBJ_MAYBE_ELF */ |