aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-ia64/vhpt.h
diff options
context:
space:
mode:
Diffstat (limited to 'xen/include/asm-ia64/vhpt.h')
-rw-r--r--xen/include/asm-ia64/vhpt.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/xen/include/asm-ia64/vhpt.h b/xen/include/asm-ia64/vhpt.h
index e4268f0947..2ef29b32af 100644
--- a/xen/include/asm-ia64/vhpt.h
+++ b/xen/include/asm-ia64/vhpt.h
@@ -140,12 +140,20 @@ CC_##Name:; \
mov r16 = cr.ifa; \
movl r30 = int_counts; \
;; \
+ extr.u r17=r16,59,5 \
+ ;; \
+ cmp.eq p6,p0=0x1e,r17; \
+(p6) br.cond.spnt .Alt_##Name \
+ ;; \
+ cmp.eq p6,p0=0x1d,r17; \
+(p6) br.cond.spnt .Alt_##Name \
+ ;; \
thash r28 = r16; \
adds r30 = CAUSE_VHPT_CC_HANDLED << 3, r30; \
;; \
ttag r19 = r16; \
- ld8 r27 = [r30]; \
- adds r17 = VLE_CCHAIN_OFFSET, r28; \
+ld8 r27 = [r30]; \
+adds r17 = VLE_CCHAIN_OFFSET, r28; \
;; \
ld8 r17 = [r17]; \
;; \
@@ -192,6 +200,11 @@ CC_##Name:; \
rfi; \
;; \
\
+.Alt_##Name:; \
+ mov pr = r31, 0x1ffff; \
+ ;; \
+ br.cond.sptk late_alt_##Name \
+ ;; \
.Out_##Name:; \
mov pr = r31, 0x1ffff; \
;; \