ua2005.cc (8232:b28d06a175be) ua2005.cc (8747:017e5bbbb4e2)
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;

--- 193 unchanged lines hidden (view full) ---

202 cpu->schedule(hSTickCompare, curTick() + time * cpu->ticks(1));
203 }
204 DPRINTF(Timer, "writing to hsTICK compare register value %#X\n", val);
205 break;
206
207 case MISCREG_HPSTATE:
208 // T1000 spec says impl. dependent val must always be 1
209 setMiscRegNoEffect(miscReg, val | HPSTATE::id);
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;

--- 193 unchanged lines hidden (view full) ---

202 cpu->schedule(hSTickCompare, curTick() + time * cpu->ticks(1));
203 }
204 DPRINTF(Timer, "writing to hsTICK compare register value %#X\n", val);
205 break;
206
207 case MISCREG_HPSTATE:
208 // T1000 spec says impl. dependent val must always be 1
209 setMiscRegNoEffect(miscReg, val | HPSTATE::id);
210#if FULL_SYSTEM
211 if (hpstate & HPSTATE::tlz && tl == 0 && !(hpstate & HPSTATE::hpriv))
212 cpu->postInterrupt(IT_TRAP_LEVEL_ZERO, 0);
213 else
214 cpu->clearInterrupt(IT_TRAP_LEVEL_ZERO, 0);
210 if (hpstate & HPSTATE::tlz && tl == 0 && !(hpstate & HPSTATE::hpriv))
211 cpu->postInterrupt(IT_TRAP_LEVEL_ZERO, 0);
212 else
213 cpu->clearInterrupt(IT_TRAP_LEVEL_ZERO, 0);
215#endif
216 break;
217 case MISCREG_HTSTATE:
218 setMiscRegNoEffect(miscReg, val);
219 break;
220
221 case MISCREG_STRAND_STS_REG:
222 if (bits(val,2,2))
223 panic("No support for setting spec_en bit\n");
224 setMiscRegNoEffect(miscReg, bits(val,0,0));
225 if (!bits(val,0,0)) {
226 DPRINTF(Quiesce, "Cpu executed quiescing instruction\n");
227 // Time to go to sleep
228 tc->suspend();
214 break;
215 case MISCREG_HTSTATE:
216 setMiscRegNoEffect(miscReg, val);
217 break;
218
219 case MISCREG_STRAND_STS_REG:
220 if (bits(val,2,2))
221 panic("No support for setting spec_en bit\n");
222 setMiscRegNoEffect(miscReg, bits(val,0,0));
223 if (!bits(val,0,0)) {
224 DPRINTF(Quiesce, "Cpu executed quiescing instruction\n");
225 // Time to go to sleep
226 tc->suspend();
227#if FULL_SYSTEM
229 if (tc->getKernelStats())
230 tc->getKernelStats()->quiesce();
228 if (tc->getKernelStats())
229 tc->getKernelStats()->quiesce();
230#endif
231 }
232 break;
233
234 default:
235 panic("Invalid write to FS misc register %s\n",
236 getMiscRegName(miscReg));
237 }
238}

--- 133 unchanged lines hidden ---
231 }
232 break;
233
234 default:
235 panic("Invalid write to FS misc register %s\n",
236 getMiscRegName(miscReg));
237 }
238}

--- 133 unchanged lines hidden ---