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

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

Issue 11194045: Change BKPT and UDF encodings on ARM. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: Update copyright. Created 8 years, 2 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 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 #ifndef NACL_TRUSTED_BUT_NOT_TCB 9 #ifndef NACL_TRUSTED_BUT_NOT_TCB
10 #error This file is not meant for use in the TCB 10 #error This file is not meant for use in the TCB
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 if ((inst.Bits() & 0x000000E0) != 0x00000000 /* op2(7:5)=~000 */) return false ; 93 if ((inst.Bits() & 0x000000E0) != 0x00000000 /* op2(7:5)=~000 */) return false ;
94 if ((inst.Bits() & 0x0000F000) != 0x0000F000 /* Rd(15:12)=~1111 */) return fal se; 94 if ((inst.Bits() & 0x0000F000) != 0x0000F000 /* Rd(15:12)=~1111 */) return fal se;
95 95
96 // Check other preconditions defined for the base decoder. 96 // Check other preconditions defined for the base decoder.
97 return Binary3RegisterOpAltATesterRegsNotPc:: 97 return Binary3RegisterOpAltATesterRegsNotPc::
98 PassesParsePreconditions(inst, decoder); 98 PassesParsePreconditions(inst, decoder);
99 } 99 }
100 100
101 // Neutral case: 101 // Neutral case:
102 // inst(24:20)=11111 & inst(7:5)=111 102 // inst(24:20)=11111 & inst(7:5)=111
103 // = {baseline: 'Roadblock', 103 // = {baseline: 'PermanentlyUndefined',
104 // constraints: } 104 // constraints: }
105 // 105 //
106 // Representaive case: 106 // Representaive case:
107 // op1(24:20)=11111 & op2(7:5)=111 107 // op1(24:20)=11111 & op2(7:5)=111
108 // = {baseline: Roadblock, 108 // = {baseline: PermanentlyUndefined,
109 // constraints: } 109 // constraints: }
110 class RoadblockTesterCase2 110 class PermanentlyUndefinedTesterCase2
111 : public RoadblockTester { 111 : public PermanentlyUndefinedTester {
112 public: 112 public:
113 RoadblockTesterCase2(const NamedClassDecoder& decoder) 113 PermanentlyUndefinedTesterCase2(const NamedClassDecoder& decoder)
114 : RoadblockTester(decoder) {} 114 : PermanentlyUndefinedTester(decoder) {}
115 virtual bool PassesParsePreconditions( 115 virtual bool PassesParsePreconditions(
116 nacl_arm_dec::Instruction inst, 116 nacl_arm_dec::Instruction inst,
117 const NamedClassDecoder& decoder); 117 const NamedClassDecoder& decoder);
118 }; 118 };
119 119
120 bool RoadblockTesterCase2 120 bool PermanentlyUndefinedTesterCase2
121 ::PassesParsePreconditions( 121 ::PassesParsePreconditions(
122 nacl_arm_dec::Instruction inst, 122 nacl_arm_dec::Instruction inst,
123 const NamedClassDecoder& decoder) { 123 const NamedClassDecoder& decoder) {
124 124
125 // Check that row patterns apply to pattern being checked.' 125 // Check that row patterns apply to pattern being checked.'
126 if ((inst.Bits() & 0x01F00000) != 0x01F00000 /* op1(24:20)=~11111 */) return f alse; 126 if ((inst.Bits() & 0x01F00000) != 0x01F00000 /* op1(24:20)=~11111 */) return f alse;
127 if ((inst.Bits() & 0x000000E0) != 0x000000E0 /* op2(7:5)=~111 */) return false ; 127 if ((inst.Bits() & 0x000000E0) != 0x000000E0 /* op2(7:5)=~111 */) return false ;
128 128
129 // Check other preconditions defined for the base decoder. 129 // Check other preconditions defined for the base decoder.
130 return RoadblockTester:: 130 return PermanentlyUndefinedTester::
131 PassesParsePreconditions(inst, decoder); 131 PassesParsePreconditions(inst, decoder);
132 } 132 }
133 133
134 // Neutral case: 134 // Neutral case:
135 // inst(24:20)=1101x & inst(7:5)=x10 135 // inst(24:20)=1101x & inst(7:5)=x10
136 // = {baseline: 'Binary2RegisterBitRangeNotRnIsPcBitfieldExtract', 136 // = {baseline: 'Binary2RegisterBitRangeNotRnIsPcBitfieldExtract',
137 // constraints: , 137 // constraints: ,
138 // safety: ["'RegsNotPc'"]} 138 // safety: ["'RegsNotPc'"]}
139 // 139 //
140 // Representaive case: 140 // Representaive case:
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 : public Binary3RegisterOpAltATesterCase1 { 317 : public Binary3RegisterOpAltATesterCase1 {
318 public: 318 public:
319 Binary3RegisterOpAltATester_Case1() 319 Binary3RegisterOpAltATester_Case1()
320 : Binary3RegisterOpAltATesterCase1( 320 : Binary3RegisterOpAltATesterCase1(
321 state_.Binary3RegisterOpAltA_Usad8_Rule_253_A1_P500_instance_) 321 state_.Binary3RegisterOpAltA_Usad8_Rule_253_A1_P500_instance_)
322 {} 322 {}
323 }; 323 };
324 324
325 // Neutral case: 325 // Neutral case:
326 // inst(24:20)=11111 & inst(7:5)=111 326 // inst(24:20)=11111 & inst(7:5)=111
327 // = {baseline: 'Roadblock', 327 // = {baseline: 'PermanentlyUndefined',
328 // constraints: , 328 // constraints: ,
329 // rule: 'Udf_Rule_A1'} 329 // rule: 'Udf_Rule_A1'}
330 // 330 //
331 // Representative case: 331 // Representative case:
332 // op1(24:20)=11111 & op2(7:5)=111 332 // op1(24:20)=11111 & op2(7:5)=111
333 // = {baseline: Roadblock, 333 // = {baseline: PermanentlyUndefined,
334 // constraints: , 334 // constraints: ,
335 // rule: Udf_Rule_A1} 335 // rule: Udf_Rule_A1}
336 class RoadblockTester_Case2 336 class PermanentlyUndefinedTester_Case2
337 : public RoadblockTesterCase2 { 337 : public PermanentlyUndefinedTesterCase2 {
338 public: 338 public:
339 RoadblockTester_Case2() 339 PermanentlyUndefinedTester_Case2()
340 : RoadblockTesterCase2( 340 : PermanentlyUndefinedTesterCase2(
341 state_.Roadblock_Udf_Rule_A1_instance_) 341 state_.PermanentlyUndefined_Udf_Rule_A1_instance_)
342 {} 342 {}
343 }; 343 };
344 344
345 // Neutral case: 345 // Neutral case:
346 // inst(24:20)=1101x & inst(7:5)=x10 346 // inst(24:20)=1101x & inst(7:5)=x10
347 // = {baseline: 'Binary2RegisterBitRangeNotRnIsPcBitfieldExtract', 347 // = {baseline: 'Binary2RegisterBitRangeNotRnIsPcBitfieldExtract',
348 // constraints: , 348 // constraints: ,
349 // rule: 'Sbfx_Rule_154_A1_P308', 349 // rule: 'Sbfx_Rule_154_A1_P308',
350 // safety: ["'RegsNotPc'"]} 350 // safety: ["'RegsNotPc'"]}
351 // 351 //
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
484 TEST_F(Arm32DecoderStateTests, 484 TEST_F(Arm32DecoderStateTests,
485 Binary3RegisterOpAltATester_Case1_TestCase1) { 485 Binary3RegisterOpAltATester_Case1_TestCase1) {
486 Binary3RegisterOpAltATester_Case1 baseline_tester; 486 Binary3RegisterOpAltATester_Case1 baseline_tester;
487 NamedDefs16To19CondsDontCareRdRmRnNotPc_Usad8_Rule_253_A1_P500 actual; 487 NamedDefs16To19CondsDontCareRdRmRnNotPc_Usad8_Rule_253_A1_P500 actual;
488 ActualVsBaselineTester a_vs_b_tester(actual, baseline_tester); 488 ActualVsBaselineTester a_vs_b_tester(actual, baseline_tester);
489 a_vs_b_tester.Test("cccc01111000dddd1111mmmm0001nnnn"); 489 a_vs_b_tester.Test("cccc01111000dddd1111mmmm0001nnnn");
490 } 490 }
491 491
492 // Neutral case: 492 // Neutral case:
493 // inst(24:20)=11111 & inst(7:5)=111 493 // inst(24:20)=11111 & inst(7:5)=111
494 // = {actual: 'Roadblock', 494 // = {actual: 'PermanentlyUndefined',
495 // baseline: 'Roadblock', 495 // baseline: 'PermanentlyUndefined',
496 // constraints: , 496 // constraints: ,
497 // pattern: 'cccc01111111iiiiiiiiiiii1111iiii', 497 // pattern: 'cccc01111111iiiiiiiiiiii1111iiii',
498 // rule: 'Udf_Rule_A1'} 498 // rule: 'Udf_Rule_A1'}
499 // 499 //
500 // Representaive case: 500 // Representaive case:
501 // op1(24:20)=11111 & op2(7:5)=111 501 // op1(24:20)=11111 & op2(7:5)=111
502 // = {actual: Roadblock, 502 // = {actual: PermanentlyUndefined,
503 // baseline: Roadblock, 503 // baseline: PermanentlyUndefined,
504 // constraints: , 504 // constraints: ,
505 // pattern: cccc01111111iiiiiiiiiiii1111iiii, 505 // pattern: cccc01111111iiiiiiiiiiii1111iiii,
506 // rule: Udf_Rule_A1} 506 // rule: Udf_Rule_A1}
507 TEST_F(Arm32DecoderStateTests, 507 TEST_F(Arm32DecoderStateTests,
508 RoadblockTester_Case2_TestCase2) { 508 PermanentlyUndefinedTester_Case2_TestCase2) {
509 RoadblockTester_Case2 tester; 509 PermanentlyUndefinedTester_Case2 tester;
510 tester.Test("cccc01111111iiiiiiiiiiii1111iiii"); 510 tester.Test("cccc01111111iiiiiiiiiiii1111iiii");
511 } 511 }
512 512
513 // Neutral case: 513 // Neutral case:
514 // inst(24:20)=1101x & inst(7:5)=x10 514 // inst(24:20)=1101x & inst(7:5)=x10
515 // = {actual: 'Defs12To15CondsDontCareRdRnNotPcBitfieldExtract', 515 // = {actual: 'Defs12To15CondsDontCareRdRnNotPcBitfieldExtract',
516 // baseline: 'Binary2RegisterBitRangeNotRnIsPcBitfieldExtract', 516 // baseline: 'Binary2RegisterBitRangeNotRnIsPcBitfieldExtract',
517 // constraints: , 517 // constraints: ,
518 // pattern: 'cccc0111101wwwwwddddlllll101nnnn', 518 // pattern: 'cccc0111101wwwwwddddlllll101nnnn',
519 // rule: 'Sbfx_Rule_154_A1_P308', 519 // rule: 'Sbfx_Rule_154_A1_P308',
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 ActualVsBaselineTester a_vs_b_tester(actual, baseline_tester); 607 ActualVsBaselineTester a_vs_b_tester(actual, baseline_tester);
608 a_vs_b_tester.Test("cccc0111111mmmmmddddlllll101nnnn"); 608 a_vs_b_tester.Test("cccc0111111mmmmmddddlllll101nnnn");
609 } 609 }
610 610
611 } // namespace nacl_arm_test 611 } // namespace nacl_arm_test
612 612
613 int main(int argc, char* argv[]) { 613 int main(int argc, char* argv[]) {
614 testing::InitGoogleTest(&argc, argv); 614 testing::InitGoogleTest(&argc, argv);
615 return RUN_ALL_TESTS(); 615 return RUN_ALL_TESTS();
616 } 616 }
OLDNEW
« no previous file with comments | « src/trusted/validator_arm/gen/arm32_decode.cc ('k') | src/trusted/validator_arm/gen/arm32_decode_named.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698