Mail Archives: djgpp/1999/09/08/22:30:48
From: | "Ian Miller" <Ian AT shelob DOT force9 DOT co DOT uk>
|
Newsgroups: | comp.os.msdos.djgpp
|
Subject: | grx23 under as-2.95
|
Lines: | 69
|
X-Priority: | 3
|
X-MSMail-Priority: | Normal
|
X-Newsreader: | Microsoft Outlook Express 5.00.2014.211
|
X-MimeOLE: | Produced By Microsoft MimeOLE V5.00.2014.211
|
Message-ID: | <GAAB3.2891$N5.64524@stones>
|
Date: | Wed, 8 Sep 1999 22:29:24 +0100
|
NNTP-Posting-Host: | 212.56.102.201
|
X-Complaints-To: | abuse AT plus DOT net DOT uk
|
X-Trace: | stones 936826278 212.56.102.201 (Wed, 08 Sep 1999 22:31:18 BST)
|
NNTP-Posting-Date: | Wed, 08 Sep 1999 22:31:18 BST
|
To: | djgpp AT delorie DOT com
|
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp
|
Reply-To: | djgpp AT delorie DOT com
|
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),
- Raw text -