From 26eff5c29575ca7b0460b3958db1682965fe4384 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 2 Aug 1999 20:26:57 +0000 Subject: Fix By Joel based on suggestion from Ian Lance Taylor to fix problem reported by Ralf Corsepius . Date: Fri, 30 Jul 1999 14:53:20 -0500 (CDT) From: 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. --- c/src/lib/libbsp/i386/i386ex/start/start.S | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/c/src/lib/libbsp/i386/i386ex/start/start.S b/c/src/lib/libbsp/i386/i386ex/start/start.S index e7500bd9b4..5d4099a25e 100644 --- a/c/src/lib/libbsp/i386/i386ex/start/start.S +++ b/c/src/lib/libbsp/i386/i386ex/start/start.S @@ -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 -- cgit v1.2.3