Commit 4603fbaa authored by John David Anglin's avatar John David Anglin Committed by Helge Deller
Browse files

parisc: Avoid clobbering the C/B bits in the PSW with tophys and tovirt macros



Use add,l to avoid clobbering the C/B bits in the PSW.

Signed-off-by: default avatarJohn David Anglin <dave.anglin@bell.net>
Signed-off-by: default avatarHelge Deller <deller@gmx.de>
Cc: stable@vger.kernel.org # v5.10+
parent e5db6a74
Loading
Loading
Loading
Loading
+10 −8
Original line number Diff line number Diff line
@@ -97,26 +97,28 @@
	 * version takes two arguments: a src and destination register.
	 * However, the source and destination registers can not be
	 * the same register.
	 *
	 * We use add,l to avoid clobbering the C/B bits in the PSW.
	 */

	.macro  tophys  grvirt, grphys
	ldil    L%(__PAGE_OFFSET), \grphys
	sub     \grvirt, \grphys, \grphys
	ldil    L%(-__PAGE_OFFSET), \grphys
	addl    \grvirt, \grphys, \grphys
	.endm

	.macro  tovirt  grphys, grvirt
	ldil    L%(__PAGE_OFFSET), \grvirt
	add     \grphys, \grvirt, \grvirt
	addl    \grphys, \grvirt, \grvirt
	.endm

	.macro  tophys_r1  gr
	ldil    L%(__PAGE_OFFSET), %r1
	sub     \gr, %r1, \gr
	ldil    L%(-__PAGE_OFFSET), %r1
	addl    \gr, %r1, \gr
	.endm

	.macro  tovirt_r1  gr
	ldil    L%(__PAGE_OFFSET), %r1
	add     \gr, %r1, \gr
	addl    \gr, %r1, \gr
	.endm

	.macro delay value