www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/12/18/02:33:41

Message-ID: <32B79DB7.51F8@post.comstar.ru>
Date: Wed, 18 Dec 1996 10:31:03 +0300
From: Dim Zegebart <zager AT post DOT comstar DOT ru>
Reply-To: zager AT post DOT comstar DOT ru
Organization: Comstar Ltd.
MIME-Version: 1.0
To: rog AT col DOT ca
CC: DJGPP Mail List <djgpp AT delorie DOT com>
Subject: Re: Allegro make error
References: <594lg3$3g0 AT nr1 DOT calgary DOT istar DOT net>

Roger Carbol wrote:
> 
> Well, I download Allegro, with much anticipation as it looks like
> pretty much the coolest thing since sliced breadboards.
> 
> So I ran make.  Then I re-unzipped it with -d and ran make again.
> 
> It got farther, but then resulted in the following message:
> 
> >   gcc -I. -Isrc -Wall -o obj/bank.o -c src/bank.S
> >   c:/djgpp/tmp\ccbaaaaa: Assembler messages:
> >   c:/djgpp/tmp\ccbaaaaa:252: Error: register does not match opcode suffix
> >   c:/djgpp/tmp\ccbaaaaa:269: Error: register does not match opcode suffix
> >   make.exe: *** [obj/bank.o] Error 1

I have the same problem. And here are steps how to solve it.
1st You need to find those lines 252,269, the problem is that
.S scr preprocessed with asmdef.exe (build from asmdef.c in the Allegro
src dir) so
the gcc return error line number different from original line number. So
use a small
trick : open bank.s for edit in text editor wich display cursor position
and 
type any symbol (for example @$@) at the line number about 240 and run
make.
GCC return error line number where you type @S@. Step this proc to finde
lines 252 and 269.
So here is output from fc . BANK is old version of file and BANK.S is a
new file.

WARNING: I'm not shure my changes is absolutely right, so think twice
before you applied it.

Comparing files BANK and BANK.S
***** BANK
   movb %al, %ah              /* two 32k apertures, set bank and bank+1
*/
   incl %ah       !!!!!!!!!!!!INCL applied to 32-bit regs
   shll $8, %eax
***** BANK.S
   movb %al, %ah              /* two 32k apertures, set bank and bank+1
*/
   inc  %ah       !!!!!!!!!!!!!I change INCL to INC (may be it's wrong
and you need change %AH to %EAX)
   shll $8, %eax
*****

And the same problem:

***** BANK
BANK_SWITCHER( __mach64_read_bank, __last_bank_2,
   pushl %edx

***** BANK.S
BANK_SWITCHER( __mach64_read_bank, __last_bank_2,
   pushl %dx

*****
-- 
Regards,
Dim Zegebart,
Moscow Russia.

- Raw text -


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