: "=&d" (addr), "=Q" (psw) : "Q" (psw) : "memory", "cc");
}
+/*
+ * Extract current PSW mask
+ */
+static inline unsigned long __extract_psw(void)
+{
+ unsigned int reg1, reg2;
+
+ asm volatile("epsw %0,%1" : "=d" (reg1), "=a" (reg2));
+ return (((unsigned long) reg1) << 32) | ((unsigned long) reg2);
+}
+
/*
* Rewind PSW instruction address by specified number of bytes.
*/