diff --git a/gas/ChangeLog b/gas/ChangeLog index 6a6fa5ee85..fbcce0219b 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +2007-12-20 Bob Wilson + + * config/tc-xtensa.c (xtensa_elf_cons): Set frag flags for + expressions without suffixes. + (get_frag_property_flags): Preserve is_no_transform flag for frags + not marked as either instructions or literals. + 2007-12-17 H.J. Lu * config/tc-i386.c (output_insn): Use ARRAY_SIZE. diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c index e632ef39e3..ab4578b94b 100644 --- a/gas/config/tc-xtensa.c +++ b/gas/config/tc-xtensa.c @@ -1558,7 +1558,10 @@ xtensa_elf_cons (int nbytes) } } else - emit_expr (&exp, (unsigned int) nbytes); + { + xtensa_set_frag_assembly_state (frag_now); + emit_expr (&exp, (unsigned int) nbytes); + } } while (*input_line_pointer++ == ','); @@ -10670,7 +10673,11 @@ get_frag_property_flags (const fragS *fragP, frag_flags *prop_flags) prop_flags->is_literal = TRUE; if (fragP->tc_frag_data.is_specific_opcode || fragP->tc_frag_data.is_no_transform) - prop_flags->is_no_transform = TRUE; + { + prop_flags->is_no_transform = TRUE; + if (xtensa_frag_flags_is_empty (prop_flags)) + prop_flags->is_data = TRUE; + } if (fragP->tc_frag_data.is_unreachable) prop_flags->is_unreachable = TRUE; else if (fragP->tc_frag_data.is_insn)