base.cc (4515:a21985804844) base.cc (4518:8380fb0a275a)
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;

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

375 if (!curMacroStaticInst) {
376
377 StaticInstPtr instPtr = NULL;
378
379 //Predecode, ie bundle up an ExtMachInst
380 //This should go away once the constructor can be set up properly
381 predecoder.setTC(thread->getTC());
382 //If more fetch data is needed, pass it in.
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;

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

375 if (!curMacroStaticInst) {
376
377 StaticInstPtr instPtr = NULL;
378
379 //Predecode, ie bundle up an ExtMachInst
380 //This should go away once the constructor can be set up properly
381 predecoder.setTC(thread->getTC());
382 //If more fetch data is needed, pass it in.
383 const Addr PCMask = ~((Addr)sizeof(MachInst) - 1);
384 if(predecoder.needMoreBytes())
383 if(predecoder.needMoreBytes())
385 predecoder.moreBytes((thread->readPC() & PCMask) + fetchOffset,
386 0, inst);
384 predecoder.moreBytes(thread->readPC() + fetchOffset, 0, inst);
387 else
388 predecoder.process();
389
390 //If an instruction is ready, decode it. Otherwise, we'll have to
391 //fetch beyond the MachInst at the current pc.
392 if (predecoder.extMachInstReady()) {
393#if THE_ISA == X86_ISA
394 thread->setNextPC(thread->readPC() + predecoder.getInstSize());

--- 119 unchanged lines hidden ---
385 else
386 predecoder.process();
387
388 //If an instruction is ready, decode it. Otherwise, we'll have to
389 //fetch beyond the MachInst at the current pc.
390 if (predecoder.extMachInstReady()) {
391#if THE_ISA == X86_ISA
392 thread->setNextPC(thread->readPC() + predecoder.getInstSize());

--- 119 unchanged lines hidden ---