linux-mips-fnet
[Top] [All Lists]

Re: load_unaligned() and "uld" instruction

To: Jun Sun <jsun@mvista.com>
Subject: Re: load_unaligned() and "uld" instruction
From: Ralf Baechle <ralf@oss.sgi.com>
Date: Fri, 6 Oct 2000 18:32:08 +0200
Cc: "Kevin D. Kissell" <kevink@mips.com>, linux-mips@fnet.fr, linux-mips@oss.sgi.com
In-reply-to: <39DD68DE.E9B26A3D@mvista.com>; from jsun@mvista.com on Thu, Oct 05, 2000 at 10:53:34PM -0700
References: <200009252116.WAA01137@gladsmuir.algor.co.uk> <39CFC567.DD66BC56@mvista.com> <000d01c02782$32d31560$0deca8c0@Ulysses> <39D0E51C.79A0BE50@mvista.com> <20001005141354.E30075@bacchus.dhis.org> <39DD26CC.3805FFE8@mvista.com> <00d101c02f04$3a6d7340$0deca8c0@Ulysses> <39DD55E9.AFCACB0E@mvista.com> <011801c02f19$1283f6a0$0deca8c0@Ulysses> <39DD68DE.E9B26A3D@mvista.com>
On Thu, Oct 05, 2000 at 10:53:34PM -0700, Jun Sun wrote:

> Although the usb does use get_unaligned(u64) (ldl/ldr), it actually does
> not run into it - at least in my test so far.  That probably explains
> why my fix runs on the R5432 CPU so far.

No, you just never hit the window where the your 64-bit reg got corrupted by
an exception.  The old broken macros also had a cast to long in them
which was truncating the loaded 64-bit word so in 100% of cases the upper
32-bit was modified in creative ways.  So I guess you were just lucky and
never hit the case were this actually bits.

  Ralf

<Prev in Thread] Current Thread [Next in Thread>