added SPARC sp / fp registers, also updated uint32_t's to uint64_t's in SPARC64
This commit is contained in:
@ -54,8 +54,14 @@ int sparc_reg_read(struct uc_struct *uc, unsigned int regid, void *value)
|
||||
switch(regid) {
|
||||
default: break;
|
||||
case UC_SPARC_REG_PC:
|
||||
*(int32_t *)value = SPARC_CPU(uc, mycpu)->env.pc;
|
||||
break;
|
||||
*(int32_t *)value = SPARC_CPU(uc, mycpu)->env.pc;
|
||||
break;
|
||||
case UC_SPARC_REG_SP:
|
||||
*(int32_t *)value = SPARC_CPU(uc, mycpu)->env.regbase[6];
|
||||
break;
|
||||
case UC_SPARC_REG_FP:
|
||||
*(int32_t *)value = SPARC_CPU(uc, mycpu)->env.regbase[22];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -78,13 +84,18 @@ int sparc_reg_write(struct uc_struct *uc, unsigned int regid, const void *value)
|
||||
switch(regid) {
|
||||
default: break;
|
||||
case UC_SPARC_REG_PC:
|
||||
SPARC_CPU(uc, mycpu)->env.pc = *(uint32_t *)value;
|
||||
SPARC_CPU(uc, mycpu)->env.npc = *(uint32_t *)value + 4;
|
||||
break;
|
||||
SPARC_CPU(uc, mycpu)->env.pc = *(uint32_t *)value;
|
||||
SPARC_CPU(uc, mycpu)->env.npc = *(uint32_t *)value + 4;
|
||||
break;
|
||||
case UC_SPARC_REG_SP:
|
||||
SPARC_CPU(uc, mycpu)->env.regbase[6] = *(uint32_t *)value;
|
||||
break;
|
||||
case UC_SPARC_REG_FP:
|
||||
SPARC_CPU(uc, mycpu)->env.regbase[22] = *(uint32_t *)value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user