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

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

Issue 12223046: Use generated actual decoders for ARM table: (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: Created 7 years, 10 months 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 2013 The Native Client Authors. All rights reserved. 2 * Copyright 2013 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 , Actual_ADC_immediate_cccc0010101snnnnddddiiiiiiiiiiii_case_1_instance_() 16 , Actual_ADC_immediate_cccc0010101snnnnddddiiiiiiiiiiii_case_1_instance_()
17 , Actual_ADC_register_cccc0000101snnnnddddiiiiitt0mmmm_case_1_instance_() 17 , Actual_ADC_register_cccc0000101snnnnddddiiiiitt0mmmm_case_1_instance_()
18 , Actual_ADC_register_shifted_register_cccc0000101snnnnddddssss0tt1mmmm_case_1 _instance_() 18 , Actual_ADC_register_shifted_register_cccc0000101snnnnddddssss0tt1mmmm_case_1 _instance_()
19 , Actual_ADD_immediate_cccc0010100snnnnddddiiiiiiiiiiii_case_1_instance_() 19 , Actual_ADD_immediate_cccc0010100snnnnddddiiiiiiiiiiii_case_1_instance_()
20 , Actual_ADR_A1_cccc001010001111ddddiiiiiiiiiiii_case_1_instance_() 20 , Actual_ADR_A1_cccc001010001111ddddiiiiiiiiiiii_case_1_instance_()
21 , Actual_ASR_immediate_cccc0001101s0000ddddiiiii100mmmm_case_1_instance_() 21 , Actual_ASR_immediate_cccc0001101s0000ddddiiiii100mmmm_case_1_instance_()
22 , Actual_ASR_register_cccc0001101s0000ddddmmmm0101nnnn_case_1_instance_() 22 , Actual_ASR_register_cccc0001101s0000ddddmmmm0101nnnn_case_1_instance_()
23 , Actual_BIC_immediate_cccc0011110snnnnddddiiiiiiiiiiii_case_1_instance_() 23 , Actual_BIC_immediate_cccc0011110snnnnddddiiiiiiiiiiii_case_1_instance_()
24 , Actual_BKPT_cccc00010010iiiiiiiiiiii0111iiii_case_1_instance_() 24 , Actual_BKPT_cccc00010010iiiiiiiiiiii0111iiii_case_1_instance_()
25 , Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_() 25 , Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_()
26 , Actual_BLX_register_cccc000100101111111111110011mmmm_case_1_instance_() 26 , Actual_BLX_register_cccc000100101111111111110011mmmm_case_1_instance_()
27 , Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_()
28 , Actual_B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_()
27 , Actual_Bx_cccc000100101111111111110001mmmm_case_1_instance_() 29 , Actual_Bx_cccc000100101111111111110001mmmm_case_1_instance_()
28 , Actual_CLZ_cccc000101101111dddd11110001mmmm_case_1_instance_() 30 , Actual_CLZ_cccc000101101111dddd11110001mmmm_case_1_instance_()
29 , Actual_CMN_immediate_cccc00110111nnnn0000iiiiiiiiiiii_case_1_instance_() 31 , Actual_CMN_immediate_cccc00110111nnnn0000iiiiiiiiiiii_case_1_instance_()
30 , Actual_CMN_register_cccc00010111nnnn0000iiiiitt0mmmm_case_1_instance_() 32 , Actual_CMN_register_cccc00010111nnnn0000iiiiitt0mmmm_case_1_instance_()
31 , Actual_CMN_register_shifted_register_cccc00010111nnnn0000ssss0tt1mmmm_case_1 _instance_() 33 , Actual_CMN_register_shifted_register_cccc00010111nnnn0000ssss0tt1mmmm_case_1 _instance_()
34 , Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1_instance_()
32 , Actual_LDRD_immediate_cccc000pu1w0nnnnttttiiii1101iiii_case_1_instance_() 35 , Actual_LDRD_immediate_cccc000pu1w0nnnnttttiiii1101iiii_case_1_instance_()
33 , Actual_LDRD_literal_cccc0001u1001111ttttiiii1101iiii_case_1_instance_() 36 , Actual_LDRD_literal_cccc0001u1001111ttttiiii1101iiii_case_1_instance_()
34 , Actual_LDRD_register_cccc000pu0w0nnnntttt00001101mmmm_case_1_instance_() 37 , Actual_LDRD_register_cccc000pu0w0nnnntttt00001101mmmm_case_1_instance_()
35 , Actual_LDREXB_cccc00011101nnnntttt111110011111_case_1_instance_() 38 , Actual_LDREXB_cccc00011101nnnntttt111110011111_case_1_instance_()
36 , Actual_LDREXD_cccc00011011nnnntttt111110011111_case_1_instance_() 39 , Actual_LDREXD_cccc00011011nnnntttt111110011111_case_1_instance_()
37 , Actual_LDRH_immediate_cccc000pu1w1nnnnttttiiii1011iiii_case_1_instance_() 40 , Actual_LDRH_immediate_cccc000pu1w1nnnnttttiiii1011iiii_case_1_instance_()
38 , Actual_LDRH_literal_cccc000pu1w11111ttttiiii1011iiii_case_1_instance_() 41 , Actual_LDRH_literal_cccc000pu1w11111ttttiiii1011iiii_case_1_instance_()
39 , Actual_LDRH_register_cccc000pu0w1nnnntttt00001011mmmm_case_1_instance_() 42 , Actual_LDRH_register_cccc000pu0w1nnnntttt00001011mmmm_case_1_instance_()
40 , Actual_LSL_immediate_cccc0001101s0000ddddiiiii000mmmm_case_1_instance_() 43 , Actual_LSL_immediate_cccc0001101s0000ddddiiiii000mmmm_case_1_instance_()
41 , Actual_MLA_A1_cccc0000001sddddaaaammmm1001nnnn_case_1_instance_() 44 , Actual_MLA_A1_cccc0000001sddddaaaammmm1001nnnn_case_1_instance_()
42 , Actual_MLS_A1_cccc00000110ddddaaaammmm1001nnnn_case_1_instance_() 45 , Actual_MLS_A1_cccc00000110ddddaaaammmm1001nnnn_case_1_instance_()
43 , Actual_MOVT_cccc00110100iiiiddddiiiiiiiiiiii_case_1_instance_() 46 , Actual_MOVT_cccc00110100iiiiddddiiiiiiiiiiii_case_1_instance_()
44 , Actual_MOV_immediate_A1_cccc0011101s0000ddddiiiiiiiiiiii_case_1_instance_() 47 , Actual_MOV_immediate_A1_cccc0011101s0000ddddiiiiiiiiiiii_case_1_instance_()
45 , Actual_MRS_cccc00010r001111dddd000000000000_case_1_instance_() 48 , Actual_MRS_cccc00010r001111dddd000000000000_case_1_instance_()
46 , Actual_MSR_immediate_cccc00110010mm001111iiiiiiiiiiii_case_1_instance_() 49 , Actual_MSR_immediate_cccc00110010mm001111iiiiiiiiiiii_case_1_instance_()
47 , Actual_MSR_register_cccc00010010mm00111100000000nnnn_case_1_instance_() 50 , Actual_MSR_register_cccc00010010mm00111100000000nnnn_case_1_instance_()
48 , Actual_MUL_A1_cccc0000000sdddd0000mmmm1001nnnn_case_1_instance_() 51 , Actual_MUL_A1_cccc0000000sdddd0000mmmm1001nnnn_case_1_instance_()
49 , Actual_NOP_cccc0011001000001111000000000000_case_1_instance_() 52 , Actual_NOP_cccc0011001000001111000000000000_case_1_instance_()
50 , Actual_ORR_immediate_cccc0011100snnnnddddiiiiiiiiiiii_case_1_instance_() 53 , Actual_ORR_immediate_cccc0011100snnnnddddiiiiiiiiiiii_case_1_instance_()
51 , Actual_PKH_cccc01101000nnnnddddiiiiit01mmmm_case_1_instance_() 54 , Actual_PKH_cccc01101000nnnnddddiiiiit01mmmm_case_1_instance_()
52 , Actual_SMLALBB_SMLALBT_SMLALTB_SMLALTT_cccc00010100hhhhllllmmmm1xx0nnnn_case _1_instance_() 55 , Actual_SMLALBB_SMLALBT_SMLALTB_SMLALTT_cccc00010100hhhhllllmmmm1xx0nnnn_case _1_instance_()
53 , Actual_SMLAL_A1_cccc0000111shhhhllllmmmm1001nnnn_case_1_instance_() 56 , Actual_SMLAL_A1_cccc0000111shhhhllllmmmm1001nnnn_case_1_instance_()
54 , Actual_SMULBB_SMULBT_SMULTB_SMULTT_cccc00010110dddd0000mmmm1xx0nnnn_case_1_i nstance_() 57 , Actual_SMULBB_SMULBT_SMULTB_SMULTT_cccc00010110dddd0000mmmm1xx0nnnn_case_1_i nstance_()
55 , Actual_SMULL_A1_cccc0000110shhhhllllmmmm1001nnnn_case_1_instance_() 58 , Actual_SMULL_A1_cccc0000110shhhhllllmmmm1001nnnn_case_1_instance_()
59 , Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1_instance_()
56 , Actual_STRD_immediate_cccc000pu1w0nnnnttttiiii1111iiii_case_1_instance_() 60 , Actual_STRD_immediate_cccc000pu1w0nnnnttttiiii1111iiii_case_1_instance_()
57 , Actual_STRD_register_cccc000pu0w0nnnntttt00001111mmmm_case_1_instance_() 61 , Actual_STRD_register_cccc000pu0w0nnnntttt00001111mmmm_case_1_instance_()
58 , Actual_STREXB_cccc00011100nnnndddd11111001tttt_case_1_instance_() 62 , Actual_STREXB_cccc00011100nnnndddd11111001tttt_case_1_instance_()
59 , Actual_STREXD_cccc00011010nnnndddd11111001tttt_case_1_instance_() 63 , Actual_STREXD_cccc00011010nnnndddd11111001tttt_case_1_instance_()
60 , Actual_STRH_immediate_cccc000pu1w0nnnnttttiiii1011iiii_case_1_instance_() 64 , Actual_STRH_immediate_cccc000pu1w0nnnnttttiiii1011iiii_case_1_instance_()
61 , Actual_STRH_register_cccc000pu0w0nnnntttt00001011mmmm_case_1_instance_() 65 , Actual_STRH_register_cccc000pu0w0nnnntttt00001011mmmm_case_1_instance_()
62 , Actual_TST_immediate_cccc00110001nnnn0000iiiiiiiiiiii_case_1_instance_() 66 , Actual_TST_immediate_cccc00110001nnnn0000iiiiiiiiiiii_case_1_instance_()
63 , Actual_Unnamed_case_1_instance_() 67 , Actual_Unnamed_case_1_instance_()
64 , Binary2RegisterBitRangeMsbGeLsb_instance_() 68 , Binary2RegisterBitRangeMsbGeLsb_instance_()
65 , Binary2RegisterBitRangeNotRnIsPcBitfieldExtract_instance_() 69 , Binary2RegisterBitRangeNotRnIsPcBitfieldExtract_instance_()
66 , Binary3RegisterOpAltA_instance_() 70 , Binary3RegisterOpAltA_instance_()
67 , Binary3RegisterOpAltANoCondsUpdate_instance_() 71 , Binary3RegisterOpAltANoCondsUpdate_instance_()
68 , Binary3RegisterOpAltBNoCondUpdates_instance_() 72 , Binary3RegisterOpAltBNoCondUpdates_instance_()
69 , Binary4RegisterDualOp_instance_() 73 , Binary4RegisterDualOp_instance_()
70 , Binary4RegisterDualOpNoCondsUpdate_instance_() 74 , Binary4RegisterDualOpNoCondsUpdate_instance_()
71 , Binary4RegisterDualResultNoCondsUpdate_instance_() 75 , Binary4RegisterDualResultNoCondsUpdate_instance_()
72 , BranchImmediate24_instance_()
73 , CondVfpOp_instance_() 76 , CondVfpOp_instance_()
74 , DataBarrier_instance_() 77 , DataBarrier_instance_()
75 , Deprecated_instance_() 78 , Deprecated_instance_()
76 , DuplicateToAdvSIMDRegisters_instance_() 79 , DuplicateToAdvSIMDRegisters_instance_()
77 , Forbidden_instance_() 80 , Forbidden_instance_()
78 , ForbiddenCondDecoder_instance_() 81 , ForbiddenCondDecoder_instance_()
79 , InstructionBarrier_instance_() 82 , InstructionBarrier_instance_()
80 , LdrImmediateOp_instance_() 83 , LdrImmediateOp_instance_()
81 , Load2RegisterImm12Op_instance_() 84 , Load2RegisterImm12Op_instance_()
82 , Load3RegisterImm5Op_instance_() 85 , Load3RegisterImm5Op_instance_()
83 , LoadRegisterList_instance_()
84 , LoadVectorRegister_instance_() 86 , LoadVectorRegister_instance_()
85 , LoadVectorRegisterList_instance_() 87 , LoadVectorRegisterList_instance_()
86 , MoveDoubleVfpRegisterOp_instance_() 88 , MoveDoubleVfpRegisterOp_instance_()
87 , MoveVfpRegisterOp_instance_() 89 , MoveVfpRegisterOp_instance_()
88 , MoveVfpRegisterOpWithTypeSel_instance_() 90 , MoveVfpRegisterOpWithTypeSel_instance_()
89 , PermanentlyUndefined_instance_() 91 , PermanentlyUndefined_instance_()
90 , PreloadRegisterImm12Op_instance_() 92 , PreloadRegisterImm12Op_instance_()
91 , PreloadRegisterPairOp_instance_() 93 , PreloadRegisterPairOp_instance_()
92 , Store2RegisterImm12Op_instance_() 94 , Store2RegisterImm12Op_instance_()
93 , Store3RegisterImm5Op_instance_() 95 , Store3RegisterImm5Op_instance_()
94 , StoreRegisterList_instance_()
95 , StoreVectorRegister_instance_() 96 , StoreVectorRegister_instance_()
96 , StoreVectorRegisterList_instance_() 97 , StoreVectorRegisterList_instance_()
97 , Unary1RegisterBitRangeMsbGeLsb_instance_() 98 , Unary1RegisterBitRangeMsbGeLsb_instance_()
98 , Unary2RegisterImmedShiftedOp_instance_() 99 , Unary2RegisterImmedShiftedOp_instance_()
99 , Unary2RegisterSatImmedShiftedOp_instance_() 100 , Unary2RegisterSatImmedShiftedOp_instance_()
100 , Undefined_instance_() 101 , Undefined_instance_()
101 , Unpredictable_instance_() 102 , Unpredictable_instance_()
102 , VcvtPtAndFixedPoint_FloatingPoint_instance_() 103 , VcvtPtAndFixedPoint_FloatingPoint_instance_()
103 , Vector1RegisterImmediate_BIT_instance_() 104 , Vector1RegisterImmediate_BIT_instance_()
104 , Vector1RegisterImmediate_MOV_instance_() 105 , Vector1RegisterImmediate_MOV_instance_()
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after
488 } 489 }
489 490
490 // Implementation of table: branch_branch_with_link_and_block_data_transfer. 491 // Implementation of table: branch_branch_with_link_and_block_data_transfer.
491 // Specified by: See Section A5.5 492 // Specified by: See Section A5.5
492 const ClassDecoder& Arm32DecoderState::decode_branch_branch_with_link_and_block_ data_transfer( 493 const ClassDecoder& Arm32DecoderState::decode_branch_branch_with_link_and_block_ data_transfer(
493 const Instruction inst) const 494 const Instruction inst) const
494 { 495 {
495 UNREFERENCED_PARAMETER(inst); 496 UNREFERENCED_PARAMETER(inst);
496 if ((inst.Bits() & 0x02500000) == 497 if ((inst.Bits() & 0x02500000) ==
497 0x00000000 /* op(25:20)=0xx0x0 */) { 498 0x00000000 /* op(25:20)=0xx0x0 */) {
498 return StoreRegisterList_instance_; 499 return Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1_instance_;
499 } 500 }
500 501
501 if ((inst.Bits() & 0x02500000) == 502 if ((inst.Bits() & 0x02500000) ==
502 0x00100000 /* op(25:20)=0xx0x1 */) { 503 0x00100000 /* op(25:20)=0xx0x1 */) {
503 return LoadRegisterList_instance_; 504 return Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1_instance_;
504 } 505 }
505 506
506 if ((inst.Bits() & 0x02500000) == 507 if ((inst.Bits() & 0x02500000) ==
507 0x00400000 /* op(25:20)=0xx1x0 */ && 508 0x00400000 /* op(25:20)=0xx1x0 */ &&
508 (inst.Bits() & 0x00200000) == 509 (inst.Bits() & 0x00200000) ==
509 0x00000000 /* $pattern(31:0)=xxxxxxxxxx0xxxxxxxxxxxxxxxxxxxxx */) { 510 0x00000000 /* $pattern(31:0)=xxxxxxxxxx0xxxxxxxxxxxxxxxxxxxxx */) {
510 return ForbiddenCondDecoder_instance_; 511 return ForbiddenCondDecoder_instance_;
511 } 512 }
512 513
513 if ((inst.Bits() & 0x02500000) == 514 if ((inst.Bits() & 0x02500000) ==
514 0x00500000 /* op(25:20)=0xx1x1 */ && 515 0x00500000 /* op(25:20)=0xx1x1 */ &&
515 (inst.Bits() & 0x00008000) == 516 (inst.Bits() & 0x00008000) ==
516 0x00000000 /* R(15)=0 */ && 517 0x00000000 /* R(15)=0 */ &&
517 (inst.Bits() & 0x00200000) == 518 (inst.Bits() & 0x00200000) ==
518 0x00000000 /* $pattern(31:0)=xxxxxxxxxx0xxxxxxxxxxxxxxxxxxxxx */) { 519 0x00000000 /* $pattern(31:0)=xxxxxxxxxx0xxxxxxxxxxxxxxxxxxxxx */) {
519 return ForbiddenCondDecoder_instance_; 520 return ForbiddenCondDecoder_instance_;
520 } 521 }
521 522
522 if ((inst.Bits() & 0x02500000) == 523 if ((inst.Bits() & 0x02500000) ==
523 0x00500000 /* op(25:20)=0xx1x1 */ && 524 0x00500000 /* op(25:20)=0xx1x1 */ &&
524 (inst.Bits() & 0x00008000) == 525 (inst.Bits() & 0x00008000) ==
525 0x00008000 /* R(15)=1 */) { 526 0x00008000 /* R(15)=1 */) {
526 return ForbiddenCondDecoder_instance_; 527 return ForbiddenCondDecoder_instance_;
527 } 528 }
528 529
529 if ((inst.Bits() & 0x02000000) == 530 if ((inst.Bits() & 0x03000000) ==
530 0x02000000 /* op(25:20)=1xxxxx */) { 531 0x02000000 /* op(25:20)=10xxxx */) {
531 return BranchImmediate24_instance_; 532 return Actual_B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
533 }
534
535 if ((inst.Bits() & 0x03000000) ==
536 0x03000000 /* op(25:20)=11xxxx */) {
537 return Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1_insta nce_;
532 } 538 }
533 539
534 // Catch any attempt to fall though ... 540 // Catch any attempt to fall though ...
535 return not_implemented_; 541 return not_implemented_;
536 } 542 }
537 543
538 // Implementation of table: coprocessor_instructions_and_supervisor_call. 544 // Implementation of table: coprocessor_instructions_and_supervisor_call.
539 // Specified by: See Section A5.6 545 // Specified by: See Section A5.6
540 const ClassDecoder& Arm32DecoderState::decode_coprocessor_instructions_and_super visor_call( 546 const ClassDecoder& Arm32DecoderState::decode_coprocessor_instructions_and_super visor_call(
541 const Instruction inst) const 547 const Instruction inst) const
(...skipping 2666 matching lines...) Expand 10 before | Expand all | Expand 10 after
3208 3214
3209 // Catch any attempt to fall though ... 3215 // Catch any attempt to fall though ...
3210 return not_implemented_; 3216 return not_implemented_;
3211 } 3217 }
3212 3218
3213 const ClassDecoder& Arm32DecoderState::decode(const Instruction inst) const { 3219 const ClassDecoder& Arm32DecoderState::decode(const Instruction inst) const {
3214 return decode_ARMv7(inst); 3220 return decode_ARMv7(inst);
3215 } 3221 }
3216 3222
3217 } // namespace nacl_arm_dec 3223 } // namespace nacl_arm_dec
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698