From: pavenis AT lanet DOT lv Message-ID: To: "Ian Miller" , djgpp AT delorie DOT com Date: Thu, 9 Sep 1999 17:11:14 +0300 MIME-Version: 1.0 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7BIT Subject: Re: grx23 under as-2.95 CC: grx AT gnu DOT de In-reply-to: X-mailer: Pegasus Mail for Win32 (v3.12a) Reply-To: djgpp AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On 8 Sep 99, at 22:29, Ian Miller wrote: > Ahem. > > I'm using pretty much up to date binutils 2.95 > right now. I wouldn't recommend it unless it > doesn't matter to you much if your software > doesn't work. That said, they do seem to > work fine. However,... > > as 2.95 interprets a couple of GRX inline > assembler call instructions as > PC-relative and chokes on them. > as 2.81 interpreted them as absolute > calls, and this is evidently what the code > intends. > > The following simple patch, duplicated at > http://www.shelob.force9.co.uk/djgpp/grxasm.dif, > applies the * prefix to the call absolute > operands as the as 2.95 manual requires. > It works for me. > > IF IN DOUBT, DO NOT APPLY THIS PATCH > > Happy hacking, > Ian > -- > Ian Miller, Dorset, UK > > *** src/vdrivers/vesa_pm.orig.c Mon May 11 20:20:28 1998 > --- src/vdrivers/vesa_pm.c Wed Sep 8 21:41:52 1999 > *************** > *** 349,355 **** > static INLINE void PM_banking(short BX, short DX) { > __asm__ volatile ( > " pushal \n" > ! " call %3 \n" > " popal " > : /* no output */ > : "a" (0x4F05), "b" (BX), "d" (DX), > --- 349,355 ---- > static INLINE void PM_banking(short BX, short DX) { > __asm__ volatile ( > " pushal \n" > ! " call *%3 \n" > " popal " > : /* no output */ > : "a" (0x4F05), "b" (BX), "d" (DX), > *************** > *** 362,368 **** > " pushal \n" > " movw %%ax, %%es \n" > " movw $0x4f05, %%ax \n" > ! " call %3 \n" > " popal " > : /* no output */ > : "a" (es), "b" (BX), "d" (DX), > --- 362,368 ---- > " pushal \n" > " movw %%ax, %%es \n" > " movw $0x4f05, %%ax \n" > ! " call *%3 \n" > " popal " > : /* no output */ > : "a" (es), "b" (BX), "d" (DX), > > > > > >