#define IVEC .L_IVEC_\name\()
#define IHSRR .L_IHSRR_\name\()
#define IAREA .L_IAREA_\name\()
+#define IISIDE .L_IISIDE_\name\()
#define IDAR .L_IDAR_\name\()
#define IDSISR .L_IDSISR_\name\()
#define ISET_RI .L_ISET_RI_\name\()
.ifndef IAREA
IAREA=PACA_EXGEN
.endif
+ .ifndef IISIDE
+ IISIDE=0
+ .endif
.ifndef IDAR
IDAR=0
.endif
*/
GET_SCRATCH0(r10)
std r10,IAREA+EX_R13(r13)
- .if IDAR == 1
+ .if IDAR && !IISIDE
.if IHSRR
mfspr r10,SPRN_HDAR
.else
.endif
std r10,IAREA+EX_DAR(r13)
.endif
- .if IDSISR == 1
+ .if IDSISR && !IISIDE
.if IHSRR
mfspr r10,SPRN_HDSISR
.else
std r9,GPR11(r1)
std r10,GPR12(r1)
std r11,GPR13(r1)
+
.if IDAR
- .if IDAR == 2
+ .if IISIDE
ld r10,_NIP(r1)
.else
ld r10,IAREA+EX_DAR(r13)
.endif
std r10,_DAR(r1)
.endif
+
.if IDSISR
- .if IDSISR == 2
+ .if IISIDE
ld r10,_MSR(r1)
lis r11,DSISR_SRR1_MATCH_64S@h
and r10,r10,r11
.endif
std r10,_DSISR(r1)
.endif
+
BEGIN_FTR_SECTION_NESTED(66)
ld r10,IAREA+EX_CFAR(r13)
std r10,ORIG_GPR3(r1)
INT_DEFINE_BEGIN(instruction_access)
IVEC=0x400
- IDAR=2
- IDSISR=2
+ IISIDE=1
+ IDAR=1
+ IDSISR=1
IKVM_REAL=1
INT_DEFINE_END(instruction_access)
IVEC=0x480
IAREA=PACA_EXSLB
IRECONCILE=0
- IDAR=2
+ IISIDE=1
+ IDAR=1
IKVM_REAL=1
INT_DEFINE_END(instruction_access_slb)