From 401165c778108ab22aeeee55c4f4451ca93bcffb Mon Sep 17 00:00:00 2001 From: Ali Saidi Date: Fri, 13 May 2011 17:27:01 -0500 Subject: ARM: Further break up condition code into NZ, C, V bits. Break up the condition code bits into NZ, C, V registers. These are individually written and this removes some incorrect dependencies between instructions. --- src/arch/arm/isa/templates/pred.isa | 4 ++-- src/arch/arm/isa/templates/vfp.isa | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'src/arch/arm/isa/templates') diff --git a/src/arch/arm/isa/templates/pred.isa b/src/arch/arm/isa/templates/pred.isa index a0f811f6d..04f253ca9 100644 --- a/src/arch/arm/isa/templates/pred.isa +++ b/src/arch/arm/isa/templates/pred.isa @@ -46,8 +46,8 @@ // let {{ - predicateTest = 'testPredicate(OptCondCodesF, condCode)' - condPredicateTest = 'testPredicate(CondCodesF, condCode)' + predicateTest = 'testPredicate(OptCondCodesNZ, OptCondCodesC, OptCondCodesV, condCode)' + condPredicateTest = 'testPredicate(CondCodesNZ, CondCodesC, CondCodesV, condCode)' }}; def template DataImmDeclare {{ diff --git a/src/arch/arm/isa/templates/vfp.isa b/src/arch/arm/isa/templates/vfp.isa index 8888dc0ae..90dd751ff 100644 --- a/src/arch/arm/isa/templates/vfp.isa +++ b/src/arch/arm/isa/templates/vfp.isa @@ -62,6 +62,10 @@ let {{ if (op1 != (int)MISCREG_FPSCR) return disabledFault(); ''' + vmrsApsrEnabledCheckCode = ''' + if (!vfpEnabled(Cpacr, Cpsr)) + return disabledFault(); + ''' }}; def template FpRegRegOpDeclare {{ -- cgit v1.2.3