+2010-12-07 Arnold Metselaar <arnold.metselaar@planet.nl>
+
+ Backport from trunk for PR gas/12269
+ * config/tc-z80.c (emit_mx, emit_ldxhl): Do not use
+ symbol_get_value_expression on a symbol that may not yet have
+ a value.
+ * testsuite/gas/z80/atend.s: New file, test case for bug 12269,
+ provided by Chris Smith.
+ * testsuite/gas/z80/atend.d: New file, expected results for atend.s.
+ * testsuite/gas/z80/z80.exp: Run new test case.
+
2010-11-30 Joel Sherrill <joel.sherrill@oarcorp.com>
* configure.tgt: Add sparc64-rtems.
q = frag_more (2);
*q++ = (rnum & R_IX) ? 0xDD : 0xFD;
*q = (prefix) ? prefix : (opcode + (6 << shift));
- emit_byte (symbol_get_value_expression (arg->X_add_symbol),
- BFD_RELOC_Z80_DISP8);
+ {
+ expressionS offset = *arg;
+ offset.X_op = O_symbol;
+ offset.X_add_number = 0;
+ emit_byte (&offset, BFD_RELOC_Z80_DISP8);
+ }
if (prefix)
{
q = frag_more (1);
switch (dst.X_op)
{
case O_md1:
- emit_ldxhl ((dst.X_add_number & R_IX) ? 0xDD : 0xFD, 0x70,
- &src, symbol_get_value_expression (dst.X_add_symbol));
+ {
+ expressionS dst_offset = dst;
+ dst_offset.X_op = O_symbol;
+ dst_offset.X_add_number = 0;
+ emit_ldxhl ((dst.X_add_number & R_IX) ? 0xDD : 0xFD, 0x70,
+ &src, &dst_offset);
+ }
break;
case O_register:
run_dump_test "suffix"
# test assembling and disassembling instructions involving offsets
run_dump_test "offset"
+# test assembling instruction with offset that is a label defined later
+ run_dump_test "atend"
# test for data transfer instructions
run_dump_test "ld-group"
# test for block instructions