@@ -201,26 +201,24 @@ static int emulate_ldd(struct pt_regs *regs, int toreg, int flop)
201201 : "r19" , "r20" );
202202#else
203203 {
204- unsigned long valh = 0 , vall = 0 ;
204+ unsigned long shift , temp1 ;
205205 __asm__ __volatile__ (
206- " zdep %5 ,29,2,%%r19 \n" /* r19=(ofs&3)*8 */
207- " mtsp %6 , %%sr1\n"
208- " dep %%r0,31,2,%5 \n"
209- "1: ldw 0(%%sr1,%5 ),%0\n"
210- "2: ldw 4(%%sr1,%5 ),%1 \n"
211- "3: ldw 8(%%sr1,%5 ),%%r20 \n"
212- " subi 32,%%r19,%%r19 \n"
213- " mtsar %%r19 \n"
214- " vshd %0,%1 ,%0\n"
215- " vshd %1,%%r20,%1 \n"
206+ " zdep %2 ,29,2,%3 \n" /* r19=(ofs&3)*8 */
207+ " mtsp %5 , %%sr1\n"
208+ " dep %%r0,31,2,%2 \n"
209+ "1: ldw 0(%%sr1,%2 ),%0\n"
210+ "2: ldw 4(%%sr1,%2 ),%R0 \n"
211+ "3: ldw 8(%%sr1,%2 ),%4 \n"
212+ " subi 32,%3,%3 \n"
213+ " mtsar %3 \n"
214+ " vshd %0,%R0 ,%0\n"
215+ " vshd %R0,%4,%R0 \n"
216216"4: \n"
217217 ASM_EXCEPTIONTABLE_ENTRY_EFAULT (1b , 4b )
218218 ASM_EXCEPTIONTABLE_ENTRY_EFAULT (2b , 4b )
219219 ASM_EXCEPTIONTABLE_ENTRY_EFAULT (3b , 4b )
220- : "=r" (valh ), "=r" (vall ), "+r" (ret )
221- : "0" (valh ), "1" (vall ), "r" (saddr ), "r" (regs -> isr )
222- : "r19" , "r20" );
223- val = ((__u64 )valh <<32 )|(__u64 )vall ;
220+ : "+ r " (val), " + r " (ret), " + r " (saddr), " = & r " (shift), " = & r " (temp1)
221+ : " r " (regs->isr) );
224222 }
225223#endif
226224
0 commit comments