Deleted Added
sdiff udiff text old ( 4156:a4667c990e12 ) new ( 4181:6edaeff44647 )
full compact
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;

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

362
363 // check for instruction-count-based events
364 comInstEventQueue[0]->serviceEvents(numInst);
365
366 // decode the instruction
367 inst = gtoh(inst);
368 //If we're not in the middle of a macro instruction
369 if (!curMacroStaticInst) {
370#if THE_ISA == ALPHA_ISA
371 StaticInstPtr instPtr = StaticInst::decode(makeExtMI(inst, thread->readPC()));
372#elif THE_ISA == SPARC_ISA
373 StaticInstPtr instPtr = StaticInst::decode(makeExtMI(inst, thread->getTC()));
374#elif THE_ISA == X86_ISA
375 StaticInstPtr instPtr = StaticInst::decode(makeExtMI(inst, thread->getTC()));
376#elif THE_ISA == MIPS_ISA
377 //Mips doesn't do anything in it's MakeExtMI function right now,
378 //so it won't be called.
379 StaticInstPtr instPtr = StaticInst::decode(inst);
380#endif
381 if (instPtr->isMacroOp()) {
382 curMacroStaticInst = instPtr;
383 curStaticInst = curMacroStaticInst->
384 fetchMicroOp(thread->readMicroPC());
385 } else {
386 curStaticInst = instPtr;
387 }
388 } else {
389 //Read the next micro op from the macro op
390 curStaticInst = curMacroStaticInst->
391 fetchMicroOp(thread->readMicroPC());
392 }
393
394
395 traceData = Trace::getInstRecord(curTick, tc, curStaticInst,
396 thread->readPC());
397
398 DPRINTF(Decode,"Decode: Decoded %s instruction (opcode: 0x%x): 0x%x\n",
399 curStaticInst->getName(), curStaticInst->getOpcode(),
400 curStaticInst->machInst);
401
402#if FULL_SYSTEM
403 thread->setInst(inst);
404#endif // FULL_SYSTEM
405}
406
407void
408BaseSimpleCPU::postExecute()
409{
410#if FULL_SYSTEM
411 if (thread->profile) {
412 bool usermode = TheISA::inUserMode(tc);

--- 74 unchanged lines hidden ---