brz,pn REG1, FAIL_LABEL; \
sethi %uhi(_PAGE_PMD_HUGE), REG2; \
sllx REG2, 32, REG2; \
+ andcc REG1, REG2, %g0; \
be,pt %xcc, 700f; \
- andcc REG1, REG2, %g0; \
- brlz,pt REG1, PTE_LABEL; \
- andn REG1, REG2, REG1; \
+ nop; \
+ brgez,pn REG1, FAIL_LABEL; \
+ nop; \
+ ba PTE_LABEL; \
+ nop; \
700:
#else
#define USER_PGTABLE_CHECK_PMD_HUGE(VADDR, REG1, REG2, FAIL_LABEL, PTE_LABEL) \
sllx %g2, 32, %g2
andcc %g5, %g2, %g0
be,pt %xcc, 10f
- sethi %uhi(_PAGE_VALID | _PAGE_SPECIAL_4V), %g1;
+ sethi %uhi(_PAGE_VALID | _PAGE_PMD_HUGE | _PAGE_SPECIAL_4V), %g1;
sllx %g1, 32, %g1
or %g1, _PAGE_SZALL_4V, %g1
andn %g5, %g1, %g1