diff options
author | Gene Wu <Gene.Wu@arm.com> | 2010-08-23 11:18:41 -0500 |
---|---|---|
committer | Gene Wu <Gene.Wu@arm.com> | 2010-08-23 11:18:41 -0500 |
commit | 7405f4b7740a4f90c7f5946a1cfb39163d7b8b1d (patch) | |
tree | 67c92ce16f244361110389d02202fd5ae0afa6be /src/arch/arm/isa/insts/misc.isa | |
parent | aabf478920671b8daf5c38a50442e80310e50671 (diff) | |
download | gem5-7405f4b7740a4f90c7f5946a1cfb39163d7b8b1d.tar.xz |
ARM: Implement DSB, DMB, ISB
Diffstat (limited to 'src/arch/arm/isa/insts/misc.isa')
-rw-r--r-- | src/arch/arm/isa/insts/misc.isa | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/arch/arm/isa/insts/misc.isa b/src/arch/arm/isa/insts/misc.isa index 09364cd23..5a28a9dba 100644 --- a/src/arch/arm/isa/insts/misc.isa +++ b/src/arch/arm/isa/insts/misc.isa @@ -679,6 +679,33 @@ let {{ decoder_output += BasicConstructor.subst(clrexIop) exec_output += PredOpExecute.subst(clrexIop) + isbCode = ''' + ''' + isbIop = InstObjParams("isb", "Isb", "PredOp", + {"code": isbCode, + "predicate_test": predicateTest}, ['IsSerializing']) + header_output += BasicDeclare.subst(isbIop) + decoder_output += BasicConstructor.subst(isbIop) + exec_output += PredOpExecute.subst(isbIop) + + dsbCode = ''' + ''' + dsbIop = InstObjParams("dsb", "Dsb", "PredOp", + {"code": dsbCode, + "predicate_test": predicateTest},['IsMemBarrier']) + header_output += BasicDeclare.subst(dsbIop) + decoder_output += BasicConstructor.subst(dsbIop) + exec_output += PredOpExecute.subst(dsbIop) + + dmbCode = ''' + ''' + dmbIop = InstObjParams("dmb", "Dmb", "PredOp", + {"code": dmbCode, + "predicate_test": predicateTest},['IsMemBarrier']) + header_output += BasicDeclare.subst(dmbIop) + decoder_output += BasicConstructor.subst(dmbIop) + exec_output += PredOpExecute.subst(dmbIop) + cpsCode = ''' uint32_t mode = bits(imm, 4, 0); uint32_t f = bits(imm, 5); |