This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

help with different treatment of asms in 3.2 and 3.3?


Brad Lucier writes:
 > 3.2 compiles the following code without complaint (beyond the warnings)
 > and 3.3 rejects it.  The code is from the MLton ML compiler runtime; I
 > know nothing about inline asms; could someone offer some advice?
 > 
 > int Int_quot(int numerator, int denominator) {
 >         register int eax asm("eax");
 > 
 >         eax = numerator ;
 > 
 >         __asm__ __volatile__ ("cdq\n        idivl %1"
 >                 :
 >                 : "r" (eax), "m" (denominator)
 >                 : "eax", "edx");
 > 
 >         return eax;
 > }

Do this:

int Int_quot(int numerator, int denominator) {
  int eax;
  
  __asm__ __volatile__ ("cdq\n        idivl %2"
			: "=a" (eax)
			: "0" (numerator), "rm" (denominator)
			: "edx");
  
  return eax;
}

Andrew.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]