Subject: Re: Arm Linux

From: [email-masked] (John Tytgat)
Date: Mon, 20 Jan 1997 14:11:08 +0000 (GMT)

[Sorry about the previous non-reply...]
On Mon, 20 Jan 1997, Philip Blundell wrote:
> But on an old ARM, you will get `bar = 0x04030201'.  The reason is that
> the dereference of `bar' compiles to an LDR instruction.  In general, the
> compiler can't know the alignment at compile-time, so there's not a lot
> else it *can* do.  Old ARM machines silently discard the low two address
> bits when you ask them to do a word access.  This differs, as I said
> before, from the Intel (where you get the correct access performed, albeit
> more slowly) and the Alpha/SPARC/etc (where you get a fault, and your OS
> has to patch up in software).

Wouldn't it be the best that a StrongARM owner traces code like this (as
the StrongARM can abort on such constructs when configured) ?

Regards,
John.

---

From: Philip Blundell <[email-masked]>
Date: Mon, 20 Jan 1997 21:48:31 +0000 (GMT)

> the StrongARM can abort on such constructs when configured) ?

Well, yes, and so can the ARM710 when you turn the MMU on (Linux does).

The kernel doesn't tend to do this, so it's only user-space stuff you have
to worry about.  And there are plenty of other machines out there that
report unaligned traps.  There's no need to force a StrongARM person to
trace every program out there -- if ARM3 people start reporting weird
lossage, an alignment error is just something to bear in mind.

P.

---

From: [email-masked] (Derek Fawcus)
Date: Tue, 21 Jan 1997 00:16:12 +0100 (GMT)

> Well, yes, and so can the ARM710 when you turn the MMU on (Linux does).

Well,  according to the datasheet - so can the ARM610.  So basically anyone
with an ARM6 or above can do this.

Probably more useful - (for the debian ppl),  is the fact that the 80x86
family (for x >= 4),  can also do alignment checks.   All one needs to do
is turn on bit 18 (AC) in the EFLAGS register,  and then change the masks
that the kernel uses to it won't turn it off again.

DF
-- 
Derek Fawcus                                        [email-masked]