| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2013 The Native Client Authors. All rights reserved. | 2 * Copyright (c) 2013 The Native Client Authors. All rights reserved. |
| 3 * Use of this source code is governed by a BSD-style license that can be | 3 * Use of this source code is governed by a BSD-style license that can be |
| 4 * found in the LICENSE file. | 4 * found in the LICENSE file. |
| 5 */ | 5 */ |
| 6 | 6 |
| 7 // DO NOT EDIT: GENERATED CODE | 7 // DO NOT EDIT: GENERATED CODE |
| 8 | 8 |
| 9 #include <stdio.h> | 9 #include <stdio.h> |
| 10 #include "native_client/src/trusted/validator_mips/decode.h" | 10 #include "native_client/src/trusted/validator_mips/decode.h" |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 const Load _Load_instance; | 21 const Load _Load_instance; |
| 22 const JalImm _JalImm_instance; | 22 const JalImm _JalImm_instance; |
| 23 const Branch _Branch_instance; | 23 const Branch _Branch_instance; |
| 24 const Arithm2 _Arithm2_instance; | 24 const Arithm2 _Arithm2_instance; |
| 25 const Arithm3 _Arithm3_instance; | 25 const Arithm3 _Arithm3_instance; |
| 26 const Forbidden _Forbidden_instance; | 26 const Forbidden _Forbidden_instance; |
| 27 const Safe _Safe_instance; | 27 const Safe _Safe_instance; |
| 28 const BranchAndLink _BranchAndLink_instance; | 28 const BranchAndLink _BranchAndLink_instance; |
| 29 const JalReg _JalReg_instance; | 29 const JalReg _JalReg_instance; |
| 30 const NaClHalt _NaClHalt_instance; | 30 const NaClHalt _NaClHalt_instance; |
| 31 const LoadWord _LoadWord_instance; |
| 31 const StoreConditional _StoreConditional_instance; | 32 const StoreConditional _StoreConditional_instance; |
| 32 const FPLoadStore _FPLoadStore_instance; | 33 const FPLoadStore _FPLoadStore_instance; |
| 33 const JmpImm _JmpImm_instance; | 34 const JmpImm _JmpImm_instance; |
| 34 const JmpReg _JmpReg_instance; | 35 const JmpReg _JmpReg_instance; |
| 35 const Store _Store_instance; | 36 const Store _Store_instance; |
| 36 const ExtIns _ExtIns_instance; | 37 const ExtIns _ExtIns_instance; |
| 37 DecoderState() : | 38 DecoderState() : |
| 38 _Load_instance() | 39 _Load_instance() |
| 39 , _JalImm_instance() | 40 , _JalImm_instance() |
| 40 , _Branch_instance() | 41 , _Branch_instance() |
| 41 , _Arithm2_instance() | 42 , _Arithm2_instance() |
| 42 , _Arithm3_instance() | 43 , _Arithm3_instance() |
| 43 , _Forbidden_instance() | 44 , _Forbidden_instance() |
| 44 , _Safe_instance() | 45 , _Safe_instance() |
| 45 , _BranchAndLink_instance() | 46 , _BranchAndLink_instance() |
| 46 , _JalReg_instance() | 47 , _JalReg_instance() |
| 47 , _NaClHalt_instance() | 48 , _NaClHalt_instance() |
| 49 , _LoadWord_instance() |
| 48 , _StoreConditional_instance() | 50 , _StoreConditional_instance() |
| 49 , _FPLoadStore_instance() | 51 , _FPLoadStore_instance() |
| 50 , _JmpImm_instance() | 52 , _JmpImm_instance() |
| 51 , _JmpReg_instance() | 53 , _JmpReg_instance() |
| 52 , _Store_instance() | 54 , _Store_instance() |
| 53 , _ExtIns_instance() | 55 , _ExtIns_instance() |
| 54 {} | 56 {} |
| 55 }; | 57 }; |
| 56 | 58 |
| 57 /* | 59 /* |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 185 } | 187 } |
| 186 | 188 |
| 187 if (((insn & 0xFC000000) == 0x78000000)) { | 189 if (((insn & 0xFC000000) == 0x78000000)) { |
| 188 return state->_Forbidden_instance; | 190 return state->_Forbidden_instance; |
| 189 } | 191 } |
| 190 | 192 |
| 191 if (((insn & 0xFC000000) == 0x7C000000)) { | 193 if (((insn & 0xFC000000) == 0x7C000000)) { |
| 192 return decode_special3(insn, state); | 194 return decode_special3(insn, state); |
| 193 } | 195 } |
| 194 | 196 |
| 195 if (((insn & 0xFC000000) == 0x98000000)) { | 197 if (((insn & 0xFC000000) == 0x8C000000)) { |
| 196 return state->_Load_instance; | 198 return state->_LoadWord_instance; |
| 197 } | 199 } |
| 198 | 200 |
| 199 if (((insn & 0xFC000000) == 0xB8000000)) { | 201 if (((insn & 0xFC000000) == 0xB8000000)) { |
| 200 return state->_Store_instance; | 202 return state->_Store_instance; |
| 201 } | 203 } |
| 202 | 204 |
| 203 if (((insn & 0xFC000000) == 0xC0000000)) { | 205 if (((insn & 0xFC000000) == 0xC0000000)) { |
| 204 return state->_Load_instance; | 206 return state->_Load_instance; |
| 205 } | 207 } |
| 206 | 208 |
| 207 if (((insn & 0xFC000000) == 0xE0000000)) { | 209 if (((insn & 0xFC000000) == 0xE0000000)) { |
| 208 return state->_StoreConditional_instance; | 210 return state->_StoreConditional_instance; |
| 209 } | 211 } |
| 210 | 212 |
| 211 if (((insn & 0xDC000000) == 0x9C000000)) { | 213 if (((insn & 0xDC000000) == 0x9C000000)) { |
| 212 return state->_Forbidden_instance; | 214 return state->_Forbidden_instance; |
| 213 } | 215 } |
| 214 | 216 |
| 215 if (((insn & 0xDC000000) == 0xD0000000)) { | 217 if (((insn & 0xDC000000) == 0xD0000000)) { |
| 216 return state->_Forbidden_instance; | 218 return state->_Forbidden_instance; |
| 217 } | 219 } |
| 218 | 220 |
| 219 if (((insn & 0xF8000000) == 0x30000000)) { | 221 if (((insn & 0xF8000000) == 0x30000000)) { |
| 220 return state->_Arithm2_instance; | 222 return state->_Arithm2_instance; |
| 221 } | 223 } |
| 222 | 224 |
| 223 if (((insn & 0xF8000000) == 0x90000000)) { | 225 if (((insn & 0xEC000000) == 0x88000000)) { |
| 224 return state->_Load_instance; | 226 return state->_Load_instance; |
| 225 } | 227 } |
| 226 | 228 |
| 227 if (((insn & 0xF8000000) == 0xB0000000)) { | 229 if (((insn & 0xF8000000) == 0xB0000000)) { |
| 228 return state->_Forbidden_instance; | 230 return state->_Forbidden_instance; |
| 229 } | 231 } |
| 230 | 232 |
| 231 if (((insn & 0xB8000000) == 0x10000000)) { | 233 if (((insn & 0xB8000000) == 0x10000000)) { |
| 232 return state->_Branch_instance; | 234 return state->_Branch_instance; |
| 233 } | 235 } |
| (...skipping 15 matching lines...) Expand all Loading... |
| 249 } | 251 } |
| 250 | 252 |
| 251 if (((insn & 0xF0000000) == 0x20000000)) { | 253 if (((insn & 0xF0000000) == 0x20000000)) { |
| 252 return state->_Arithm2_instance; | 254 return state->_Arithm2_instance; |
| 253 } | 255 } |
| 254 | 256 |
| 255 if (((insn & 0xF0000000) == 0x60000000)) { | 257 if (((insn & 0xF0000000) == 0x60000000)) { |
| 256 return state->_Forbidden_instance; | 258 return state->_Forbidden_instance; |
| 257 } | 259 } |
| 258 | 260 |
| 259 if (((insn & 0xF0000000) == 0x80000000)) { | 261 if (((insn & 0xE8000000) == 0x80000000)) { |
| 260 return state->_Load_instance; | 262 return state->_Load_instance; |
| 261 } | 263 } |
| 262 | 264 |
| 263 if (((insn & 0xF0000000) == 0xA0000000)) { | 265 if (((insn & 0xF0000000) == 0xA0000000)) { |
| 264 return state->_Store_instance; | 266 return state->_Store_instance; |
| 265 } | 267 } |
| 266 | 268 |
| 267 // Catch any attempt to fall through... | 269 // Catch any attempt to fall through... |
| 268 fprintf(stderr, "TABLE IS INCOMPLETE: " | 270 fprintf(stderr, "TABLE IS INCOMPLETE: " |
| 269 "MIPS32 could not parse %08X", insn.Bits(31, 0)); | 271 "MIPS32 could not parse %08X", insn.Bits(31, 0)); |
| (...skipping 1172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1442 } | 1444 } |
| 1443 void delete_state(const DecoderState *state) { | 1445 void delete_state(const DecoderState *state) { |
| 1444 delete state; | 1446 delete state; |
| 1445 } | 1447 } |
| 1446 | 1448 |
| 1447 const ClassDecoder &decode(const Instruction insn, const DecoderState *state) { | 1449 const ClassDecoder &decode(const Instruction insn, const DecoderState *state) { |
| 1448 return decode_MIPS32(insn, state); | 1450 return decode_MIPS32(insn, state); |
| 1449 } | 1451 } |
| 1450 | 1452 |
| 1451 } // namespace nacl_mips_dec | 1453 } // namespace nacl_mips_dec |
| OLD | NEW |