1// -*- mode:c++ -*- 2 3// Copyright (c) 2007 The Hewlett-Packard Development Company 4// All rights reserved. 5// 6// Redistribution and use of this software in source and binary forms, 7// with or without modification, are permitted provided that the 8// following conditions are met: --- 41 unchanged lines hidden (view full) --- 50// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 51// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 52// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 53// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 54// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 55// 56// Authors: Gabe Black 57 |
58//##include "microops/microops.isa" 59//##include "macroop.isa" 60 61let {{ 62 import sys 63 sys.path[0:0] = ["src/arch/x86/isa/"] 64 from insts import microcode 65 print microcode 66 from micro_asm import MicroAssembler, Rom_Macroop, Rom 67 mainRom = Rom('main ROM') 68 assembler = MicroAssembler(X86Macroop, microopClasses, mainRom, Rom_Macroop) 69 macroopDict = assembler.assemble(microcode) 70}}; 71 |
72//////////////////////////////////////////////////////////////////// 73// 74// Microcode assembler specialization for x86 75// 76 77let {{ 78 from micro_asm import MicroAssembler, Combinational_Macroop, Rom_Macroop, Rom 79 class X86Macroop(Combinational_Macroop): --- 17 unchanged lines hidden (view full) --- 97 for val in vals: 98 if val: 99 text += ", true" 100 else: 101 text += ", false" 102 return text 103 104 def getAllocator(self, mnemonic, *microFlags): |
105 return 'new %s(machInst, %s)' % (self.className, mnemonic, self.microFlagsText(microFlags)) |
106}}; |