delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/03/24/22:06:05

Message-ID: <38DC1398.E1B15F0B@ou.edu>
From: David Cleaver <davidis AT ou DOT edu>
X-Mailer: Mozilla 4.7 [en] (Win98; I)
X-Accept-Language: en
MIME-Version: 1.0
Newsgroups: comp.os.msdos.djgpp
Subject: Re: I'm Back...
References: <38DBF7AF DOT A0786922 AT ou DOT edu> <38DC04C8 DOT 72C075C6 AT bigfoot DOT com>
Lines: 67
Date: Fri, 24 Mar 2000 19:17:12 -0600
NNTP-Posting-Host: 129.15.140.115
X-Complaints-To: usenet AT ou DOT edu
X-Trace: news.ou.edu 953946948 129.15.140.115 (Fri, 24 Mar 2000 19:15:48 CST)
NNTP-Posting-Date: Fri, 24 Mar 2000 19:15:48 CST
Organization: The University of Oklahoma
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com


Richard Dawe wrote:
> 
> Hello.
> 
> David Cleaver wrote:
> > Ok,  I'm now having compiling problems due to the fact that I've updated
> > to the new gcc 2.95.2.  I know its probably not new to most of you here
> > but I just upgraded a day or two ago.
> >
> > Ok, my problem is that I'm compiling source code that isn't mine and
> > that apparently has a ton of 'asm' in it.  So, of course, I'm getting
> > the error:
> >
> > farptrx.h:13: Invalid 'asm' statement:
> > farptrx.h:13: fixed or forbidden register 2 (cx) was spilled for class
> > CREG.
> 
> It might help if you say what you are trying to compile. Posting a portion
> of the affected header file would be a start.
> 
> If you're trying to compile libsocket (which has a header file called
> farptrx.h), then there is a patch for 0.7.4 beta 3 here:
> 
> http://www.phekda.freeserve.co.uk/richdawe/lsck/lsck_dl.htm
> 
> HTH, bye,
> 
> --
> Richard Dawe
> richdawe AT bigfoot DOT com ICQ 47595498 http://www.bigfoot.com/~richdawe/


OK, I'm trying to compile the latest d1x source release.  It's a game that has
been compiling just fine until the new rule about 'asm' in gcc 2.95.2.  I don't
think they will mind me posting a small portion of the code, so here's the part
that the compiler can't get past right now:

extern __inline__ void _farpokex (unsigned short selector, unsigned long offset,
void *x, int len)
{
  __asm__ __volatile__ ("pushl %%es\n"
                        "movw %w0, %%es\n"
                        "rep\n"
                        "movsb\n"
                        "popl %%es"
      :
      : "rm" (selector), "S" (x), "D" (offset), "c" (len)
      : "%ecx", "%edi", "%esi");
}


Does this make any sense to you (anyone)?  I don't really know any assembly so I
don't know what's wrong or what would possibly need to be changed.  I hope this
helps a little bit more.  Just to let you know, line number 13 (the compiler
error) is the line that goes: 

: "rm" (selector),...

If thats still not enough info (I'm notorious for this) plz let me know what
else you might need.  Just keep in mind that this isn't my code.  If anyone can
think of a way to fix this please let me know the method that you use to fix it
so that I can try to fix all the rest of the 'asm' problems in the code.  Thanks
again for your time and your input.

-David C.

- Raw text -


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