[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:
David S. Miller 2006-02-11 23:28:40 -08:00
parent 1a7a242c89
commit 6241e5cc6a
3 changed files with 6 additions and 3 deletions

View File

@ -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]; \

View File

@ -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]; \

View File

@ -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]; \