base.cc (4522:3043823ff963) base.cc (4539:6eeeea62b7c4)
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;

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

395 instPtr = StaticInst::decode(predecoder.getExtMachInst());
396 } else {
397 stayAtPC = true;
398 fetchOffset += sizeof(MachInst);
399 }
400
401 //If we decoded an instruction and it's microcoded, start pulling
402 //out micro ops
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;

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

395 instPtr = StaticInst::decode(predecoder.getExtMachInst());
396 } else {
397 stayAtPC = true;
398 fetchOffset += sizeof(MachInst);
399 }
400
401 //If we decoded an instruction and it's microcoded, start pulling
402 //out micro ops
403 if (instPtr && instPtr->isMacroOp()) {
403 if (instPtr && instPtr->isMacroop()) {
404 curMacroStaticInst = instPtr;
405 curStaticInst = curMacroStaticInst->
404 curMacroStaticInst = instPtr;
405 curStaticInst = curMacroStaticInst->
406 fetchMicroOp(thread->readMicroPC());
406 fetchMicroop(thread->readMicroPC());
407 } else {
408 curStaticInst = instPtr;
409 }
410 } else {
411 //Read the next micro op from the macro op
412 curStaticInst = curMacroStaticInst->
407 } else {
408 curStaticInst = instPtr;
409 }
410 } else {
411 //Read the next micro op from the macro op
412 curStaticInst = curMacroStaticInst->
413 fetchMicroOp(thread->readMicroPC());
413 fetchMicroop(thread->readMicroPC());
414 }
415
416 //If we decoded an instruction this "tick", record information about it.
417 if(curStaticInst)
418 {
419#if TRACING_ON
420 traceData = Trace::getInstRecord(curTick, tc, curStaticInst,
421 thread->readPC());

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

470 fetchOffset = 0;
471 if (fault != NoFault) {
472 curMacroStaticInst = StaticInst::nullStaticInstPtr;
473 fault->invoke(tc);
474 thread->setMicroPC(0);
475 thread->setNextMicroPC(1);
476 } else {
477 //If we're at the last micro op for this instruction
414 }
415
416 //If we decoded an instruction this "tick", record information about it.
417 if(curStaticInst)
418 {
419#if TRACING_ON
420 traceData = Trace::getInstRecord(curTick, tc, curStaticInst,
421 thread->readPC());

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

470 fetchOffset = 0;
471 if (fault != NoFault) {
472 curMacroStaticInst = StaticInst::nullStaticInstPtr;
473 fault->invoke(tc);
474 thread->setMicroPC(0);
475 thread->setNextMicroPC(1);
476 } else {
477 //If we're at the last micro op for this instruction
478 if (curStaticInst && curStaticInst->isLastMicroOp()) {
478 if (curStaticInst && curStaticInst->isLastMicroop()) {
479 //We should be working with a macro op
480 assert(curMacroStaticInst);
481 //Close out this macro op, and clean up the
482 //microcode state
483 curMacroStaticInst = StaticInst::nullStaticInstPtr;
484 thread->setMicroPC(0);
485 thread->setNextMicroPC(1);
486 }

--- 25 unchanged lines hidden ---
479 //We should be working with a macro op
480 assert(curMacroStaticInst);
481 //Close out this macro op, and clean up the
482 //microcode state
483 curMacroStaticInst = StaticInst::nullStaticInstPtr;
484 thread->setMicroPC(0);
485 thread->setNextMicroPC(1);
486 }

--- 25 unchanged lines hidden ---