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 ---