diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2007-06-08 16:09:43 +0000 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2007-06-08 16:09:43 +0000 |
commit | 1f7ed5b7b4f0435ef61f5db6c701f22aacee369d (patch) | |
tree | 6719aa116b183bcf001fe2808c6287415193bdfd /src/arch/x86/isa/formats | |
parent | ce8f4c1f16962b087a13d9d928b09f44df04088d (diff) | |
download | gem5-1f7ed5b7b4f0435ef61f5db6c701f22aacee369d.tar.xz |
Big changes to use the new microcode assembler.
--HG--
extra : convert_revision : 7d1a43c5791a2e7e30533746da3dd7036a5b8799
Diffstat (limited to 'src/arch/x86/isa/formats')
-rw-r--r-- | src/arch/x86/isa/formats/multi.isa | 20 |
1 files changed, 3 insertions, 17 deletions
diff --git a/src/arch/x86/isa/formats/multi.isa b/src/arch/x86/isa/formats/multi.isa index 8f91c249c..e47c8776e 100644 --- a/src/arch/x86/isa/formats/multi.isa +++ b/src/arch/x86/isa/formats/multi.isa @@ -60,27 +60,13 @@ // Instructions that do the same thing to multiple sets of arguments. // -let {{ - def doInst(name, Name, opTypeSet): - if not instDict.has_key(Name): - raise Exception, "Unrecognized instruction: %s" % Name - inst = instDict[Name]() - return inst.emit(opTypeSet) -}}; - def format Inst(*opTypeSet) {{ - (header_output, - decoder_output, - decode_block, - exce_output) = doInst(name, Name, list(opTypeSet)).makeList() + decode_block = specializeInst(Name, list(opTypeSet), EmulEnv()) }}; def format MultiInst(switchVal, *opTypeSets) {{ switcher = {} for (count, opTypeSet) in zip(xrange(len(opTypeSets)), opTypeSets): - switcher[count] = (opTypeSet,) - (header_output, - decoder_output, - decode_block, - exec_output) = doSplitDecode(name, Name, doInst, switchVal, switcher).makeList() + switcher[count] = (opTypeSet, EmulEnv()) + decode_block = doSplitDecode(Name, specializeInst, switchVal, switcher) }}; |