Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0b543526 authored by Ralf Baechle's avatar Ralf Baechle
Browse files

MIPS: Fix sign-extension bug in 32-bit kernel on 32-bit hardware.



Probably nobody does arithmetic on cp0 register values so this has never
bitten.

Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 5c5dd1d2
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -728,8 +728,8 @@ do { \
			".set\tmips64\n\t"				\
			"dmfc0\t%M0, " #source "\n\t"			\
			"dsll\t%L0, %M0, 32\n\t"			\
			"dsrl\t%M0, %M0, 32\n\t"			\
			"dsrl\t%L0, %L0, 32\n\t"			\
			"dsra\t%M0, %M0, 32\n\t"			\
			"dsra\t%L0, %L0, 32\n\t"			\
			".set\tmips0"					\
			: "=r" (__val));				\
	else								\
@@ -737,8 +737,8 @@ do { \
			".set\tmips64\n\t"				\
			"dmfc0\t%M0, " #source ", " #sel "\n\t"		\
			"dsll\t%L0, %M0, 32\n\t"			\
			"dsrl\t%M0, %M0, 32\n\t"			\
			"dsrl\t%L0, %L0, 32\n\t"			\
			"dsra\t%M0, %M0, 32\n\t"			\
			"dsra\t%L0, %L0, 32\n\t"			\
			".set\tmips0"					\
			: "=r" (__val));				\
	local_irq_restore(__flags);					\