| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2012 The Native Client Authors. All rights reserved. | 2 * Copyright 2012 The Native Client Authors. All rights reserved. |
| 3 * Use of this source code is governed by a BSD-style license that can | 3 * Use of this source code is governed by a BSD-style license that can |
| 4 * be found in the LICENSE file. | 4 * be found in the LICENSE file. |
| 5 */ | 5 */ |
| 6 | 6 |
| 7 // DO NOT EDIT: GENERATED CODE | 7 // DO NOT EDIT: GENERATED CODE |
| 8 | 8 |
| 9 | 9 |
| 10 #include "native_client/src/trusted/validator_arm/gen/arm32_decode.h" | 10 #include "native_client/src/trusted/validator_arm/gen/arm32_decode.h" |
| (...skipping 23 matching lines...) Expand all Loading... |
| 34 , DontCareInst_instance_() | 34 , DontCareInst_instance_() |
| 35 , EffectiveNoOp_instance_() | 35 , EffectiveNoOp_instance_() |
| 36 , Forbidden_instance_() | 36 , Forbidden_instance_() |
| 37 , LdrImmediate_instance_() | 37 , LdrImmediate_instance_() |
| 38 , LdrImmediateDouble_instance_() | 38 , LdrImmediateDouble_instance_() |
| 39 , LdrRegister_instance_() | 39 , LdrRegister_instance_() |
| 40 , LdrRegisterDouble_instance_() | 40 , LdrRegisterDouble_instance_() |
| 41 , LoadCoprocessor_instance_() | 41 , LoadCoprocessor_instance_() |
| 42 , LoadDoubleExclusive_instance_() | 42 , LoadDoubleExclusive_instance_() |
| 43 , LoadExclusive_instance_() | 43 , LoadExclusive_instance_() |
| 44 , LoadImmediate_instance_() | |
| 45 , LoadMultiple_instance_() | 44 , LoadMultiple_instance_() |
| 46 , LoadRegister_instance_() | |
| 47 , LongMultiply_instance_() | 45 , LongMultiply_instance_() |
| 48 , MaskAddress_instance_() | 46 , MaskAddress_instance_() |
| 49 , MoveDoubleFromCoprocessor_instance_() | 47 , MoveDoubleFromCoprocessor_instance_() |
| 50 , MoveFromCoprocessor_instance_() | 48 , MoveFromCoprocessor_instance_() |
| 51 , MoveToStatusRegister_instance_() | 49 , MoveToStatusRegister_instance_() |
| 52 , Multiply_instance_() | 50 , Multiply_instance_() |
| 53 , PackSatRev_instance_() | 51 , PackSatRev_instance_() |
| 54 , Roadblock_instance_() | 52 , Roadblock_instance_() |
| 55 , SatAddSub_instance_() | 53 , SatAddSub_instance_() |
| 56 , StoreCoprocessor_instance_() | 54 , StoreCoprocessor_instance_() |
| 57 , StoreExclusive_instance_() | 55 , StoreExclusive_instance_() |
| 58 , StoreImmediate_instance_() | 56 , StoreImmediate_instance_() |
| 59 , StoreRegister_instance_() | |
| 60 , StrImmediate_instance_() | 57 , StrImmediate_instance_() |
| 61 , StrImmediateDouble_instance_() | 58 , StrImmediateDouble_instance_() |
| 62 , StrRegister_instance_() | 59 , StrRegister_instance_() |
| 63 , StrRegisterDouble_instance_() | 60 , StrRegisterDouble_instance_() |
| 64 , TestIfAddressMasked_instance_() | 61 , TestIfAddressMasked_instance_() |
| 65 , Unary1RegisterBitRange_instance_() | 62 , Unary1RegisterBitRange_instance_() |
| 66 , Unary1RegisterImmediateOp_instance_() | 63 , Unary1RegisterImmediateOp_instance_() |
| 67 , Unary3RegisterShiftedOp_instance_() | 64 , Unary3RegisterShiftedOp_instance_() |
| 68 , Undefined_instance_() | 65 , Undefined_instance_() |
| 69 , Unpredictable_instance_() | 66 , Unpredictable_instance_() |
| (...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 449 | 446 |
| 450 // Implementation of table: load_store_word_byte. | 447 // Implementation of table: load_store_word_byte. |
| 451 // Specified by: See Section A5.3 | 448 // Specified by: See Section A5.3 |
| 452 const ClassDecoder& Arm32DecoderState::decode_load_store_word_byte( | 449 const ClassDecoder& Arm32DecoderState::decode_load_store_word_byte( |
| 453 const Instruction insn) const | 450 const Instruction insn) const |
| 454 { | 451 { |
| 455 UNREFERENCED_PARAMETER(insn); | 452 UNREFERENCED_PARAMETER(insn); |
| 456 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ && | 453 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ && |
| 457 (insn.Bits() & 0x01300000) == 0x00000000 /* op1(24:20) == 0xx00 */ && | 454 (insn.Bits() & 0x01300000) == 0x00000000 /* op1(24:20) == 0xx00 */ && |
| 458 true) | 455 true) |
| 459 return StoreImmediate_instance_; | 456 return StrImmediate_instance_; |
| 460 | 457 |
| 461 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ && | 458 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ && |
| 462 (insn.Bits() & 0x01300000) == 0x00100000 /* op1(24:20) == 0xx01 */ && | 459 (insn.Bits() & 0x01300000) == 0x00100000 /* op1(24:20) == 0xx01 */ && |
| 463 true) | 460 true) |
| 464 return LoadImmediate_instance_; | 461 return LdrImmediate_instance_; |
| 465 | 462 |
| 466 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ && | 463 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ && |
| 467 (insn.Bits() & 0x01100000) == 0x01000000 /* op1(24:20) == 1xxx0 */ && | 464 (insn.Bits() & 0x01100000) == 0x01000000 /* op1(24:20) == 1xxx0 */ && |
| 468 true) | 465 true) |
| 469 return StoreImmediate_instance_; | 466 return StrImmediate_instance_; |
| 470 | 467 |
| 471 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ && | 468 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ && |
| 472 (insn.Bits() & 0x01100000) == 0x01100000 /* op1(24:20) == 1xxx1 */ && | 469 (insn.Bits() & 0x01100000) == 0x01100000 /* op1(24:20) == 1xxx1 */ && |
| 473 true) | 470 true) |
| 474 return LoadImmediate_instance_; | 471 return LdrImmediate_instance_; |
| 475 | 472 |
| 476 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ && | 473 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ && |
| 477 (insn.Bits() & 0x01200000) == 0x00200000 /* op1(24:20) == 0xx1x */ && | 474 (insn.Bits() & 0x01200000) == 0x00200000 /* op1(24:20) == 0xx1x */ && |
| 478 true) | 475 true) |
| 479 return Forbidden_instance_; | 476 return Forbidden_instance_; |
| 480 | 477 |
| 481 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ && | 478 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ && |
| 482 (insn.Bits() & 0x01700000) == 0x00500000 /* op1(24:20) == 0x101 */ && | 479 (insn.Bits() & 0x01700000) == 0x00500000 /* op1(24:20) == 0x101 */ && |
| 483 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */) | 480 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */) |
| 484 return LoadRegister_instance_; | 481 return LdrRegister_instance_; |
| 485 | 482 |
| 486 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ && | 483 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ && |
| 487 (insn.Bits() & 0x00700000) == 0x00100000 /* op1(24:20) == xx001 */ && | 484 (insn.Bits() & 0x00700000) == 0x00100000 /* op1(24:20) == xx001 */ && |
| 488 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */) | 485 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */) |
| 489 return LoadRegister_instance_; | 486 return LdrRegister_instance_; |
| 490 | 487 |
| 491 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ && | 488 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ && |
| 492 (insn.Bits() & 0x01300000) == 0x00000000 /* op1(24:20) == 0xx00 */ && | 489 (insn.Bits() & 0x01300000) == 0x00000000 /* op1(24:20) == 0xx00 */ && |
| 493 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */) | 490 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */) |
| 494 return StoreRegister_instance_; | 491 return StrRegister_instance_; |
| 495 | 492 |
| 496 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ && | 493 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ && |
| 497 (insn.Bits() & 0x01100000) == 0x01000000 /* op1(24:20) == 1xxx0 */ && | 494 (insn.Bits() & 0x01100000) == 0x01000000 /* op1(24:20) == 1xxx0 */ && |
| 498 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */) | 495 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */) |
| 499 return StoreRegister_instance_; | 496 return StrRegister_instance_; |
| 500 | 497 |
| 501 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ && | 498 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ && |
| 502 (insn.Bits() & 0x01100000) == 0x01100000 /* op1(24:20) == 1xxx1 */ && | 499 (insn.Bits() & 0x01100000) == 0x01100000 /* op1(24:20) == 1xxx1 */ && |
| 503 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */) | 500 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */) |
| 504 return LoadRegister_instance_; | 501 return LdrRegister_instance_; |
| 505 | 502 |
| 506 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ && | 503 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ && |
| 507 (insn.Bits() & 0x01200000) == 0x00200000 /* op1(24:20) == 0xx1x */ && | 504 (insn.Bits() & 0x01200000) == 0x00200000 /* op1(24:20) == 0xx1x */ && |
| 508 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */) | 505 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */) |
| 509 return Forbidden_instance_; | 506 return Forbidden_instance_; |
| 510 | 507 |
| 511 // Catch any attempt to fall though ... | 508 // Catch any attempt to fall though ... |
| 512 fprintf(stderr, "TABLE IS INCOMPLETE: load_store_word_byte could not parse %08
X", | 509 fprintf(stderr, "TABLE IS INCOMPLETE: load_store_word_byte could not parse %08
X", |
| 513 insn.Bits()); | 510 insn.Bits()); |
| 514 return Forbidden_instance_; | 511 return Forbidden_instance_; |
| (...skipping 1181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1696 fprintf(stderr, "TABLE IS INCOMPLETE: unconditional could not parse %08X", | 1693 fprintf(stderr, "TABLE IS INCOMPLETE: unconditional could not parse %08X", |
| 1697 insn.Bits()); | 1694 insn.Bits()); |
| 1698 return Forbidden_instance_; | 1695 return Forbidden_instance_; |
| 1699 } | 1696 } |
| 1700 | 1697 |
| 1701 const ClassDecoder& Arm32DecoderState::decode(const Instruction insn) const { | 1698 const ClassDecoder& Arm32DecoderState::decode(const Instruction insn) const { |
| 1702 return decode_ARMv7(insn); | 1699 return decode_ARMv7(insn); |
| 1703 } | 1700 } |
| 1704 | 1701 |
| 1705 } // namespace nacl_arm_dec | 1702 } // namespace nacl_arm_dec |
| OLD | NEW |