nativetrace.cc (10037:5cac77888310) nativetrace.cc (10338:8bee5f4edb92)
1/*
1/*
2 * Copyright (c) 2010-2011 ARM Limited
2 * Copyright (c) 2010-2011, 2014 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software
9 * licensed hereunder. You may use the software subject to the license
10 * terms below provided that you ensure that this notice is replicated

--- 100 unchanged lines hidden (view full) ---

111 }
112
113 //R15, aliased with the PC
114 newState[STATE_PC] = tc->pcState().npc();
115 changed[STATE_PC] = (newState[STATE_PC] != oldState[STATE_PC]);
116
117 //CPSR
118 CPSR cpsr = tc->readMiscReg(MISCREG_CPSR);
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software
9 * licensed hereunder. You may use the software subject to the license
10 * terms below provided that you ensure that this notice is replicated

--- 100 unchanged lines hidden (view full) ---

111 }
112
113 //R15, aliased with the PC
114 newState[STATE_PC] = tc->pcState().npc();
115 changed[STATE_PC] = (newState[STATE_PC] != oldState[STATE_PC]);
116
117 //CPSR
118 CPSR cpsr = tc->readMiscReg(MISCREG_CPSR);
119 cpsr.nz = tc->readIntReg(INTREG_CONDCODES_NZ);
120 cpsr.c = tc->readIntReg(INTREG_CONDCODES_C);
121 cpsr.v = tc->readIntReg(INTREG_CONDCODES_V);
122 cpsr.ge = tc->readIntReg(INTREG_CONDCODES_GE);
119 cpsr.nz = tc->readCCReg(CCREG_NZ);
120 cpsr.c = tc->readCCReg(CCREG_C);
121 cpsr.v = tc->readCCReg(CCREG_V);
122 cpsr.ge = tc->readCCReg(CCREG_GE);
123
124 newState[STATE_CPSR] = cpsr;
125 changed[STATE_CPSR] = (newState[STATE_CPSR] != oldState[STATE_CPSR]);
126
127 for (int i = 0; i < NumFloatV7ArchRegs; i += 2) {
128 newState[STATE_F0 + (i >> 1)] =
129 static_cast<uint64_t>(tc->readFloatRegBits(i + 1)) << 32 |
130 tc->readFloatRegBits(i);
131 }
132 newState[STATE_FPSCR] = tc->readMiscRegNoEffect(MISCREG_FPSCR) |
123
124 newState[STATE_CPSR] = cpsr;
125 changed[STATE_CPSR] = (newState[STATE_CPSR] != oldState[STATE_CPSR]);
126
127 for (int i = 0; i < NumFloatV7ArchRegs; i += 2) {
128 newState[STATE_F0 + (i >> 1)] =
129 static_cast<uint64_t>(tc->readFloatRegBits(i + 1)) << 32 |
130 tc->readFloatRegBits(i);
131 }
132 newState[STATE_FPSCR] = tc->readMiscRegNoEffect(MISCREG_FPSCR) |
133 tc->readIntReg(INTREG_FPCONDCODES);
133 tc->readCCReg(CCREG_FP);
134}
135
136void
137Trace::ArmNativeTrace::check(NativeTraceRecord *record)
138{
139 ThreadContext *tc = record->getThread();
140 // This area is read only on the target. It can't stop there to tell us
141 // what's going on, so we should skip over anything there also.

--- 88 unchanged lines hidden ---
134}
135
136void
137Trace::ArmNativeTrace::check(NativeTraceRecord *record)
138{
139 ThreadContext *tc = record->getThread();
140 // This area is read only on the target. It can't stop there to tell us
141 // what's going on, so we should skip over anything there also.

--- 88 unchanged lines hidden ---