diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2009-07-08 23:02:19 -0700 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2009-07-08 23:02:19 -0700 |
commit | ddcf084f162374bab8f42ed5ab17c7cd4b67a559 (patch) | |
tree | 19340994adc704f055cb3b37040b22c8bc244e30 /src/arch/arm/isa/formats/util.isa | |
parent | cae870eded4b40b23990a232510c7914b12a9e86 (diff) | |
download | gem5-ddcf084f162374bab8f42ed5ab17c7cd4b67a559.tar.xz |
ARM: Get rid of the MemAcc and EAComp static insts.
Diffstat (limited to 'src/arch/arm/isa/formats/util.isa')
-rw-r--r-- | src/arch/arm/isa/formats/util.isa | 29 |
1 files changed, 2 insertions, 27 deletions
diff --git a/src/arch/arm/isa/formats/util.isa b/src/arch/arm/isa/formats/util.isa index ac2e077ba..e9cb533d6 100644 --- a/src/arch/arm/isa/formats/util.isa +++ b/src/arch/arm/isa/formats/util.isa @@ -44,31 +44,11 @@ def LoadStoreBase(name, Name, ea_code, memacc_code, mem_flags, inst_flags, mem_flags = makeList(mem_flags) inst_flags = makeList(inst_flags) - # add hook to get effective addresses into execution trace output. - ea_code += '\nif (traceData) { traceData->setAddr(EA); }\n' - - # Some CPU models execute the memory operation as an atomic unit, - # while others want to separate them into an effective address - # computation and a memory access operation. As a result, we need - # to generate three StaticInst objects. Note that the latter two - # are nested inside the larger "atomic" one. - - # Generate InstObjParams for each of the three objects. Note that - # they differ only in the set of code objects contained (which in - # turn affects the object's overall operand list). iop = InstObjParams(name, Name, base_class, {'ea_code': ea_code, 'memacc_code': memacc_code, 'predicate_test': predicateTest}, inst_flags) - ea_iop = InstObjParams(name, Name, base_class, - {'ea_code': ea_code, - 'predicate_test': predicateTest}, - inst_flags) - memacc_iop = InstObjParams(name, Name, base_class, - {'memacc_code': memacc_code, - 'predicate_test': predicateTest}, - inst_flags) if mem_flags: s = '\n\tmemAccessFlags = ' + string.join(mem_flags, '|') + ';' @@ -81,20 +61,15 @@ def LoadStoreBase(name, Name, ea_code, memacc_code, mem_flags, inst_flags, # corresponding Store template.. StoreCondInitiateAcc = StoreInitiateAcc - memAccExecTemplate = eval(exec_template_base + 'MemAccExecute') fullExecTemplate = eval(exec_template_base + 'Execute') initiateAccTemplate = eval(exec_template_base + 'InitiateAcc') completeAccTemplate = eval(exec_template_base + 'CompleteAcc') # (header_output, decoder_output, decode_block, exec_output) return (LoadStoreDeclare.subst(iop), - EACompConstructor.subst(ea_iop) - + MemAccConstructor.subst(memacc_iop) - + LoadStoreConstructor.subst(iop), + LoadStoreConstructor.subst(iop), decode_template.subst(iop), - EACompExecute.subst(ea_iop) - + memAccExecTemplate.subst(memacc_iop) - + fullExecTemplate.subst(iop) + fullExecTemplate.subst(iop) + initiateAccTemplate.subst(iop) + completeAccTemplate.subst(iop)) }}; |