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} |