All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] 2.2.19pre hfmodem/refclock.c asm statement error
@ 2001-03-09 17:54 Jari Ruusu
  0 siblings, 0 replies; only message in thread
From: Jari Ruusu @ 2001-03-09 17:54 UTC (permalink / raw)
  To: linux-kernel; +Cc: Thomas Sailer, Alan Cox, Jari Anttonen

drivers/char/hfmodem/refclock.c fails to compile with "gcc version 2.95.2
20000220 (Debian GNU/Linux)", but compiles normally with "gcc version
2.7.2.3". GNU assembler 2.9.5 was used in both cases. Here is the error
message:

refclock.c: In function `hfmodem_refclock_current':
refclock.c:136: Invalid `asm' statement:
refclock.c:136: fixed or forbidden register 0 (ax) was spilled for class AREG.

Here is the offending line:
__asm__("mull %2" : "=d" (tmp2), "=a" (tmp4) : "m" (scale_rdtsc), "1" (tmp0) : "ax");

It appears that above code declares register eax as output and globbered
register simultaneously. My gcc docs say: "You may not write a clobber
description in a way that overlaps with an input or output operand." Below
is a patch against 2.2.19pre16 to fix this. Please consider applying.

Regards,
Jari Ruusu <jari.ruusu@pp.inet.fi>

--- linux-2.2.19pre16/drivers/char/hfmodem/refclock.c	Tue Jan  4 20:12:14 2000
+++ linux/drivers/char/hfmodem/refclock.c	Fri Mar  9 17:59:31 2001
@@ -133,7 +133,7 @@
 			"subl %2,%%eax\n\t"
 			"sbbl %3,%%edx\n\t" : "=&a" (tmp0), "=&d" (tmp1) 
 			: "m" (dev->clk.starttime_lo), "m" (dev->clk.starttime_hi));
-		__asm__("mull %2" : "=d" (tmp2), "=a" (tmp4) : "m" (scale_rdtsc), "1" (tmp0) : "ax");
+		__asm__("mull %2" : "=d" (tmp2), "=a" (tmp4) : "m" (scale_rdtsc), "1" (tmp0));
 		__asm__("mull %1" : "=a" (tmp3) : "m" (scale_rdtsc), "a" (tmp1) : "dx");
 		curtime = tmp2 + tmp3;
 		goto time_known;

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2001-03-09 17:58 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-03-09 17:54 [PATCH] 2.2.19pre hfmodem/refclock.c asm statement error Jari Ruusu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.