diff options
Diffstat (limited to 'src/arch/arm/insts')
-rw-r--r-- | src/arch/arm/insts/mem64.cc | 6 | ||||
-rw-r--r-- | src/arch/arm/insts/static_inst.cc | 10 |
2 files changed, 15 insertions, 1 deletions
diff --git a/src/arch/arm/insts/mem64.cc b/src/arch/arm/insts/mem64.cc index fa8fdf0af..660e56e80 100644 --- a/src/arch/arm/insts/mem64.cc +++ b/src/arch/arm/insts/mem64.cc @@ -64,7 +64,11 @@ void Memory64::startDisassembly(std::ostream &os) const { printMnemonic(os, "", false); - printIntReg(os, dest); + if (isDataPrefetch()||isInstPrefetch()){ + printPFflags(os, dest); + }else{ + printIntReg(os, dest); + } ccprintf(os, ", ["); printIntReg(os, base); } diff --git a/src/arch/arm/insts/static_inst.cc b/src/arch/arm/insts/static_inst.cc index bd6f11521..f245cd4f0 100644 --- a/src/arch/arm/insts/static_inst.cc +++ b/src/arch/arm/insts/static_inst.cc @@ -324,6 +324,16 @@ ArmStaticInst::printIntReg(std::ostream &os, RegIndex reg_idx) const } } +void ArmStaticInst::printPFflags(std::ostream &os, int flag) const +{ + const char *flagtoprfop[]= { "PLD", "PLI", "PST", "Reserved"}; + const char *flagtotarget[] = { "L1", "L2", "L3", "Reserved"}; + const char *flagtopolicy[] = { "KEEP", "STRM"}; + + ccprintf(os, "%s%s%s", flagtoprfop[(flag>>3)&3], + flagtotarget[(flag>>1)&3], flagtopolicy[flag&1]); +} + void ArmStaticInst::printFloatReg(std::ostream &os, RegIndex reg_idx) const { |