1/* 2 * Copyright (c) 2007-2009 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; --- 91 unchanged lines hidden (view full) --- 100{ 101 checkRcx = true; 102 checkR11 = true; 103} 104 105bool 106X86NativeTrace::checkRcxReg(const char * name, uint64_t &mVal, uint64_t &nVal) 107{ |
108 if (!checkRcx) |
109 checkRcx = (mVal != oldRcxVal || nVal != oldRealRcxVal); |
110 if (checkRcx) |
111 return checkReg(name, mVal, nVal); 112 return true; 113} 114 115bool 116X86NativeTrace::checkR11Reg(const char * name, uint64_t &mVal, uint64_t &nVal) 117{ |
118 if (!checkR11) |
119 checkR11 = (mVal != oldR11Val || nVal != oldRealR11Val); |
120 if (checkR11) |
121 return checkReg(name, mVal, nVal); 122 return true; 123} 124 125bool 126X86NativeTrace::checkXMM(int num, uint64_t mXmmBuf[], uint64_t nXmmBuf[]) 127{ 128 if (mXmmBuf[num * 2] != nXmmBuf[num * 2] || --- 8 unchanged lines hidden (view full) --- 137} 138 139void 140X86NativeTrace::check(NativeTraceRecord *record) 141{ 142 nState.update(this); 143 mState.update(record->getThread()); 144 |
145 if (record->getStaticInst()->isSyscall()) |
146 { 147 checkRcx = false; 148 checkR11 = false; 149 oldRcxVal = mState.rcx; 150 oldRealRcxVal = nState.rcx; 151 oldR11Val = mState.r11; 152 oldRealR11Val = nState.r11; 153 } --- 47 unchanged lines hidden --- |