From bb0d390105073f3fe827026d36cd950005a15e46 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Wed, 2 Jun 2010 12:58:09 -0500 Subject: [PATCH] ARM: When an instruction is intentionally undefined, fault on it. --- src/arch/arm/isa/decoder/thumb.isa | 10 +++++----- src/arch/arm/isa/formats/branch.isa | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/arch/arm/isa/decoder/thumb.isa b/src/arch/arm/isa/decoder/thumb.isa index fda04363e..231796281 100644 --- a/src/arch/arm/isa/decoder/thumb.isa +++ b/src/arch/arm/isa/decoder/thumb.isa @@ -102,7 +102,7 @@ 0x3: WarnUnimpl::Advanced_SIMD(); default: decode LTCOPROC { 0xa, 0xb: decode HTOPCODE_9_4 { - 0x00: WarnUnimpl::undefined(); + 0x00: Unknown::undefined(); 0x04: WarnUnimpl::mcrr(); // mcrr2 0x05: WarnUnimpl::mrrc(); // mrrc2 0x02, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, @@ -116,7 +116,7 @@ } } default: decode HTOPCODE_9_5 { - 0x00: WarnUnimpl::undefined(); + 0x00: Unknown::undefined(); 0x02: WarnUnimpl::SIMD_VFP_64_bit_core_extension_transfer(); 0x01, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f: @@ -142,7 +142,7 @@ 0x0: LoadByteMemoryHints::loadByteMemoryHints(); 0x1: LoadHalfwordMemoryHints::loadHalfwordMemoryHints(); 0x2: Thumb32LoadWord::thumb32LoadWord(); - 0x3: WarnUnimpl::undefined(); + 0x3: Unknown::undefined(); } } 0x1: decode HTOPCODE_8_7 { @@ -170,7 +170,7 @@ 0x3: WarnUnimpl::Advanced_SIMD(); default: decode LTCOPROC { 0xa, 0xb: decode HTOPCODE_9_4 { - 0x00: WarnUnimpl::undefined(); + 0x00: Unknown::undefined(); 0x04: WarnUnimpl::mcrr(); // mcrr2 0x05: WarnUnimpl::mrrc(); // mrrc2 0x02, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, @@ -184,7 +184,7 @@ } } default: decode HTOPCODE_9_5 { - 0x00: WarnUnimpl::undefined(); + 0x00: Unknown::undefined(); 0x02: WarnUnimpl::SIMD_VFP_64_bit_core_extension_transfer(); 0x01, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f: diff --git a/src/arch/arm/isa/formats/branch.isa b/src/arch/arm/isa/formats/branch.isa index 07f39b129..458a9d3fd 100644 --- a/src/arch/arm/isa/formats/branch.isa +++ b/src/arch/arm/isa/formats/branch.isa @@ -104,7 +104,7 @@ def format Thumb16CondBranchAndSvc() {{ return new Svc(machInst); } else { // This space will not be allocated in the future. - return new WarnUnimplemented("unimplemented", machInst); + return new Unknown(machInst); } ''' }}; @@ -124,8 +124,8 @@ def format Thumb32BranchesAndMiscCtrl() {{ case 0x0: if (op == 127) { if (op1 & 0x2) { - // Permanentl undefined. - return new WarnUnimplemented("undefined", machInst); + // Permanently undefined. + return new Unknown(machInst); } else { return new WarnUnimplemented("smc", machInst); }