Hi James,

On 08/07/2014 13:44, James Hogan wrote:
> Hi Leon,
> 
> On 08/07/14 08:57, Leon Alrae wrote:
>> BadInstr Register (CP0 Register 8, Select 1)
>> The BadInstr register is a read-only register that capture the most recent
>> instruction which caused an exception.
>>
>> BadInstrP Register (CP0 Register 8, Select 2)
>> The BadInstrP register contains the prior branch instruction, when the
>> faulting instruction is in a branch delay slot.
>>
>> Using error_code to indicate whether AdEL or TLBL was triggered during
>> instruction fetch, in this case BadInstr is not updated as valid instruction
>> word is not available.
>>
>> Signed-off-by: Leon Alrae <leon.al...@imgtec.com>
>> ---
>>  target-mips/cpu.h       |    6 +++
>>  target-mips/helper.c    |   44 ++++++++++++++++++++++++--
>>  target-mips/op_helper.c |   17 +++++++++-
>>  target-mips/translate.c |   80 
>> +++++++++++++++++++++++++++++++++++++++++++---
>>  4 files changed, 136 insertions(+), 11 deletions(-)
>>
>> diff --git a/target-mips/cpu.h b/target-mips/cpu.h
>> index bc52222..656f5ca 100644
>> --- a/target-mips/cpu.h
>> +++ b/target-mips/cpu.h
>> @@ -177,6 +177,8 @@ struct TCState {
>>      target_ulong CP0_TCScheFBack;
>>      int32_t CP0_Debug_tcstatus;
>>      target_ulong CP0_UserLocal;
>> +    uint32_t CP0_BadInstr;
>> +    uint32_t CP0_BadInstrP;
> 
> According to the PRA, BadInstr/BadInstrP are instantiated per VPE, so
> shouldn't these be in struct CPUMIPSState?
> 
> Cheers
> James
> 

Thanks for pointing this out - I'll correct it in the next version.

Regards,
Leon

Reply via email to