From a1765cf0fef298858cfe669e0b8143dba90b4dd1 Mon Sep 17 00:00:00 2001 From: Steve Chamberlain Date: Tue, 9 Jun 1992 14:57:42 +0000 Subject: [PATCH] * subsegs.c (subseg_change): allow and handle a change into SEG_BSS. * tc-m68k.c (m68kip): Fix typo so that only arch's >=68020 do pcrel data stuff. (md_estimate_size_before_relax): when relaxing a 68010 bxx into a bra+6 jmpxx, put the bytes of the jmp opcode into the right place. (s_bss): Don't put .bss stuff into SEG_DATA, put it into SEG_BSS --- gas/config/ChangeLog | 8 ++++++++ gas/config/tc-m68k.c | 16 +++++++++------- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/gas/config/ChangeLog b/gas/config/ChangeLog index ce1e22dca18..fe982fd74ff 100644 --- a/gas/config/ChangeLog +++ b/gas/config/ChangeLog @@ -1,3 +1,11 @@ +Tue Jun 9 07:50:46 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + * tc-m68k.c (m68kip): Fix typo so that only arch's >=68020 do + pcrel data stuff. (md_estimate_size_before_relax): when relaxing a + 68010 bxx into a bra+6 jmpxx, put the bytes of the jmp opcode into + the right place. (s_bss): Don't put .bss stuff into SEG_DATA, put + it into SEG_BSS + Thu May 28 11:20:27 1992 Jim Wilson (wilson@sphagnum.cygnus.com) * tc-sparc.c: Use new ARCHITECTURES_CONFLICT_P macro. Mention new diff --git a/gas/config/tc-m68k.c b/gas/config/tc-m68k.c index 17a41eb0fe9..4ac4abb1ab4 100644 --- a/gas/config/tc-m68k.c +++ b/gas/config/tc-m68k.c @@ -1708,7 +1708,7 @@ char *instring; && !subs(opP->con1) && seg(opP->con1) == SEG_TEXT && now_seg == SEG_TEXT - && cpu_of_arch(current_architecture) < m68020 + && cpu_of_arch(current_architecture) >= m68020 && !flagseen['S'] && !strchr("~%&$?", s[0])) { tmpreg=0x3A; /* 7.2 */ @@ -3203,8 +3203,8 @@ segT segment; } else { fragP->fr_opcode[1] = 0x06; /* branch offset = 6 */ /* JF: these were fr_opcode[2,3] */ - buffer_address[2] = 0x4e; /* put in jmp long (0x4ef9) */ - buffer_address[3] = 0xf9; + buffer_address[0] = 0x4e; /* put in jmp long (0x4ef9) */ + buffer_address[1] = 0xf9; fragP->fr_fix += 2; /* account for jmp instruction */ subseg_change(SEG_TEXT,0); fix_new(fragP, fragP->fr_fix, 4, fragP->fr_symbol, 0, @@ -3598,10 +3598,12 @@ static void s_data2() { demand_empty_rest_of_line(); } /* s_data2() */ -static void s_bss() { - /* We don't support putting frags in the BSS segment, but we - can put them into initialized data for now... */ - subseg_new(SEG_DATA,255); /* FIXME-SOON */ +static void s_bss() +{ + /* We don't support putting frags in the BSS segment, we fake it + by marking in_bss, then looking at s_skip for clues */ + + subseg_new(SEG_BSS, 0); demand_empty_rest_of_line(); } /* s_bss() */ -- 2.30.2