[RFC 5/5] ARM: P2V: extend to 16-bit translation offsets
Russell King - ARM Linux
linux at arm.linux.org.uk
Tue Jan 4 19:15:24 EST 2011
On Tue, Jan 04, 2011 at 04:41:34PM -0500, Nicolas Pitre wrote:
> I'd suggest making the type argument into a mask instead, something
> like:
>
> __pv_stub(x, t, "add", 0xff000000);
> #ifdef CONFIG_ARM_PATCH_PHYS_VIRT_16BIT
> __pv_stub(t, t, "add", 0x00ff0000);
> #endif
>
> Reasons for this are multiple:
>
> - This would simplifies the patching code as the rotation bitfield in
> the instruction would already be set appropriately for the desired
> value by the assembler. Would only suffice to test one bit in that
> field to determine the required constant to patch in.
>
> - For the Thumb2 build, we want the assembler to select the appropriate
> encoding flavor for the add instruction from all the possibilities.
> Giving it a constant with all bits set nicely solves this issue.
>
> If further distinctions are needed in the future then we can use the 6
> middle bits to encode alternatives.
Lets go with 0x81000000 and 0x0081000000 for the first then. We can
count up with the 6-bit value from there.
More information about the linux-arm-kernel
mailing list