diff options
author | Steve Chamberlain <sac@cygnus> | 1992-06-09 14:57:42 +0000 |
---|---|---|
committer | Steve Chamberlain <sac@cygnus> | 1992-06-09 14:57:42 +0000 |
commit | a1765cf0fef298858cfe669e0b8143dba90b4dd1 (patch) | |
tree | bdf7f757aa6e0b41b0499d1d7f1e6845ff2a0c84 | |
parent | 90d49457163cfd1640b02d210e6cb35e4bdebe34 (diff) | |
download | ppe42-binutils-a1765cf0fef298858cfe669e0b8143dba90b4dd1.tar.gz ppe42-binutils-a1765cf0fef298858cfe669e0b8143dba90b4dd1.zip |
* 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
-rw-r--r-- | gas/config/ChangeLog | 8 | ||||
-rw-r--r-- | gas/config/tc-m68k.c | 16 |
2 files changed, 17 insertions, 7 deletions
diff --git a/gas/config/ChangeLog b/gas/config/ChangeLog index ce1e22dca1..fe982fd74f 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 17a41eb0fe..4ac4abb1ab 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() */ |