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

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_BFC_cccc0111110mmmmmddddlllll0011111_case_1_instance_() 23 , Actual_BFC_cccc0111110mmmmmddddlllll0011111_case_1_instance_()
24 , Actual_BFI_cccc0111110mmmmmddddlllll001nnnn_case_1_instance_() 24 , Actual_BFI_cccc0111110mmmmmddddlllll001nnnn_case_1_instance_()
25 , Actual_BIC_immediate_cccc0011110snnnnddddiiiiiiiiiiii_case_1_instance_() 25 , Actual_BIC_immediate_cccc0011110snnnnddddiiiiiiiiiiii_case_1_instance_()
26 , Actual_BKPT_cccc00010010iiiiiiiiiiii0111iiii_case_1_instance_() 26 , Actual_BKPT_cccc00010010iiiiiiiiiiii0111iiii_case_1_instance_()
27 , Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_() 27 , Actual_BLX_immediate_1111101hiiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_()
28 , Actual_BLX_register_cccc000100101111111111110011mmmm_case_1_instance_() 28 , Actual_BLX_register_cccc000100101111111111110011mmmm_case_1_instance_()
29 , Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_()
30 , Actual_B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_()
29 , Actual_Bx_cccc000100101111111111110001mmmm_case_1_instance_() 31 , Actual_Bx_cccc000100101111111111110001mmmm_case_1_instance_()
30 , Actual_CLZ_cccc000101101111dddd11110001mmmm_case_1_instance_() 32 , Actual_CLZ_cccc000101101111dddd11110001mmmm_case_1_instance_()
31 , Actual_CMN_immediate_cccc00110111nnnn0000iiiiiiiiiiii_case_1_instance_() 33 , Actual_CMN_immediate_cccc00110111nnnn0000iiiiiiiiiiii_case_1_instance_()
32 , Actual_CMN_register_cccc00010111nnnn0000iiiiitt0mmmm_case_1_instance_() 34 , Actual_CMN_register_cccc00010111nnnn0000iiiiitt0mmmm_case_1_instance_()
33 , Actual_CMN_register_shifted_register_cccc00010111nnnn0000ssss0tt1mmmm_case_1 _instance_() 35 , Actual_CMN_register_shifted_register_cccc00010111nnnn0000ssss0tt1mmmm_case_1 _instance_()
36 , Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1_instance_()
34 , Actual_LDRB_immediate_cccc010pu1w1nnnnttttiiiiiiiiiiii_case_1_instance_() 37 , Actual_LDRB_immediate_cccc010pu1w1nnnnttttiiiiiiiiiiii_case_1_instance_()
35 , Actual_LDRB_literal_cccc0101u1011111ttttiiiiiiiiiiii_case_1_instance_() 38 , Actual_LDRB_literal_cccc0101u1011111ttttiiiiiiiiiiii_case_1_instance_()
36 , Actual_LDRB_register_cccc011pu1w1nnnnttttiiiiitt0mmmm_case_1_instance_() 39 , Actual_LDRB_register_cccc011pu1w1nnnnttttiiiiitt0mmmm_case_1_instance_()
37 , Actual_LDRD_immediate_cccc000pu1w0nnnnttttiiii1101iiii_case_1_instance_() 40 , Actual_LDRD_immediate_cccc000pu1w0nnnnttttiiii1101iiii_case_1_instance_()
38 , Actual_LDRD_literal_cccc0001u1001111ttttiiii1101iiii_case_1_instance_() 41 , Actual_LDRD_literal_cccc0001u1001111ttttiiii1101iiii_case_1_instance_()
39 , Actual_LDRD_register_cccc000pu0w0nnnntttt00001101mmmm_case_1_instance_() 42 , Actual_LDRD_register_cccc000pu0w0nnnntttt00001101mmmm_case_1_instance_()
40 , Actual_LDREXB_cccc00011101nnnntttt111110011111_case_1_instance_() 43 , Actual_LDREXB_cccc00011101nnnntttt111110011111_case_1_instance_()
41 , Actual_LDREXD_cccc00011011nnnntttt111110011111_case_1_instance_() 44 , Actual_LDREXD_cccc00011011nnnntttt111110011111_case_1_instance_()
42 , Actual_LDRH_immediate_cccc000pu1w1nnnnttttiiii1011iiii_case_1_instance_() 45 , Actual_LDRH_immediate_cccc000pu1w1nnnnttttiiii1011iiii_case_1_instance_()
43 , Actual_LDRH_literal_cccc000pu1w11111ttttiiii1011iiii_case_1_instance_() 46 , Actual_LDRH_literal_cccc000pu1w11111ttttiiii1011iiii_case_1_instance_()
(...skipping 14 matching lines...) Expand all
58 , Actual_ORR_immediate_cccc0011100snnnnddddiiiiiiiiiiii_case_1_instance_() 61 , Actual_ORR_immediate_cccc0011100snnnnddddiiiiiiiiiiii_case_1_instance_()
59 , Actual_PKH_cccc01101000nnnnddddiiiiit01mmmm_case_1_instance_() 62 , Actual_PKH_cccc01101000nnnnddddiiiiit01mmmm_case_1_instance_()
60 , Actual_SBFX_cccc0111101wwwwwddddlllll101nnnn_case_1_instance_() 63 , Actual_SBFX_cccc0111101wwwwwddddlllll101nnnn_case_1_instance_()
61 , Actual_SDIV_cccc01110001dddd1111mmmm0001nnnn_case_1_instance_() 64 , Actual_SDIV_cccc01110001dddd1111mmmm0001nnnn_case_1_instance_()
62 , Actual_SMLAD_cccc01110000ddddaaaammmm00m1nnnn_case_1_instance_() 65 , Actual_SMLAD_cccc01110000ddddaaaammmm00m1nnnn_case_1_instance_()
63 , Actual_SMLALBB_SMLALBT_SMLALTB_SMLALTT_cccc00010100hhhhllllmmmm1xx0nnnn_case _1_instance_() 66 , Actual_SMLALBB_SMLALBT_SMLALTB_SMLALTT_cccc00010100hhhhllllmmmm1xx0nnnn_case _1_instance_()
64 , Actual_SMLALD_cccc01110100hhhhllllmmmm00m1nnnn_case_1_instance_() 67 , Actual_SMLALD_cccc01110100hhhhllllmmmm00m1nnnn_case_1_instance_()
65 , Actual_SMLAL_A1_cccc0000111shhhhllllmmmm1001nnnn_case_1_instance_() 68 , Actual_SMLAL_A1_cccc0000111shhhhllllmmmm1001nnnn_case_1_instance_()
66 , Actual_SMULBB_SMULBT_SMULTB_SMULTT_cccc00010110dddd0000mmmm1xx0nnnn_case_1_i nstance_() 69 , Actual_SMULBB_SMULBT_SMULTB_SMULTT_cccc00010110dddd0000mmmm1xx0nnnn_case_1_i nstance_()
67 , Actual_SMULL_A1_cccc0000110shhhhllllmmmm1001nnnn_case_1_instance_() 70 , Actual_SMULL_A1_cccc0000110shhhhllllmmmm1001nnnn_case_1_instance_()
71 , Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1_instance_()
68 , Actual_STRB_immediate_cccc010pu1w0nnnnttttiiiiiiiiiiii_case_1_instance_() 72 , Actual_STRB_immediate_cccc010pu1w0nnnnttttiiiiiiiiiiii_case_1_instance_()
69 , Actual_STRB_register_cccc011pu1w0nnnnttttiiiiitt0mmmm_case_1_instance_() 73 , Actual_STRB_register_cccc011pu1w0nnnnttttiiiiitt0mmmm_case_1_instance_()
70 , Actual_STRD_immediate_cccc000pu1w0nnnnttttiiii1111iiii_case_1_instance_() 74 , Actual_STRD_immediate_cccc000pu1w0nnnnttttiiii1111iiii_case_1_instance_()
71 , Actual_STRD_register_cccc000pu0w0nnnntttt00001111mmmm_case_1_instance_() 75 , Actual_STRD_register_cccc000pu0w0nnnntttt00001111mmmm_case_1_instance_()
72 , Actual_STREXB_cccc00011100nnnndddd11111001tttt_case_1_instance_() 76 , Actual_STREXB_cccc00011100nnnndddd11111001tttt_case_1_instance_()
73 , Actual_STREXD_cccc00011010nnnndddd11111001tttt_case_1_instance_() 77 , Actual_STREXD_cccc00011010nnnndddd11111001tttt_case_1_instance_()
74 , Actual_STRH_immediate_cccc000pu1w0nnnnttttiiii1011iiii_case_1_instance_() 78 , Actual_STRH_immediate_cccc000pu1w0nnnnttttiiii1011iiii_case_1_instance_()
75 , Actual_STRH_register_cccc000pu0w0nnnntttt00001011mmmm_case_1_instance_() 79 , Actual_STRH_register_cccc000pu0w0nnnntttt00001011mmmm_case_1_instance_()
76 , Actual_STR_immediate_cccc010pu0w0nnnnttttiiiiiiiiiiii_case_1_instance_() 80 , Actual_STR_immediate_cccc010pu0w0nnnnttttiiiiiiiiiiii_case_1_instance_()
77 , Actual_STR_register_cccc011pd0w0nnnnttttiiiiitt0mmmm_case_1_instance_() 81 , Actual_STR_register_cccc011pd0w0nnnnttttiiiiitt0mmmm_case_1_instance_()
78 , Actual_SXTAB16_cccc01101000nnnnddddrr000111mmmm_case_1_instance_() 82 , Actual_SXTAB16_cccc01101000nnnnddddrr000111mmmm_case_1_instance_()
79 , Actual_TST_immediate_cccc00110001nnnn0000iiiiiiiiiiii_case_1_instance_() 83 , Actual_TST_immediate_cccc00110001nnnn0000iiiiiiiiiiii_case_1_instance_()
80 , Actual_Unnamed_case_1_instance_() 84 , Actual_Unnamed_case_1_instance_()
81 , BranchImmediate24_instance_()
82 , CondVfpOp_instance_() 85 , CondVfpOp_instance_()
83 , DataBarrier_instance_() 86 , DataBarrier_instance_()
84 , Deprecated_instance_() 87 , Deprecated_instance_()
85 , DuplicateToAdvSIMDRegisters_instance_() 88 , DuplicateToAdvSIMDRegisters_instance_()
86 , Forbidden_instance_() 89 , Forbidden_instance_()
87 , ForbiddenCondDecoder_instance_() 90 , ForbiddenCondDecoder_instance_()
88 , InstructionBarrier_instance_() 91 , InstructionBarrier_instance_()
89 , LoadRegisterList_instance_()
90 , LoadVectorRegister_instance_() 92 , LoadVectorRegister_instance_()
91 , LoadVectorRegisterList_instance_() 93 , LoadVectorRegisterList_instance_()
92 , MoveDoubleVfpRegisterOp_instance_() 94 , MoveDoubleVfpRegisterOp_instance_()
93 , MoveVfpRegisterOp_instance_() 95 , MoveVfpRegisterOp_instance_()
94 , MoveVfpRegisterOpWithTypeSel_instance_() 96 , MoveVfpRegisterOpWithTypeSel_instance_()
95 , PermanentlyUndefined_instance_() 97 , PermanentlyUndefined_instance_()
96 , PreloadRegisterImm12Op_instance_() 98 , PreloadRegisterImm12Op_instance_()
97 , PreloadRegisterPairOp_instance_() 99 , PreloadRegisterPairOp_instance_()
98 , StoreRegisterList_instance_()
99 , StoreVectorRegister_instance_() 100 , StoreVectorRegister_instance_()
100 , StoreVectorRegisterList_instance_() 101 , StoreVectorRegisterList_instance_()
101 , Undefined_instance_() 102 , Undefined_instance_()
102 , Unpredictable_instance_() 103 , Unpredictable_instance_()
103 , VcvtPtAndFixedPoint_FloatingPoint_instance_() 104 , VcvtPtAndFixedPoint_FloatingPoint_instance_()
104 , Vector1RegisterImmediate_BIT_instance_() 105 , Vector1RegisterImmediate_BIT_instance_()
105 , Vector1RegisterImmediate_MOV_instance_() 106 , Vector1RegisterImmediate_MOV_instance_()
106 , Vector1RegisterImmediate_MVN_instance_() 107 , Vector1RegisterImmediate_MVN_instance_()
107 , Vector2RegisterMiscellaneous_CVT_F2I_instance_() 108 , Vector2RegisterMiscellaneous_CVT_F2I_instance_()
108 , Vector2RegisterMiscellaneous_CVT_H2S_instance_() 109 , Vector2RegisterMiscellaneous_CVT_H2S_instance_()
(...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after
489 } 490 }
490 491
491 // Implementation of table: branch_branch_with_link_and_block_data_transfer. 492 // Implementation of table: branch_branch_with_link_and_block_data_transfer.
492 // Specified by: See Section A5.5 493 // Specified by: See Section A5.5
493 const ClassDecoder& Arm32DecoderState::decode_branch_branch_with_link_and_block_ data_transfer( 494 const ClassDecoder& Arm32DecoderState::decode_branch_branch_with_link_and_block_ data_transfer(
494 const Instruction inst) const 495 const Instruction inst) const
495 { 496 {
496 UNREFERENCED_PARAMETER(inst); 497 UNREFERENCED_PARAMETER(inst);
497 if ((inst.Bits() & 0x02500000) == 498 if ((inst.Bits() & 0x02500000) ==
498 0x00000000 /* op(25:20)=0xx0x0 */) { 499 0x00000000 /* op(25:20)=0xx0x0 */) {
499 return StoreRegisterList_instance_; 500 return Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1_instance_;
500 } 501 }
501 502
502 if ((inst.Bits() & 0x02500000) == 503 if ((inst.Bits() & 0x02500000) ==
503 0x00100000 /* op(25:20)=0xx0x1 */) { 504 0x00100000 /* op(25:20)=0xx0x1 */) {
504 return LoadRegisterList_instance_; 505 return Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1_instance_;
505 } 506 }
506 507
507 if ((inst.Bits() & 0x02500000) == 508 if ((inst.Bits() & 0x02500000) ==
508 0x00400000 /* op(25:20)=0xx1x0 */ && 509 0x00400000 /* op(25:20)=0xx1x0 */ &&
509 (inst.Bits() & 0x00200000) == 510 (inst.Bits() & 0x00200000) ==
510 0x00000000 /* $pattern(31:0)=xxxxxxxxxx0xxxxxxxxxxxxxxxxxxxxx */) { 511 0x00000000 /* $pattern(31:0)=xxxxxxxxxx0xxxxxxxxxxxxxxxxxxxxx */) {
511 return ForbiddenCondDecoder_instance_; 512 return ForbiddenCondDecoder_instance_;
512 } 513 }
513 514
514 if ((inst.Bits() & 0x02500000) == 515 if ((inst.Bits() & 0x02500000) ==
515 0x00500000 /* op(25:20)=0xx1x1 */ && 516 0x00500000 /* op(25:20)=0xx1x1 */ &&
516 (inst.Bits() & 0x00008000) == 517 (inst.Bits() & 0x00008000) ==
517 0x00000000 /* R(15)=0 */ && 518 0x00000000 /* R(15)=0 */ &&
518 (inst.Bits() & 0x00200000) == 519 (inst.Bits() & 0x00200000) ==
519 0x00000000 /* $pattern(31:0)=xxxxxxxxxx0xxxxxxxxxxxxxxxxxxxxx */) { 520 0x00000000 /* $pattern(31:0)=xxxxxxxxxx0xxxxxxxxxxxxxxxxxxxxx */) {
520 return ForbiddenCondDecoder_instance_; 521 return ForbiddenCondDecoder_instance_;
521 } 522 }
522 523
523 if ((inst.Bits() & 0x02500000) == 524 if ((inst.Bits() & 0x02500000) ==
524 0x00500000 /* op(25:20)=0xx1x1 */ && 525 0x00500000 /* op(25:20)=0xx1x1 */ &&
525 (inst.Bits() & 0x00008000) == 526 (inst.Bits() & 0x00008000) ==
526 0x00008000 /* R(15)=1 */) { 527 0x00008000 /* R(15)=1 */) {
527 return ForbiddenCondDecoder_instance_; 528 return ForbiddenCondDecoder_instance_;
528 } 529 }
529 530
530 if ((inst.Bits() & 0x02000000) == 531 if ((inst.Bits() & 0x03000000) ==
531 0x02000000 /* op(25:20)=1xxxxx */) { 532 0x02000000 /* op(25:20)=10xxxx */) {
532 return BranchImmediate24_instance_; 533 return Actual_B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_1_instance_;
534 }
535
536 if ((inst.Bits() & 0x03000000) ==
537 0x03000000 /* op(25:20)=11xxxx */) {
538 return Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1_insta nce_;
533 } 539 }
534 540
535 // Catch any attempt to fall though ... 541 // Catch any attempt to fall though ...
536 return not_implemented_; 542 return not_implemented_;
537 } 543 }
538 544
539 // Implementation of table: coprocessor_instructions_and_supervisor_call. 545 // Implementation of table: coprocessor_instructions_and_supervisor_call.
540 // Specified by: See Section A5.6 546 // Specified by: See Section A5.6
541 const ClassDecoder& Arm32DecoderState::decode_coprocessor_instructions_and_super visor_call( 547 const ClassDecoder& Arm32DecoderState::decode_coprocessor_instructions_and_super visor_call(
542 const Instruction inst) const 548 const Instruction inst) const
(...skipping 2666 matching lines...) Expand 10 before | Expand all | Expand 10 after
3209 3215
3210 // Catch any attempt to fall though ... 3216 // Catch any attempt to fall though ...
3211 return not_implemented_; 3217 return not_implemented_;
3212 } 3218 }
3213 3219
3214 const ClassDecoder& Arm32DecoderState::decode(const Instruction inst) const { 3220 const ClassDecoder& Arm32DecoderState::decode(const Instruction inst) const {
3215 return decode_ARMv7(inst); 3221 return decode_ARMv7(inst);
3216 } 3222 }
3217 3223
3218 } // namespace nacl_arm_dec 3224 } // namespace nacl_arm_dec
OLDNEW
« no previous file with comments | « src/trusted/validator_arm/gen/arm32_decode.h ('k') | src/trusted/validator_arm/gen/arm32_decode_actuals_1.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698