Messages in this thread | | | Date | Thu, 12 Jan 2006 17:34:13 +0000 | From | Russell King <> | Subject | Re: [linux-usb-devel] Re: need for packed attribute |
| |
On Thu, Jan 12, 2006 at 05:22:47PM +0000, David Vrabel wrote: > Russell King wrote: > > BTW, it's worth noting that the new EABI stuff has it's own set of > > problems. We have r0 to r6 to pass 32-bit or 64-bit arguments. > > With EABI, 64-bit arguments will be aligned to an _even_ numbered > > register. > > Is there a reason for this alignment requirement?
I think it comes from the 64-bit accessing instructions (ldrd/strd) having the restriction that they only take an even numbered 32-bit register. The immediately consecutive higher numbered 32-bit egister is used as the other half of the number.
Think about it as the x86 32-bit eax register being made up of 16-bit ah and al registers. Only we call then r0, r1 etc not eax, ah and al (and they're twice the size.)
-- Russell King Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ maintainer of: 2.6 Serial core - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |