nativetrace.cc (6409:6eaa041d043e) | nativetrace.cc (6410:362e27c08d96) |
---|---|
1/* 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; --- 77 unchanged lines hidden (view full) --- 86 nState.update(this); 87 mState.update(record->getThread()); 88 89 bool errorFound = false; 90 // Regular int regs 91 for (int i = 0; i < STATE_NUMVALS; i++) { 92 if (nState.changed[i] || mState.changed[i]) { 93 const char *vergence = " "; | 1/* 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; --- 77 unchanged lines hidden (view full) --- 86 nState.update(this); 87 mState.update(record->getThread()); 88 89 bool errorFound = false; 90 // Regular int regs 91 for (int i = 0; i < STATE_NUMVALS; i++) { 92 if (nState.changed[i] || mState.changed[i]) { 93 const char *vergence = " "; |
94 if (mState.oldState[i] == nState.oldState[i] && 95 mState.newState[i] != nState.newState[i]) { | 94 bool oldMatch = (mState.oldState[i] == nState.oldState[i]); 95 bool newMatch = (mState.newState[i] == nState.newState[i]); 96 if (oldMatch && newMatch) { 97 // The more things change, the more they stay the same. 98 continue; 99 } else if (oldMatch && !newMatch) { |
96 vergence = "<>"; | 100 vergence = "<>"; |
97 } else if (mState.oldState[i] != nState.oldState[i] && 98 mState.newState[i] == nState.newState[i]) { | 101 } else if (!oldMatch && newMatch) { |
99 vergence = "><"; 100 } | 102 vergence = "><"; 103 } |
104 errorFound = true; |
|
101 if (!nState.changed[i]) { 102 DPRINTF(ExecRegDelta, "%s [%5s] "\ 103 "Native: %#010x "\ 104 "M5: %#010x => %#010x\n", 105 vergence, regNames[i], 106 nState.newState[i], 107 mState.oldState[i], mState.newState[i]); | 105 if (!nState.changed[i]) { 106 DPRINTF(ExecRegDelta, "%s [%5s] "\ 107 "Native: %#010x "\ 108 "M5: %#010x => %#010x\n", 109 vergence, regNames[i], 110 nState.newState[i], 111 mState.oldState[i], mState.newState[i]); |
108 errorFound = true; | |
109 } else if (!mState.changed[i]) { 110 DPRINTF(ExecRegDelta, "%s [%5s] "\ 111 "Native: %#010x => %#010x "\ 112 "M5: %#010x \n", 113 vergence, regNames[i], 114 nState.oldState[i], nState.newState[i], 115 mState.newState[i]); | 112 } else if (!mState.changed[i]) { 113 DPRINTF(ExecRegDelta, "%s [%5s] "\ 114 "Native: %#010x => %#010x "\ 115 "M5: %#010x \n", 116 vergence, regNames[i], 117 nState.oldState[i], nState.newState[i], 118 mState.newState[i]); |
116 errorFound = true; 117 } else if (mState.oldState[i] != nState.oldState[i] || 118 mState.newState[i] != nState.newState[i]) { | 119 } else { |
119 DPRINTF(ExecRegDelta, "%s [%5s] "\ 120 "Native: %#010x => %#010x "\ 121 "M5: %#010x => %#010x\n", 122 vergence, regNames[i], 123 nState.oldState[i], nState.newState[i], 124 mState.oldState[i], mState.newState[i]); | 120 DPRINTF(ExecRegDelta, "%s [%5s] "\ 121 "Native: %#010x => %#010x "\ 122 "M5: %#010x => %#010x\n", 123 vergence, regNames[i], 124 nState.oldState[i], nState.newState[i], 125 mState.oldState[i], mState.newState[i]); |
125 errorFound = true; | |
126 } 127 } 128 } 129 if (errorFound) { 130 StaticInstPtr inst = record->getStaticInst(); 131 assert(inst); 132 bool ran = true; 133 if (inst->isMicroop()) { --- 19 unchanged lines hidden --- | 126 } 127 } 128 } 129 if (errorFound) { 130 StaticInstPtr inst = record->getStaticInst(); 131 assert(inst); 132 bool ran = true; 133 if (inst->isMicroop()) { --- 19 unchanged lines hidden --- |