nativetrace.cc (6724:70129fdded75) | nativetrace.cc (7414:0a05aa495903) |
---|---|
1/* | 1/* |
2 * Copyright (c) 2010 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 11 * unmodified and in its entirety in all distributions of the software, 12 * modified or unmodified, in source code or in binary form. 13 * |
|
2 * Copyright (c) 2006 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; 9 * redistributions in binary form must reproduce the above copyright --- 98 unchanged lines hidden (view full) --- 108 ThreadContext *tc = record->getThread(); 109 // This area is read only on the target. It can't stop there to tell us 110 // what's going on, so we should skip over anything there also. 111 if (tc->readNextPC() > 0xffff0000) 112 return; 113 nState.update(this); 114 mState.update(tc); 115 | 14 * Copyright (c) 2006 The Regents of The University of Michigan 15 * All rights reserved. 16 * 17 * Redistribution and use in source and binary forms, with or without 18 * modification, are permitted provided that the following conditions are 19 * met: redistributions of source code must retain the above copyright 20 * notice, this list of conditions and the following disclaimer; 21 * redistributions in binary form must reproduce the above copyright --- 98 unchanged lines hidden (view full) --- 120 ThreadContext *tc = record->getThread(); 121 // This area is read only on the target. It can't stop there to tell us 122 // what's going on, so we should skip over anything there also. 123 if (tc->readNextPC() > 0xffff0000) 124 return; 125 nState.update(this); 126 mState.update(tc); 127 |
128 // If a syscall just happened native trace needs another tick 129 if ((mState.oldState[STATE_PC] == nState.oldState[STATE_PC]) && 130 (mState.newState[STATE_PC] - 4 == nState.newState[STATE_PC])) { 131 DPRINTF(ExecRegDelta, "Advancing to match PCs after syscall\n"); 132 nState.update(this); 133 134 } 135 |
|
116 bool errorFound = false; 117 // Regular int regs 118 for (int i = 0; i < STATE_NUMVALS; i++) { 119 if (nState.changed[i] || mState.changed[i]) { 120 const char *vergence = " "; 121 bool oldMatch = (mState.oldState[i] == nState.oldState[i]); 122 bool newMatch = (mState.newState[i] == nState.newState[i]); 123 if (oldMatch && newMatch) { --- 61 unchanged lines hidden --- | 136 bool errorFound = false; 137 // Regular int regs 138 for (int i = 0; i < STATE_NUMVALS; i++) { 139 if (nState.changed[i] || mState.changed[i]) { 140 const char *vergence = " "; 141 bool oldMatch = (mState.oldState[i] == nState.oldState[i]); 142 bool newMatch = (mState.newState[i] == nState.newState[i]); 143 if (oldMatch && newMatch) { --- 61 unchanged lines hidden --- |