--- binutils-2.9.1/gas/read.c 1998-05-01 17:45:16.000000000 +0200 +++ binutils-2.9.1/gas/read.c 2012-08-04 12:43:35.000000000 +0200 @@ -53,6 +53,10 @@ #define TC_START_LABEL(x,y) (x==':') #endif +#ifdef OBJ_AMIGAHUNK +extern segT data_chip_section, bss_chip_section; +#endif + /* The NOP_OPCODE is for the alignment fill value. * fill it a nop instruction so that the disassembler does not choke * on it @@ -260,6 +264,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'}, @@ -1540,6 +1547,17 @@ demand_empty_rest_of_line (); } +#ifdef OBJ_AMIGAHUNK +void +s_data_chip (ignore) + int ignore; +{ + 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 @@ -3582,7 +3600,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; @@ -3607,12 +3625,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, @@ -3625,7 +3643,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 */ }