summaryrefslogtreecommitdiff
path: root/arch/sparc/isa/formats/unknown.isa
blob: eeb2b949699d701bd382555f036fbce497030898 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
////////////////////////////////////////////////////////////////////
//
// Unknown instructions
//

output header {{
        /**
         * Class for Unknown/Illegal instructions
         */
        class Unknown : public SparcStaticInst
        {
          public:

            // Constructor
            Unknown(ExtMachInst _machInst) :
                    SparcStaticInst("unknown", _machInst, No_OpClass)
            {
            }

            %(BasicExecDeclare)s

            std::string generateDisassembly(Addr pc,
                    const SymbolTable *symtab) const;

        };
}};

output decoder {{
        std::string Unknown::generateDisassembly(Addr pc,
                const SymbolTable *symtab) const
        {
            return "Unknown instruction\n";
        }
}};

output exec {{
        Fault Unknown::execute(%(CPU_exec_context)s *xc,
                Trace::InstRecord *traceData) const
        {
            return new IllegalInstruction;
        }
}};

def format Unknown() {{
        decode_block = 'return new Unknown(machInst);\n'
}};