misc.isa (12258:08990d24fe41) | misc.isa (12259:f787f664d57a) |
---|---|
1// -*- mode:c++ -*- 2 3// Copyright (c) 2010-2013,2017 ARM Limited 4// All rights reserved 5// 6// The license below extends only to copyright in the software and shall 7// not be construed as granting a license to any other intellectual 8// property including but not limited to intellectual property relating --- 1056 unchanged lines hidden (view full) --- 1065 1066 isbCode = ''' 1067 // If the barrier is due to a CP15 access check for hyp traps 1068 if ((imm != 0) && mcrMrc15TrapToHyp(MISCREG_CP15ISB, Hcr, Cpsr, Scr, 1069 Hdcr, Hstr, Hcptr, imm)) { 1070 return std::make_shared<HypervisorTrap>(machInst, imm, 1071 EC_TRAPPED_CP15_MCR_MRC); 1072 } | 1// -*- mode:c++ -*- 2 3// Copyright (c) 2010-2013,2017 ARM Limited 4// All rights reserved 5// 6// The license below extends only to copyright in the software and shall 7// not be construed as granting a license to any other intellectual 8// property including but not limited to intellectual property relating --- 1056 unchanged lines hidden (view full) --- 1065 1066 isbCode = ''' 1067 // If the barrier is due to a CP15 access check for hyp traps 1068 if ((imm != 0) && mcrMrc15TrapToHyp(MISCREG_CP15ISB, Hcr, Cpsr, Scr, 1069 Hdcr, Hstr, Hcptr, imm)) { 1070 return std::make_shared<HypervisorTrap>(machInst, imm, 1071 EC_TRAPPED_CP15_MCR_MRC); 1072 } |
1073 fault = std::make_shared<FlushPipe>(); | |
1074 ''' 1075 isbIop = InstObjParams("isb", "Isb", "ImmOp", 1076 {"code": isbCode, 1077 "predicate_test": predicateTest}, | 1073 ''' 1074 isbIop = InstObjParams("isb", "Isb", "ImmOp", 1075 {"code": isbCode, 1076 "predicate_test": predicateTest}, |
1078 ['IsSerializeAfter']) | 1077 ['IsSerializeAfter', 'IsSquashAfter']) |
1079 header_output += ImmOpDeclare.subst(isbIop) 1080 decoder_output += ImmOpConstructor.subst(isbIop) 1081 exec_output += PredOpExecute.subst(isbIop) 1082 1083 dsbCode = ''' 1084 // If the barrier is due to a CP15 access check for hyp traps 1085 if ((imm != 0) && mcrMrc15TrapToHyp(MISCREG_CP15DSB, Hcr, Cpsr, Scr, 1086 Hdcr, Hstr, Hcptr, imm)) { 1087 return std::make_shared<HypervisorTrap>(machInst, imm, 1088 EC_TRAPPED_CP15_MCR_MRC); 1089 } | 1078 header_output += ImmOpDeclare.subst(isbIop) 1079 decoder_output += ImmOpConstructor.subst(isbIop) 1080 exec_output += PredOpExecute.subst(isbIop) 1081 1082 dsbCode = ''' 1083 // If the barrier is due to a CP15 access check for hyp traps 1084 if ((imm != 0) && mcrMrc15TrapToHyp(MISCREG_CP15DSB, Hcr, Cpsr, Scr, 1085 Hdcr, Hstr, Hcptr, imm)) { 1086 return std::make_shared<HypervisorTrap>(machInst, imm, 1087 EC_TRAPPED_CP15_MCR_MRC); 1088 } |
1090 fault = std::make_shared<FlushPipe>(); | |
1091 ''' 1092 dsbIop = InstObjParams("dsb", "Dsb", "ImmOp", 1093 {"code": dsbCode, 1094 "predicate_test": predicateTest}, | 1089 ''' 1090 dsbIop = InstObjParams("dsb", "Dsb", "ImmOp", 1091 {"code": dsbCode, 1092 "predicate_test": predicateTest}, |
1095 ['IsMemBarrier', 'IsSerializeAfter']) | 1093 ['IsMemBarrier', 'IsSerializeAfter', 1094 'IsSquashAfter']) |
1096 header_output += ImmOpDeclare.subst(dsbIop) 1097 decoder_output += ImmOpConstructor.subst(dsbIop) 1098 exec_output += PredOpExecute.subst(dsbIop) 1099 1100 dmbCode = ''' 1101 // If the barrier is due to a CP15 access check for hyp traps 1102 if ((imm != 0) && mcrMrc15TrapToHyp(MISCREG_CP15DMB, Hcr, Cpsr, Scr, 1103 Hdcr, Hstr, Hcptr, imm)) { --- 54 unchanged lines hidden --- | 1095 header_output += ImmOpDeclare.subst(dsbIop) 1096 decoder_output += ImmOpConstructor.subst(dsbIop) 1097 exec_output += PredOpExecute.subst(dsbIop) 1098 1099 dmbCode = ''' 1100 // If the barrier is due to a CP15 access check for hyp traps 1101 if ((imm != 0) && mcrMrc15TrapToHyp(MISCREG_CP15DMB, Hcr, Cpsr, Scr, 1102 Hdcr, Hstr, Hcptr, imm)) { --- 54 unchanged lines hidden --- |