Re: Sparc CFLAGS question relating to 2.2.x

David S. Miller (davem@redhat.com)
Tue, 24 Aug 1999 18:52:19 -0700


Date: Tue, 24 Aug 1999 18:49:18 -0700 (PDT)
From: Robert Dinse <nanook@eskimo.com>

> The compiler can emit floating point load/stores during high register
> pressure to move variables around if you don't tell it otherwise.

Thank you, wasn't aware of that. But now am curious how this breaks
things if no actual floating point operations are performed?

Perhaps you didn't read me correctly, the compiler can move "integer"
data via the floating point registers for memory-->memory copies
in high register pressure situations. These are floating point
operations and the only way to prevent them is to tell the compiler
not to do it.

Wouldn't this be less effecient though since you have to go to this
routine instead of using a hardware divide instruction inline?

The only alternative is to break allowing a single kernel to work on
all sparc32 systems.

Actually, it could be done more cleverly and at zero cost using the
BTFIXUP run-time dynamic linking mechanism the sparc32 kernel has.

Later,
David S. Miller
davem@redhat.com

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/