Fix By Joel based on suggestion from Ian Lance Taylor <ian@airs.com>

to fix problem reported by Ralf Corsepius <corsepiu@faw.uni-ulm.de>.

   Date: Fri, 30 Jul 1999 14:53:20 -0500 (CDT)
   From: <joel@oarcorp.com>

   it is used like this in i386ex/start/start.S

                       /* set up same values in cache */
       start.S:      movw    $0xFFFB, SYM(i8259s_cache)

   I am heading out the door.  Any other ideas what could have tripped this?

   This instruction appears in a .code16 section.  In a .code16 section,
   current versions of gas assume that all addresses are 16 bits unless
   told otherwise.

   If you change the line to
       addr32   movw $0xFFFB, SYM(i8259s_cache)
   then you will get a 32 bit address reference.

   You may want to use addr32 only when NEW_GAS is defined.
This commit is contained in:
Joel Sherrill
1999-08-02 20:26:57 +00:00
parent 60ee6da7ad
commit 26eff5c295

View File

@@ -324,7 +324,16 @@ SYM(InitInt):
SetExRegByte(OCW1M , 0xde ) # IR0 only = 0xfe. for IR5 and IR0 active use 0xde
SetExRegByte(INTCFG , 0x00 )
movw $0xFFFB, SYM(i8259s_cache) /* set up same values in cache */
/*
* The addr32 override should ensure that the address for
* i8259s_cache is put in 32-bit address space.
*/
#if defined(NEW_GAS)
addr32 movw $0xFFFB, SYM(i8259s_cache) # set up same values in cache
#else
movw $0xFFFB, SYM(i8259s_cache) # set up same values in cache
#endif
SYM(SetCS4):
SetExRegWord(CS4ADL , 0x702) #Configure chip select 4