PC
#define IS_KERNEL_TEXT(PC) ((unsigned long)(PC) > START_ADDR)
; SP points to PC/STAT32: hw restores them despite NO_AUTOSAVE
; 3. Auto save: (mandatory) Push PC and STAT32 on stack
; carve pt_regs on stack (case #3), PC/STAT32 already on stack
if (ctrl->vrs[PC] == 0)
ctrl->vrs[PC] = ctrl->vrs[LR];
ctrl->vrs[FP], ctrl->vrs[SP], ctrl->vrs[LR], ctrl->vrs[PC]);
ctrl.vrs[PC] = 0;
if (ctrl.vrs[PC] == 0)
ctrl.vrs[PC] = ctrl.vrs[LR];
if (frame->pc == ctrl.vrs[PC] && frame->sp == ctrl.vrs[SP])
frame->pc = ctrl.vrs[PC];
REGS(PC, 0, NOSPPC, 0, 0)),
REGS(PC, ANY, 0, 0, 0)),
REGS(PC, NOSPPCX, 0, 0, 0)),
case PC:
case PC:
#define PC_WE PC(6) /* Use WE as PC(6) */
#define PC_DTACK PC(5) /* Use DTACK as PC(5) */
#define PC_IRQ7 PC(4) /* Use IRQ7 as PC(4) */
#define PC_LDS PC(2) /* Use LDS as PC(2) */
#define PC_UDS PC(1) /* Use UDS as PC(1) */
#define PC_MOCLK PC(0) /* Use MOCLK as PC(0) */
case PC:
case PC:
case PC:
case PC:
#define r2() (PC=(in_p(2) & 0xff))
#define w2(byte) {out_p(2,byte); PC = byte;}
#define t2(pat) {PC ^= pat; out_p(2,PC);}
#define e2() {PC &= 0xfe; out_p(2,PC);}
#define o2() {PC |= 1; out_p(2,PC);}
return PVR_PAGE_TABLE_FIELD_GET(2, PC, VALID, entry);
PVR_PAGE_TABLE_FIELD_PREP(2, PC, VALID, true) |
PVR_PAGE_TABLE_FIELD_PREP(2, PC, ENTRY_PENDING, false) |
PVR_PAGE_TABLE_FIELD_PREP(2, PC, PD_BASE, child_table_dma_addr));
GUEST_ASSERT_EQ(sw_bp_addr, PC(sw_bp));
install_hw_bp(bpn, PC(hw_bp));
GUEST_ASSERT_EQ(hw_bp_addr, PC(hw_bp));
install_hw_bp(bpn, PC(bp_svc));
GUEST_ASSERT_EQ(hw_bp_addr, PC(bp_svc));
GUEST_ASSERT_EQ(svc_addr, PC(bp_svc) + 4);
install_hw_bp(bpn, PC(bp_brk));
GUEST_ASSERT_EQ(sw_bp_addr, PC(bp_brk));
GUEST_ASSERT_EQ(hw_bp_addr, PC(bp_brk));
install_wp(wpn, PC(write_data));
GUEST_ASSERT_EQ(wp_data_addr, PC(write_data));
GUEST_ASSERT_EQ(ss_addr[0], PC(ss_start));
GUEST_ASSERT_EQ(ss_addr[1], PC(ss_start) + 4);
GUEST_ASSERT_EQ(ss_addr[2], PC(ss_start) + 8);
GUEST_ASSERT_EQ(sw_bp_addr, PC(sw_bp2));
install_hw_bp(bpn, PC(hw_bp2));
install_wp(wpn, PC(write_data));
install_hw_bp_ctx(bpn, ctx_bpn, PC(hw_bp_ctx), ctx);
GUEST_ASSERT_EQ(hw_bp_addr, PC(hw_bp_ctx));
install_wp_ctx(wpn, ctx_bpn, PC(write_data), ctx);
GUEST_ASSERT_EQ(wp_data_addr, PC(write_data));