Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: src/trusted/validator_arm/gen/arm32_decode.cc

Issue 11569019: Fix uses in ARM table media_instructions. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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"
11 11
12 namespace nacl_arm_dec { 12 namespace nacl_arm_dec {
13 13
14 14
15 Arm32DecoderState::Arm32DecoderState() : DecoderState() 15 Arm32DecoderState::Arm32DecoderState() : DecoderState()
16 , Binary2RegisterBitRangeMsbGeLsb_instance_()
17 , Binary2RegisterBitRangeNotRnIsPcBitfieldExtract_instance_()
16 , Binary2RegisterImmedShiftedTest_instance_() 18 , Binary2RegisterImmedShiftedTest_instance_()
17 , Binary2RegisterImmediateOp_instance_() 19 , Binary2RegisterImmediateOp_instance_()
18 , Binary2RegisterImmediateOpAddSub_instance_() 20 , Binary2RegisterImmediateOpAddSub_instance_()
19 , Binary2RegisterImmediateOpDynCodeReplace_instance_() 21 , Binary2RegisterImmediateOpDynCodeReplace_instance_()
20 , Binary3RegisterOp_instance_() 22 , Binary3RegisterOp_instance_()
21 , Binary3RegisterOpAltA_instance_() 23 , Binary3RegisterOpAltA_instance_()
22 , Binary3RegisterOpAltANoCondsUpdate_instance_() 24 , Binary3RegisterOpAltANoCondsUpdate_instance_()
23 , Binary3RegisterOpAltBNoCondUpdates_instance_() 25 , Binary3RegisterOpAltBNoCondUpdates_instance_()
24 , Binary3RegisterShiftedOp_instance_() 26 , Binary3RegisterShiftedOp_instance_()
25 , Binary3RegisterShiftedTest_instance_() 27 , Binary3RegisterShiftedTest_instance_()
26 , Binary4RegisterDualOp_instance_() 28 , Binary4RegisterDualOp_instance_()
27 , Binary4RegisterDualOpLtV6RdNotRn_instance_() 29 , Binary4RegisterDualOpLtV6RdNotRn_instance_()
28 , Binary4RegisterDualOpNoCondsUpdate_instance_() 30 , Binary4RegisterDualOpNoCondsUpdate_instance_()
29 , Binary4RegisterDualResult_instance_() 31 , Binary4RegisterDualResult_instance_()
30 , Binary4RegisterDualResultLtV6RdHiLoNotRn_instance_() 32 , Binary4RegisterDualResultLtV6RdHiLoNotRn_instance_()
31 , Binary4RegisterDualResultNoCondsUpdate_instance_() 33 , Binary4RegisterDualResultNoCondsUpdate_instance_()
32 , Binary4RegisterDualResultUsesRnRm_instance_() 34 , Binary4RegisterDualResultUsesRnRm_instance_()
33 , Binary4RegisterShiftedOp_instance_() 35 , Binary4RegisterShiftedOp_instance_()
34 , BinaryRegisterImmediateTest_instance_() 36 , BinaryRegisterImmediateTest_instance_()
35 , Branch_instance_() 37 , Branch_instance_()
36 , BranchToRegister_instance_() 38 , BranchToRegister_instance_()
37 , BreakPointAndConstantPoolHead_instance_() 39 , BreakPointAndConstantPoolHead_instance_()
38 , DataBarrier_instance_() 40 , DataBarrier_instance_()
39 , Defs12To15CondsDontCareMsbGeLsb_instance_()
40 , Defs12To15CondsDontCareRdRnNotPc_instance_() 41 , Defs12To15CondsDontCareRdRnNotPc_instance_()
41 , Defs12To15CondsDontCareRdRnNotPcBitfieldExtract_instance_()
42 , Defs12To15CondsDontCareRnRdRmNotPc_instance_() 42 , Defs12To15CondsDontCareRnRdRmNotPc_instance_()
43 , Defs16To19CondsDontCareRdRaRmRnNotPc_instance_()
44 , Defs16To19CondsDontCareRdRmRnNotPc_instance_()
45 , Deprecated_instance_() 43 , Deprecated_instance_()
46 , DontCareInst_instance_() 44 , DontCareInst_instance_()
47 , DontCareInstRdNotPc_instance_() 45 , DontCareInstRdNotPc_instance_()
48 , DuplicateToAdvSIMDRegisters_instance_() 46 , DuplicateToAdvSIMDRegisters_instance_()
49 , Forbidden_instance_() 47 , Forbidden_instance_()
50 , ForbiddenCondDecoder_instance_() 48 , ForbiddenCondDecoder_instance_()
51 , InstructionBarrier_instance_() 49 , InstructionBarrier_instance_()
52 , LdrImmediateOp_instance_() 50 , LdrImmediateOp_instance_()
53 , Load2RegisterImm8DoubleOp_instance_() 51 , Load2RegisterImm8DoubleOp_instance_()
54 , Load2RegisterImm8Op_instance_() 52 , Load2RegisterImm8Op_instance_()
(...skipping 1002 matching lines...) Expand 10 before | Expand all | Expand 10 after
1057 } 1055 }
1058 1056
1059 // Implementation of table: media_instructions. 1057 // Implementation of table: media_instructions.
1060 // Specified by: See Section A5.4 1058 // Specified by: See Section A5.4
1061 const ClassDecoder& Arm32DecoderState::decode_media_instructions( 1059 const ClassDecoder& Arm32DecoderState::decode_media_instructions(
1062 const Instruction inst) const 1060 const Instruction inst) const
1063 { 1061 {
1064 if ((inst.Bits() & 0x01F00000) == 0x01800000 /* op1(24:20)=11000 */ && 1062 if ((inst.Bits() & 0x01F00000) == 0x01800000 /* op1(24:20)=11000 */ &&
1065 (inst.Bits() & 0x000000E0) == 0x00000000 /* op2(7:5)=000 */ && 1063 (inst.Bits() & 0x000000E0) == 0x00000000 /* op2(7:5)=000 */ &&
1066 (inst.Bits() & 0x0000F000) != 0x0000F000 /* Rd(15:12)=~1111 */) { 1064 (inst.Bits() & 0x0000F000) != 0x0000F000 /* Rd(15:12)=~1111 */) {
1067 return Defs16To19CondsDontCareRdRaRmRnNotPc_instance_; 1065 return Binary4RegisterDualOp_instance_;
1068 } 1066 }
1069 1067
1070 if ((inst.Bits() & 0x01F00000) == 0x01800000 /* op1(24:20)=11000 */ && 1068 if ((inst.Bits() & 0x01F00000) == 0x01800000 /* op1(24:20)=11000 */ &&
1071 (inst.Bits() & 0x000000E0) == 0x00000000 /* op2(7:5)=000 */ && 1069 (inst.Bits() & 0x000000E0) == 0x00000000 /* op2(7:5)=000 */ &&
1072 (inst.Bits() & 0x0000F000) == 0x0000F000 /* Rd(15:12)=1111 */) { 1070 (inst.Bits() & 0x0000F000) == 0x0000F000 /* Rd(15:12)=1111 */) {
1073 return Defs16To19CondsDontCareRdRmRnNotPc_instance_; 1071 return Binary3RegisterOpAltA_instance_;
1074 } 1072 }
1075 1073
1076 if ((inst.Bits() & 0x01F00000) == 0x01F00000 /* op1(24:20)=11111 */ && 1074 if ((inst.Bits() & 0x01F00000) == 0x01F00000 /* op1(24:20)=11111 */ &&
1077 (inst.Bits() & 0x000000E0) == 0x000000E0 /* op2(7:5)=111 */) { 1075 (inst.Bits() & 0x000000E0) == 0x000000E0 /* op2(7:5)=111 */) {
1078 return PermanentlyUndefined_instance_; 1076 return PermanentlyUndefined_instance_;
1079 } 1077 }
1080 1078
1079 if ((inst.Bits() & 0x01E00000) == 0x01A00000 /* op1(24:20)=1101x */ &&
1080 (inst.Bits() & 0x00000060) == 0x00000040 /* op2(7:5)=x10 */) {
1081 return Binary2RegisterBitRangeNotRnIsPcBitfieldExtract_instance_;
1082 }
1083
1081 if ((inst.Bits() & 0x01E00000) == 0x01C00000 /* op1(24:20)=1110x */ && 1084 if ((inst.Bits() & 0x01E00000) == 0x01C00000 /* op1(24:20)=1110x */ &&
1082 (inst.Bits() & 0x00000060) == 0x00000000 /* op2(7:5)=x00 */ && 1085 (inst.Bits() & 0x00000060) == 0x00000000 /* op2(7:5)=x00 */ &&
1083 (inst.Bits() & 0x0000000F) != 0x0000000F /* Rn(3:0)=~1111 */) { 1086 (inst.Bits() & 0x0000000F) != 0x0000000F /* Rn(3:0)=~1111 */) {
1084 return Defs12To15CondsDontCareMsbGeLsb_instance_; 1087 return Binary2RegisterBitRangeMsbGeLsb_instance_;
1085 } 1088 }
1086 1089
1087 if ((inst.Bits() & 0x01E00000) == 0x01C00000 /* op1(24:20)=1110x */ && 1090 if ((inst.Bits() & 0x01E00000) == 0x01C00000 /* op1(24:20)=1110x */ &&
1088 (inst.Bits() & 0x00000060) == 0x00000000 /* op2(7:5)=x00 */ && 1091 (inst.Bits() & 0x00000060) == 0x00000000 /* op2(7:5)=x00 */ &&
1089 (inst.Bits() & 0x0000000F) == 0x0000000F /* Rn(3:0)=1111 */) { 1092 (inst.Bits() & 0x0000000F) == 0x0000000F /* Rn(3:0)=1111 */) {
1090 return Unary1RegisterBitRangeMsbGeLsb_instance_; 1093 return Unary1RegisterBitRangeMsbGeLsb_instance_;
1091 } 1094 }
1092 1095
1093 if ((inst.Bits() & 0x01A00000) == 0x01A00000 /* op1(24:20)=11x1x */ && 1096 if ((inst.Bits() & 0x01E00000) == 0x01E00000 /* op1(24:20)=1111x */ &&
1094 (inst.Bits() & 0x00000060) == 0x00000040 /* op2(7:5)=x10 */) { 1097 (inst.Bits() & 0x00000060) == 0x00000040 /* op2(7:5)=x10 */) {
1095 return Defs12To15CondsDontCareRdRnNotPcBitfieldExtract_instance_; 1098 return Unary1RegisterBitRangeMsbGeLsb_instance_;
1096 } 1099 }
1097 1100
1098 if ((inst.Bits() & 0x01C00000) == 0x00000000 /* op1(24:20)=000xx */) { 1101 if ((inst.Bits() & 0x01C00000) == 0x00000000 /* op1(24:20)=000xx */) {
1099 return decode_parallel_addition_and_subtraction_signed(inst); 1102 return decode_parallel_addition_and_subtraction_signed(inst);
1100 } 1103 }
1101 1104
1102 if ((inst.Bits() & 0x01C00000) == 0x00400000 /* op1(24:20)=001xx */) { 1105 if ((inst.Bits() & 0x01C00000) == 0x00400000 /* op1(24:20)=001xx */) {
1103 return decode_parallel_addition_and_subtraction_unsigned(inst); 1106 return decode_parallel_addition_and_subtraction_unsigned(inst);
1104 } 1107 }
1105 1108
(...skipping 1313 matching lines...) Expand 10 before | Expand all | Expand 10 after
2419 2422
2420 // Catch any attempt to fall though ... 2423 // Catch any attempt to fall though ...
2421 return not_implemented_; 2424 return not_implemented_;
2422 } 2425 }
2423 2426
2424 const ClassDecoder& Arm32DecoderState::decode(const Instruction inst) const { 2427 const ClassDecoder& Arm32DecoderState::decode(const Instruction inst) const {
2425 return decode_ARMv7(inst); 2428 return decode_ARMv7(inst);
2426 } 2429 }
2427 2430
2428 } // namespace nacl_arm_dec 2431 } // namespace nacl_arm_dec
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698