delorie.com/archives/browse.cgi   search  
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 -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019