Re: [RFC][PATCH] parisc: Fix left-shift assembly to be PA1.1 compatible

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 18.10.2018 22:01, John David Anglin wrote:
> On 2018-10-18 3:20 PM, Helge Deller wrote:
>> According to the PARISC 1.1 Instruction Set Reference Manual, PA1.1 does
>> *not* support the depw,z instruction, but only the dep (depw)
>> instruction, e.g.:

> No.  This is a mnemonics issue.  PA 1.1 has zdep instruction that is the same as PA 2.0 depw,z.
> The have same instruction encoding.

Ok.

>>    d5 8b 08 f6     depw,z r11,24,10,r12    # NOT PA1.1
>>    d5 8b 0c f6     depw   r11,24,10,r12    # OK for PA1.1
>>
>> And in the Linux kernel source (arch/parisc/include/asm/assembly.h) I see
>>
>>          /* Shift Left - note the r and t can NOT be the same! */
>>          .macro shl r, sa, t
>>          dep,z   \r, 31-(\sa), 32-(\sa), \t

> Should be zdep.

Ok.
What about the note "r and t can NOT be the same!" ?
Is that bogus or true for the dep case at least?

If it's bogus we could replace in entry.S:

--- a/arch/parisc/kernel/entry.S
+++ b/arch/parisc/kernel/entry.S
@@ -426,8 +426,7 @@
        ldw,s           \index(\pmd),\pmd
        bb,>=,n         \pmd,_PxD_PRESENT_BIT,\fault
        dep             %r0,31,PxD_FLAG_SHIFT,\pmd /* clear flags */
-       copy            \pmd,%r9
-       SHLREG          %r9,PxD_VALUE_SHIFT,\pmd
+       SHLREG          \pmd,PxD_VALUE_SHIFT,\pmd

Thanks for the explanation,
Helge



[Index of Archives]     [Linux SoC]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux