--- binutils-2.14/gas/read.c 2003-06-02 22:35:23.000000000 +0200 +++ binutils-2.14-patched/gas/read.c 2013-04-24 18:37:53.000000000 +0200 @@ -48,6 +48,10 @@ #define TC_START_LABEL(x,y) (x == ':') #endif +#ifdef OBJ_AMIGAHUNK +extern segT data_chip_section, bss_chip_section; +#endif + /* Set by the object-format or the target. */ #ifndef TC_IMPLICIT_LCOMM_ALIGNMENT #define TC_IMPLICIT_LCOMM_ALIGNMENT(SIZE, P2VAR) \ @@ -274,6 +278,9 @@ {"common", s_mri_common, 0}, {"common.s", s_mri_common, 1}, {"data", s_data, 0}, +#ifdef OBJ_AMIGAHUNK + {"datachip", s_data_chip, 0}, +#endif {"dc", cons, 2}, {"dc.b", cons, 1}, {"dc.d", float_cons, 'd'}, @@ -1552,6 +1559,17 @@ demand_empty_rest_of_line (); } +#ifdef OBJ_AMIGAHUNK +void +s_data_chip (ignore) + int ignore ATTRIBUTE_UNUSED; +{ + int temp = get_absolute_expression (); + subseg_set (data_chip_section, (subsegT) temp); + demand_empty_rest_of_line (); +} +#endif + /* Handle the .appfile pseudo-op. This is automatically generated by do_scrub_chars when a preprocessor # line comment is seen with a file name. This default definition may be overridden by the object @@ -3717,7 +3735,7 @@ #ifdef BFD_ASSEMBLER #ifdef TC_CONS_FIX_NEW - TC_CONS_FIX_NEW (frag_now, p - frag_now->fr_literal, nbytes, exp); + TC_CONS_FIX_NEW (frag_now, p - frag_now->fr_literal, nbytes, exp, 0); #else { bfd_reloc_code_real_type r; @@ -3742,12 +3760,12 @@ break; } fix_new_exp (frag_now, p - frag_now->fr_literal, (int) nbytes, exp, - 0, r); + 0, r, 0); } #endif #else #ifdef TC_CONS_FIX_NEW - TC_CONS_FIX_NEW (frag_now, p - frag_now->fr_literal, nbytes, exp); + TC_CONS_FIX_NEW (frag_now, p - frag_now->fr_literal, nbytes, exp, 0); #else /* Figure out which reloc number to use. Use TC_CONS_RELOC if it is defined, otherwise use NO_RELOC if it is defined, @@ -3760,7 +3778,7 @@ #endif #endif fix_new_exp (frag_now, p - frag_now->fr_literal, (int) nbytes, exp, 0, - TC_CONS_RELOC); + TC_CONS_RELOC, 0); #endif /* TC_CONS_FIX_NEW */ #endif /* BFD_ASSEMBLER */ }