|
@@ -552,13 +552,13 @@ static inline void bus_error030 (struct frame *fp)
|
|
|
|
|
|
#ifdef DEBUG
|
|
|
asm volatile ("ptestr %3,%2@,#7,%0\n\t"
|
|
|
- "pmove %%psr,%1@"
|
|
|
- : "=a&" (desc)
|
|
|
- : "a" (&temp), "a" (addr), "d" (ssw));
|
|
|
+ "pmove %%psr,%1"
|
|
|
+ : "=a&" (desc), "=m" (temp)
|
|
|
+ : "a" (addr), "d" (ssw));
|
|
|
#else
|
|
|
asm volatile ("ptestr %2,%1@,#7\n\t"
|
|
|
- "pmove %%psr,%0@"
|
|
|
- : : "a" (&temp), "a" (addr), "d" (ssw));
|
|
|
+ "pmove %%psr,%0"
|
|
|
+ : "=m" (temp) : "a" (addr), "d" (ssw));
|
|
|
#endif
|
|
|
mmusr = temp;
|
|
|
|
|
@@ -605,20 +605,18 @@ static inline void bus_error030 (struct frame *fp)
|
|
|
!(ssw & RW) ? "write" : "read", addr,
|
|
|
fp->ptregs.pc, ssw);
|
|
|
asm volatile ("ptestr #1,%1@,#0\n\t"
|
|
|
- "pmove %%psr,%0@"
|
|
|
- : /* no outputs */
|
|
|
- : "a" (&temp), "a" (addr));
|
|
|
+ "pmove %%psr,%0"
|
|
|
+ : "=m" (temp)
|
|
|
+ : "a" (addr));
|
|
|
mmusr = temp;
|
|
|
|
|
|
printk ("level 0 mmusr is %#x\n", mmusr);
|
|
|
#if 0
|
|
|
- asm volatile ("pmove %%tt0,%0@"
|
|
|
- : /* no outputs */
|
|
|
- : "a" (&tlong));
|
|
|
+ asm volatile ("pmove %%tt0,%0"
|
|
|
+ : "=m" (tlong));
|
|
|
printk("tt0 is %#lx, ", tlong);
|
|
|
- asm volatile ("pmove %%tt1,%0@"
|
|
|
- : /* no outputs */
|
|
|
- : "a" (&tlong));
|
|
|
+ asm volatile ("pmove %%tt1,%0"
|
|
|
+ : "=m" (tlong));
|
|
|
printk("tt1 is %#lx\n", tlong);
|
|
|
#endif
|
|
|
#ifdef DEBUG
|
|
@@ -668,13 +666,13 @@ static inline void bus_error030 (struct frame *fp)
|
|
|
|
|
|
#ifdef DEBUG
|
|
|
asm volatile ("ptestr #1,%2@,#7,%0\n\t"
|
|
|
- "pmove %%psr,%1@"
|
|
|
- : "=a&" (desc)
|
|
|
- : "a" (&temp), "a" (addr));
|
|
|
+ "pmove %%psr,%1"
|
|
|
+ : "=a&" (desc), "=m" (temp)
|
|
|
+ : "a" (addr));
|
|
|
#else
|
|
|
asm volatile ("ptestr #1,%1@,#7\n\t"
|
|
|
- "pmove %%psr,%0@"
|
|
|
- : : "a" (&temp), "a" (addr));
|
|
|
+ "pmove %%psr,%0"
|
|
|
+ : "=m" (temp) : "a" (addr));
|
|
|
#endif
|
|
|
mmusr = temp;
|
|
|
|