microcode_rom.hh (5664:3b3756efad89) | microcode_rom.hh (5666:e7925fa8f0d6) |
---|---|
1/* 2 * Copyright (c) 2008 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; --- 17 unchanged lines hidden (view full) --- 26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 * 28 * Authors: Gabe Black 29 */ 30 31#ifndef __ARCH_X86_MICROCODE_ROM_HH__ 32#define __ARCH_X86_MICROCODE_ROM_HH__ 33 | 1/* 2 * Copyright (c) 2008 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; --- 17 unchanged lines hidden (view full) --- 26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 * 28 * Authors: Gabe Black 29 */ 30 31#ifndef __ARCH_X86_MICROCODE_ROM_HH__ 32#define __ARCH_X86_MICROCODE_ROM_HH__ 33 |
34#include "sim/microcode_rom.hh" | 34#include "arch/x86/emulenv.hh" 35#include "cpu/static_inst.hh" |
35 | 36 |
37namespace X86ISAInst 38{ 39 class MicrocodeRom 40 { 41 protected: 42 43 typedef StaticInstPtr (*GenFunc)(StaticInstPtr); 44 45 static const MicroPC numMicroops; 46 47 GenFunc * genFuncs; 48 49 public: 50 //Constructor. 51 MicrocodeRom(); 52 53 //Destructor. 54 ~MicrocodeRom() 55 { 56 delete [] genFuncs; 57 } 58 59 StaticInstPtr 60 fetchMicroop(MicroPC microPC, StaticInstPtr curMacroop) 61 { 62 microPC = normalMicroPC(microPC); 63 assert(microPC < numMicroops); 64 return genFuncs[microPC](curMacroop); 65 } 66 }; 67} 68 |
|
36namespace X86ISA 37{ | 69namespace X86ISA 70{ |
38 using ::MicrocodeRom; | 71 using X86ISAInst::MicrocodeRom; |
39} 40 41#endif // __ARCH_X86_MICROCODE_ROM_HH__ | 72} 73 74#endif // __ARCH_X86_MICROCODE_ROM_HH__ |