ev5.cc (8794:e2ac2b7164dd) | ev5.cc (8795:0909f8ed7aa0) |
---|---|
1/* 2 * Copyright (c) 2002-2005 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; --- 188 unchanged lines hidden (view full) --- 197} 198 199// Cause the simulator to break when changing to the following IPL 200int break_ipl = -1; 201 202void 203ISA::setIpr(int idx, uint64_t val, ThreadContext *tc) 204{ | 1/* 2 * Copyright (c) 2002-2005 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; --- 188 unchanged lines hidden (view full) --- 197} 198 199// Cause the simulator to break when changing to the following IPL 200int break_ipl = -1; 201 202void 203ISA::setIpr(int idx, uint64_t val, ThreadContext *tc) 204{ |
205 uint64_t old; 206 | |
207 if (tc->misspeculating()) 208 return; 209 210 switch (idx) { 211 case IPR_PALtemp0: 212 case IPR_PALtemp1: 213 case IPR_PALtemp2: 214 case IPR_PALtemp3: --- 35 unchanged lines hidden (view full) --- 250 // This IPR only writes the upper 64 bits. It's ok to write 251 // all 64 here since we mask out the lower 32 in rpcc (see 252 // isa_desc). 253 ipr[idx] = val; 254 break; 255 256 case IPR_PALtemp23: 257 // write entire quad w/ no side-effect | 205 if (tc->misspeculating()) 206 return; 207 208 switch (idx) { 209 case IPR_PALtemp0: 210 case IPR_PALtemp1: 211 case IPR_PALtemp2: 212 case IPR_PALtemp3: --- 35 unchanged lines hidden (view full) --- 248 // This IPR only writes the upper 64 bits. It's ok to write 249 // all 64 here since we mask out the lower 32 in rpcc (see 250 // isa_desc). 251 ipr[idx] = val; 252 break; 253 254 case IPR_PALtemp23: 255 // write entire quad w/ no side-effect |
258 old = ipr[idx]; 259 ipr[idx] = val; | |
260 if (tc->getKernelStats()) | 256 if (tc->getKernelStats()) |
261 tc->getKernelStats()->context(old, val, tc); | 257 tc->getKernelStats()->context(ipr[idx], val, tc); 258 ipr[idx] = val; |
262 break; 263 264 case IPR_DTB_PTE: 265 // write entire quad w/ no side-effect, tag is forthcoming 266 ipr[idx] = val; 267 break; 268 269 case IPR_EXC_ADDR: --- 255 unchanged lines hidden --- | 259 break; 260 261 case IPR_DTB_PTE: 262 // write entire quad w/ no side-effect, tag is forthcoming 263 ipr[idx] = val; 264 break; 265 266 case IPR_EXC_ADDR: --- 255 unchanged lines hidden --- |