decoder.isa (4276:f0030662ee2a) decoder.isa (6098:34690e3cf53e)
1// Copyright (c) 2007 The Hewlett-Packard Development Company
2// All rights reserved.
3//
4// Redistribution and use of this software in source and binary forms,
5// with or without modification, are permitted provided that the
6// following conditions are met:
7//
8// The software must be used only for Non-Commercial Use which means any

--- 44 unchanged lines hidden (view full) ---

53//
54// Authors: Gabe Black
55
56////////////////////////////////////////////////////////////////////
57//
58// The actual decoder specification
59//
60
1// Copyright (c) 2007 The Hewlett-Packard Development Company
2// All rights reserved.
3//
4// Redistribution and use of this software in source and binary forms,
5// with or without modification, are permitted provided that the
6// following conditions are met:
7//
8// The software must be used only for Non-Commercial Use which means any

--- 44 unchanged lines hidden (view full) ---

53//
54// Authors: Gabe Black
55
56////////////////////////////////////////////////////////////////////
57//
58// The actual decoder specification
59//
60
61decode OPCODE_NUM default Unknown::unknown()
61decode LEGACY_LOCK default Unknown::unknown()
62{
62{
63 0x0: M5InternalError::error(
64 {{"Saw an ExtMachInst with zero opcode bytes!"}});
65 //1 byte opcodes
66 ##include "one_byte_opcodes.isa"
67 //2 byte opcodes
68 ##include "two_byte_opcodes.isa"
69 //3 byte opcodes
70 0x3: decode OPCODE_PREFIXA {
71 0xF0: decode OPCODE_PREFIXB {
72 //We don't handle these properly in the predecoder yet, so there's
73 //no reason to implement them for now.
74 0x38: decode OPCODE_OP {
75 default: FailUnimpl::sseThreeEight();
63 //No lock prefix
64 0x0: decode OPCODE_NUM default Unknown::unknown()
65 {
66 0x0: M5InternalError::error(
67 {{"Saw an ExtMachInst with zero opcode bytes!"}});
68 //1 byte opcodes
69 ##include "one_byte_opcodes.isa"
70 //2 byte opcodes
71 ##include "two_byte_opcodes.isa"
72 //3 byte opcodes
73 0x3: decode OPCODE_PREFIXA {
74 0xF0: decode OPCODE_PREFIXB {
75 //We don't handle these properly in the predecoder yet, so
76 //there's no reason to implement them for now.
77 0x38: decode OPCODE_OP {
78 default: FailUnimpl::sseThreeEight();
79 }
80 0x3A: decode OPCODE_OP {
81 default: FailUnimpl::sseThreeA();
82 }
83 0xF0: decode OPCODE_OP {
84 default: FailUnimpl::threednow();
85 }
86 default: M5InternalError::error(
87 {{"Unexpected second opcode byte in three byte opcode!"}});
76 }
88 }
77 0x3A: decode OPCODE_OP {
78 default: FailUnimpl::sseThreeA();
79 }
80 0xF0: decode OPCODE_OP {
81 default: FailUnimpl::threednow();
82 }
83 default: M5InternalError::error(
89 default: M5InternalError::error(
84 {{"Unexpected second opcode byte in three byte opcode!"}});
90 {{"Unexpected first opcode byte in three byte opcode!"}});
85 }
91 }
86 default: M5InternalError::error(
87 {{"Unexpected first opcode byte in three byte opcode!"}});
88 }
92 }
93 //Lock prefix
94 ##include "locked_opcodes.isa"
89}
95}