summaryrefslogtreecommitdiff
path: root/usr/src/uts/sfmmu/ml
diff options
context:
space:
mode:
authorjimand <none@none>2006-04-28 13:28:28 -0700
committerjimand <none@none>2006-04-28 13:28:28 -0700
commit0066ea643632362631f3bb653a0fcf6ed1f07cd3 (patch)
tree6ec560a4ffa23f83a8fb2a367a5f2982e9af40b9 /usr/src/uts/sfmmu/ml
parentf11a0b63cd26993d174f40a91bc87c821204f98b (diff)
downloadillumos-joyent-0066ea643632362631f3bb653a0fcf6ed1f07cd3.tar.gz
6415415 jvm dumps core on OPL using 32M pages
Diffstat (limited to 'usr/src/uts/sfmmu/ml')
-rw-r--r--usr/src/uts/sfmmu/ml/sfmmu_asm.s15
1 files changed, 10 insertions, 5 deletions
diff --git a/usr/src/uts/sfmmu/ml/sfmmu_asm.s b/usr/src/uts/sfmmu/ml/sfmmu_asm.s
index 4ed8cd2e29..ae27cf92ef 100644
--- a/usr/src/uts/sfmmu/ml/sfmmu_asm.s
+++ b/usr/src/uts/sfmmu/ml/sfmmu_asm.s
@@ -2846,14 +2846,19 @@ tsb_user:
cmp %g7, TTE4M
bge,pn %icc, tsb_user4m
nop
-#else
+#else /* sun4v */
cmp %g7, TTESZ_VALID | TTE4M
be,pn %icc, tsb_user4m
srlx %g3, TTE_SZ2_SHFT, %g7
andcc %g7, TTE_SZ2_BITS, %g7 ! check 32/256MB
+#ifdef ITLB_32M_256M_SUPPORT
+ bnz,pn %icc, tsb_user4m
+ nop
+#else /* ITLB_32M_256M_SUPPORT */
bnz,a,pn %icc, tsb_user_pn_synth
- cmp %g5, FAST_IMMU_MISS_TT
-#endif
+ cmp %g5, FAST_IMMU_MISS_TT
+#endif /* ITLB_32M_256M_SUPPORT */
+#endif /* sun4v */
tsb_user8k:
ldn [%g6 + TSBMISS_TSBPTR], %g1 ! g1 = first TSB ptr
@@ -2913,7 +2918,7 @@ tsb_user4m:
! trapstat wants TTE in %g5
retry
-#ifndef sun4v
+#if !defined(sun4v) && !defined(ITLB_32M_256M_SUPPORT)
/*
* Panther ITLB synthesis.
* The Panther 32M and 256M ITLB code simulates these two large page
@@ -2966,7 +2971,7 @@ tsb_user_itlb_synth:
SET_TTE4M_PN(%g5, %g7) /* add TTE4M pagesize to TTE */
ITLB_STUFF(%g5, %g1, %g2, %g3, %g4)
retry
-#endif
+#endif /* sun4v && ITLB_32M_256M_SUPPORT */
tsb_kernel:
#ifdef sun4v