[SPARC64]: Fix branch signedness bug in all code patching.
The bug that hit SUN4V TLB patching exists elsewhere. Make sure we cure all such cases. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1a7a242c89
commit
6241e5cc6a
|
@ -75,7 +75,8 @@ NGclear_user_page: /* %o0=dest, %o1=vaddr */
|
||||||
or %g2, %lo(OLD), %g2; \
|
or %g2, %lo(OLD), %g2; \
|
||||||
sub %g1, %g2, %g1; \
|
sub %g1, %g2, %g1; \
|
||||||
sethi %hi(BRANCH_ALWAYS), %g3; \
|
sethi %hi(BRANCH_ALWAYS), %g3; \
|
||||||
srl %g1, 2, %g1; \
|
sll %g1, 11, %g1; \
|
||||||
|
srl %g1, 11 + 2, %g1; \
|
||||||
or %g3, %lo(BRANCH_ALWAYS), %g3; \
|
or %g3, %lo(BRANCH_ALWAYS), %g3; \
|
||||||
or %g3, %g1, %g3; \
|
or %g3, %g1, %g3; \
|
||||||
stw %g3, [%g2]; \
|
stw %g3, [%g2]; \
|
||||||
|
|
|
@ -12,7 +12,8 @@
|
||||||
or %g2, %lo(OLD), %g2; \
|
or %g2, %lo(OLD), %g2; \
|
||||||
sub %g1, %g2, %g1; \
|
sub %g1, %g2, %g1; \
|
||||||
sethi %hi(BRANCH_ALWAYS), %g3; \
|
sethi %hi(BRANCH_ALWAYS), %g3; \
|
||||||
srl %g1, 2, %g1; \
|
sll %g1, 11, %g1; \
|
||||||
|
srl %g1, 11 + 2, %g1; \
|
||||||
or %g3, %lo(BRANCH_ALWAYS), %g3; \
|
or %g3, %lo(BRANCH_ALWAYS), %g3; \
|
||||||
or %g3, %g1, %g3; \
|
or %g3, %g1, %g3; \
|
||||||
stw %g3, [%g2]; \
|
stw %g3, [%g2]; \
|
||||||
|
|
|
@ -12,7 +12,8 @@
|
||||||
or %g2, %lo(OLD), %g2; \
|
or %g2, %lo(OLD), %g2; \
|
||||||
sub %g1, %g2, %g1; \
|
sub %g1, %g2, %g1; \
|
||||||
sethi %hi(BRANCH_ALWAYS), %g3; \
|
sethi %hi(BRANCH_ALWAYS), %g3; \
|
||||||
srl %g1, 2, %g1; \
|
sll %g1, 11, %g1; \
|
||||||
|
srl %g1, 11 + 2, %g1; \
|
||||||
or %g3, %lo(BRANCH_ALWAYS), %g3; \
|
or %g3, %lo(BRANCH_ALWAYS), %g3; \
|
||||||
or %g3, %g1, %g3; \
|
or %g3, %g1, %g3; \
|
||||||
stw %g3, [%g2]; \
|
stw %g3, [%g2]; \
|
||||||
|
|
Loading…
Reference in New Issue