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

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

Issue 10879090: ARM validator: continue with extra_load_store_instructions. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: "Update test_sp_updates.S and related .nexe and .err files: they were relying on UNDEFINED behavior… Created 8 years, 3 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 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 307 matching lines...) Expand 10 before | Expand all | Expand 10 after
318 const ClassDecoder& Arm32DecoderState::decode_data_processing_immediate( 318 const ClassDecoder& Arm32DecoderState::decode_data_processing_immediate(
319 const Instruction insn) const 319 const Instruction insn) const
320 { 320 {
321 UNREFERENCED_PARAMETER(insn); 321 UNREFERENCED_PARAMETER(insn);
322 if ((insn.Bits() & 0x01F00000) == 0x00400000 /* op(24:20) == 00100 */ && 322 if ((insn.Bits() & 0x01F00000) == 0x00400000 /* op(24:20) == 00100 */ &&
323 (insn.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16) == 1111 */) { 323 (insn.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16) == 1111 */) {
324 return Defs12To15_instance_; 324 return Defs12To15_instance_;
325 } 325 }
326 326
327 if ((insn.Bits() & 0x01F00000) == 0x00500000 /* op(24:20) == 00101 */ && 327 if ((insn.Bits() & 0x01F00000) == 0x00500000 /* op(24:20) == 00101 */ &&
328 (insn.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16) == 1111 */) { 328 (insn.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16) == 1111 */ &&
329 (insn.Bits() & 0x0000F000) == 0x0000F000 /* $pattern(31:0) == xxxxxxxxxxxx xxxx1111xxxxxxxxxxxx */) {
329 return Forbidden_instance_; 330 return Forbidden_instance_;
330 } 331 }
331 332
332 if ((insn.Bits() & 0x01F00000) == 0x00800000 /* op(24:20) == 01000 */ && 333 if ((insn.Bits() & 0x01F00000) == 0x00800000 /* op(24:20) == 01000 */ &&
333 (insn.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16) == 1111 */) { 334 (insn.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16) == 1111 */) {
334 return Defs12To15_instance_; 335 return Defs12To15_instance_;
335 } 336 }
336 337
337 if ((insn.Bits() & 0x01F00000) == 0x00900000 /* op(24:20) == 01001 */ && 338 if ((insn.Bits() & 0x01F00000) == 0x00900000 /* op(24:20) == 01001 */ &&
338 (insn.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16) == 1111 */) { 339 (insn.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16) == 1111 */ &&
340 (insn.Bits() & 0x0000F000) == 0x0000F000 /* $pattern(31:0) == xxxxxxxxxxxx xxxx1111xxxxxxxxxxxx */) {
339 return Forbidden_instance_; 341 return Forbidden_instance_;
340 } 342 }
341 343
342 if ((insn.Bits() & 0x01F00000) == 0x01100000 /* op(24:20) == 10001 */ && 344 if ((insn.Bits() & 0x01F00000) == 0x01100000 /* op(24:20) == 10001 */ &&
343 (insn.Bits() & 0x0000F000) == 0x00000000 /* $pattern(31:0) == xxxxxxxxxxxx xxxx0000xxxxxxxxxxxx */) { 345 (insn.Bits() & 0x0000F000) == 0x00000000 /* $pattern(31:0) == xxxxxxxxxxxx xxxx0000xxxxxxxxxxxx */) {
344 return TestIfAddressMasked_instance_; 346 return TestIfAddressMasked_instance_;
345 } 347 }
346 348
347 if ((insn.Bits() & 0x01F00000) == 0x01500000 /* op(24:20) == 10101 */ && 349 if ((insn.Bits() & 0x01F00000) == 0x01500000 /* op(24:20) == 10101 */ &&
348 (insn.Bits() & 0x0000F000) == 0x00000000 /* $pattern(31:0) == xxxxxxxxxxxx xxxx0000xxxxxxxxxxxx */) { 350 (insn.Bits() & 0x0000F000) == 0x00000000 /* $pattern(31:0) == xxxxxxxxxxxx xxxx0000xxxxxxxxxxxx */) {
(...skipping 590 matching lines...) Expand 10 before | Expand all | Expand 10 after
939 // Catch any attempt to fall though ... 941 // Catch any attempt to fall though ...
940 return not_implemented_; 942 return not_implemented_;
941 } 943 }
942 944
943 // Implementation of table: miscellaneous_instructions. 945 // Implementation of table: miscellaneous_instructions.
944 // Specified by: See Section A5.2.12 946 // Specified by: See Section A5.2.12
945 const ClassDecoder& Arm32DecoderState::decode_miscellaneous_instructions( 947 const ClassDecoder& Arm32DecoderState::decode_miscellaneous_instructions(
946 const Instruction insn) const 948 const Instruction insn) const
947 { 949 {
948 if ((insn.Bits() & 0x00000070) == 0x00000000 /* op2(6:4) == 000 */ && 950 if ((insn.Bits() & 0x00000070) == 0x00000000 /* op2(6:4) == 000 */ &&
951 (insn.Bits() & 0x00000200) == 0x00000000 /* B(9:9) == 0 */ &&
949 (insn.Bits() & 0x00600000) == 0x00200000 /* op(22:21) == 01 */ && 952 (insn.Bits() & 0x00600000) == 0x00200000 /* op(22:21) == 01 */ &&
950 (insn.Bits() & 0x00030000) == 0x00000000 /* op1(19:16) == xx00 */ && 953 (insn.Bits() & 0x00030000) == 0x00000000 /* op1(19:16) == xx00 */ &&
951 (insn.Bits() & 0x0000FF00) == 0x0000F000 /* $pattern(31:0) == xxxxxxxxxxxx xxxx11110000xxxxxxxx */) { 954 (insn.Bits() & 0x0000FD00) == 0x0000F000 /* $pattern(31:0) == xxxxxxxxxxxx xxxx111100x0xxxxxxxx */) {
952 return Unary1RegisterUse_instance_; 955 return Unary1RegisterUse_instance_;
953 } 956 }
954 957
955 if ((insn.Bits() & 0x00000070) == 0x00000000 /* op2(6:4) == 000 */ && 958 if ((insn.Bits() & 0x00000070) == 0x00000000 /* op2(6:4) == 000 */ &&
959 (insn.Bits() & 0x00000200) == 0x00000000 /* B(9:9) == 0 */ &&
956 (insn.Bits() & 0x00600000) == 0x00200000 /* op(22:21) == 01 */ && 960 (insn.Bits() & 0x00600000) == 0x00200000 /* op(22:21) == 01 */ &&
957 (insn.Bits() & 0x00030000) == 0x00010000 /* op1(19:16) == xx01 */ && 961 (insn.Bits() & 0x00030000) == 0x00010000 /* op1(19:16) == xx01 */ &&
958 (insn.Bits() & 0x0000FF00) == 0x0000F000 /* $pattern(31:0) == xxxxxxxxxxxx xxxx11110000xxxxxxxx */) { 962 (insn.Bits() & 0x0000FD00) == 0x0000F000 /* $pattern(31:0) == xxxxxxxxxxxx xxxx111100x0xxxxxxxx */) {
959 return Forbidden_instance_; 963 return Forbidden_instance_;
960 } 964 }
961 965
962 if ((insn.Bits() & 0x00000070) == 0x00000000 /* op2(6:4) == 000 */ && 966 if ((insn.Bits() & 0x00000070) == 0x00000000 /* op2(6:4) == 000 */ &&
967 (insn.Bits() & 0x00000200) == 0x00000000 /* B(9:9) == 0 */ &&
963 (insn.Bits() & 0x00600000) == 0x00200000 /* op(22:21) == 01 */ && 968 (insn.Bits() & 0x00600000) == 0x00200000 /* op(22:21) == 01 */ &&
964 (insn.Bits() & 0x00020000) == 0x00020000 /* op1(19:16) == xx1x */ && 969 (insn.Bits() & 0x00020000) == 0x00020000 /* op1(19:16) == xx1x */ &&
965 (insn.Bits() & 0x0000FF00) == 0x0000F000 /* $pattern(31:0) == xxxxxxxxxxxx xxxx11110000xxxxxxxx */) { 970 (insn.Bits() & 0x0000FD00) == 0x0000F000 /* $pattern(31:0) == xxxxxxxxxxxx xxxx111100x0xxxxxxxx */) {
966 return Forbidden_instance_; 971 return Forbidden_instance_;
967 } 972 }
968 973
969 if ((insn.Bits() & 0x00000070) == 0x00000000 /* op2(6:4) == 000 */ && 974 if ((insn.Bits() & 0x00000070) == 0x00000000 /* op2(6:4) == 000 */ &&
975 (insn.Bits() & 0x00000200) == 0x00000000 /* B(9:9) == 0 */ &&
970 (insn.Bits() & 0x00600000) == 0x00600000 /* op(22:21) == 11 */ && 976 (insn.Bits() & 0x00600000) == 0x00600000 /* op(22:21) == 11 */ &&
971 (insn.Bits() & 0x0000FF00) == 0x0000F000 /* $pattern(31:0) == xxxxxxxxxxxx xxxx11110000xxxxxxxx */) { 977 (insn.Bits() & 0x0000FD00) == 0x0000F000 /* $pattern(31:0) == xxxxxxxxxxxx xxxx111100x0xxxxxxxx */) {
972 return Forbidden_instance_; 978 return Forbidden_instance_;
973 } 979 }
974 980
975 if ((insn.Bits() & 0x00000070) == 0x00000000 /* op2(6:4) == 000 */ && 981 if ((insn.Bits() & 0x00000070) == 0x00000000 /* op2(6:4) == 000 */ &&
982 (insn.Bits() & 0x00000200) == 0x00000000 /* B(9:9) == 0 */ &&
976 (insn.Bits() & 0x00200000) == 0x00000000 /* op(22:21) == x0 */ && 983 (insn.Bits() & 0x00200000) == 0x00000000 /* op(22:21) == x0 */ &&
977 (insn.Bits() & 0x000F0F0F) == 0x000F0000 /* $pattern(31:0) == xxxxxxxxxxxx 1111xxxx0000xxxx0000 */) { 984 (insn.Bits() & 0x000F0D0F) == 0x000F0000 /* $pattern(31:0) == xxxxxxxxxxxx 1111xxxx00x0xxxx0000 */) {
978 return Unary1RegisterSet_instance_; 985 return Unary1RegisterSet_instance_;
979 } 986 }
980 987
988 if ((insn.Bits() & 0x00000070) == 0x00000000 /* op2(6:4) == 000 */ &&
989 (insn.Bits() & 0x00000200) == 0x00000200 /* B(9:9) == 1 */ &&
990 (insn.Bits() & 0x00200000) == 0x00000000 /* op(22:21) == x0 */ &&
991 (insn.Bits() & 0x00000C0F) == 0x00000000 /* $pattern(31:0) == xxxxxxxxxxxx xxxxxxxx00xxxxxx0000 */) {
992 return Forbidden_instance_;
993 }
994
995 if ((insn.Bits() & 0x00000070) == 0x00000000 /* op2(6:4) == 000 */ &&
996 (insn.Bits() & 0x00000200) == 0x00000200 /* B(9:9) == 1 */ &&
997 (insn.Bits() & 0x00200000) == 0x00200000 /* op(22:21) == x1 */ &&
998 (insn.Bits() & 0x0000FC00) == 0x0000F000 /* $pattern(31:0) == xxxxxxxxxxxx xxxx111100xxxxxxxxxx */) {
999 return Forbidden_instance_;
1000 }
1001
981 if ((insn.Bits() & 0x00000070) == 0x00000010 /* op2(6:4) == 001 */ && 1002 if ((insn.Bits() & 0x00000070) == 0x00000010 /* op2(6:4) == 001 */ &&
982 (insn.Bits() & 0x00600000) == 0x00200000 /* op(22:21) == 01 */ && 1003 (insn.Bits() & 0x00600000) == 0x00200000 /* op(22:21) == 01 */ &&
983 (insn.Bits() & 0x000FFF00) == 0x000FFF00 /* $pattern(31:0) == xxxxxxxxxxxx 111111111111xxxxxxxx */) { 1004 (insn.Bits() & 0x000FFF00) == 0x000FFF00 /* $pattern(31:0) == xxxxxxxxxxxx 111111111111xxxxxxxx */) {
984 return BxBlx_instance_; 1005 return BxBlx_instance_;
985 } 1006 }
986 1007
987 if ((insn.Bits() & 0x00000070) == 0x00000010 /* op2(6:4) == 001 */ && 1008 if ((insn.Bits() & 0x00000070) == 0x00000010 /* op2(6:4) == 001 */ &&
988 (insn.Bits() & 0x00600000) == 0x00600000 /* op(22:21) == 11 */ && 1009 (insn.Bits() & 0x00600000) == 0x00600000 /* op(22:21) == 11 */ &&
989 (insn.Bits() & 0x000F0F00) == 0x000F0F00 /* $pattern(31:0) == xxxxxxxxxxxx 1111xxxx1111xxxxxxxx */) { 1010 (insn.Bits() & 0x000F0F00) == 0x000F0F00 /* $pattern(31:0) == xxxxxxxxxxxx 1111xxxx1111xxxxxxxx */) {
990 return Defs12To15RdRnNotPc_instance_; 1011 return Defs12To15RdRnNotPc_instance_;
991 } 1012 }
992 1013
993 if ((insn.Bits() & 0x00000070) == 0x00000020 /* op2(6:4) == 010 */ && 1014 if ((insn.Bits() & 0x00000070) == 0x00000020 /* op2(6:4) == 010 */ &&
994 (insn.Bits() & 0x00600000) == 0x00200000 /* op(22:21) == 01 */ && 1015 (insn.Bits() & 0x00600000) == 0x00200000 /* op(22:21) == 01 */ &&
995 (insn.Bits() & 0x000FFF00) == 0x000FFF00 /* $pattern(31:0) == xxxxxxxxxxxx 111111111111xxxxxxxx */) { 1016 (insn.Bits() & 0x000FFF00) == 0x000FFF00 /* $pattern(31:0) == xxxxxxxxxxxx 111111111111xxxxxxxx */) {
996 return Forbidden_instance_; 1017 return Forbidden_instance_;
997 } 1018 }
998 1019
999 if ((insn.Bits() & 0x00000070) == 0x00000030 /* op2(6:4) == 011 */ && 1020 if ((insn.Bits() & 0x00000070) == 0x00000030 /* op2(6:4) == 011 */ &&
1000 (insn.Bits() & 0x00600000) == 0x00200000 /* op(22:21) == 01 */ && 1021 (insn.Bits() & 0x00600000) == 0x00200000 /* op(22:21) == 01 */ &&
1001 (insn.Bits() & 0x000FFF00) == 0x000FFF00 /* $pattern(31:0) == xxxxxxxxxxxx 111111111111xxxxxxxx */) { 1022 (insn.Bits() & 0x000FFF00) == 0x000FFF00 /* $pattern(31:0) == xxxxxxxxxxxx 111111111111xxxxxxxx */) {
1002 return BxBlx_instance_; 1023 return BxBlx_instance_;
1003 } 1024 }
1004 1025
1005 if ((insn.Bits() & 0x00000070) == 0x00000050 /* op2(6:4) == 101 */) { 1026 if ((insn.Bits() & 0x00000070) == 0x00000050 /* op2(6:4) == 101 */) {
1006 return decode_saturating_addition_and_subtraction(insn); 1027 return decode_saturating_addition_and_subtraction(insn);
1007 } 1028 }
1008 1029
1030 if ((insn.Bits() & 0x00000070) == 0x00000060 /* op2(6:4) == 110 */ &&
1031 (insn.Bits() & 0x00600000) == 0x00600000 /* op(22:21) == 11 */ &&
1032 (insn.Bits() & 0x000FFF0F) == 0x0000000E /* $pattern(31:0) == xxxxxxxxxxxx 000000000000xxxx1110 */) {
1033 return Forbidden_instance_;
1034 }
1035
1009 if ((insn.Bits() & 0x00000070) == 0x00000070 /* op2(6:4) == 111 */ && 1036 if ((insn.Bits() & 0x00000070) == 0x00000070 /* op2(6:4) == 111 */ &&
1010 (insn.Bits() & 0x00600000) == 0x00200000 /* op(22:21) == 01 */) { 1037 (insn.Bits() & 0x00600000) == 0x00200000 /* op(22:21) == 01 */) {
1011 return Breakpoint_instance_; 1038 return Breakpoint_instance_;
1012 } 1039 }
1013 1040
1014 if ((insn.Bits() & 0x00000070) == 0x00000070 /* op2(6:4) == 111 */ && 1041 if ((insn.Bits() & 0x00000070) == 0x00000070 /* op2(6:4) == 111 */ &&
1042 (insn.Bits() & 0x00600000) == 0x00400000 /* op(22:21) == 10 */) {
1043 return Forbidden_instance_;
1044 }
1045
1046 if ((insn.Bits() & 0x00000070) == 0x00000070 /* op2(6:4) == 111 */ &&
1015 (insn.Bits() & 0x00600000) == 0x00600000 /* op(22:21) == 11 */ && 1047 (insn.Bits() & 0x00600000) == 0x00600000 /* op(22:21) == 11 */ &&
1016 (insn.Bits() & 0x000FFF00) == 0x00000000 /* $pattern(31:0) == xxxxxxxxxxxx 000000000000xxxxxxxx */) { 1048 (insn.Bits() & 0x000FFF00) == 0x00000000 /* $pattern(31:0) == xxxxxxxxxxxx 000000000000xxxxxxxx */) {
1017 return Forbidden_instance_; 1049 return Forbidden_instance_;
1018 } 1050 }
1019 1051
1020 if (true) { 1052 if (true) {
1021 return Undefined_instance_; 1053 return Undefined_instance_;
1022 } 1054 }
1023 1055
1024 // Catch any attempt to fall though ... 1056 // Catch any attempt to fall though ...
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1060 } 1092 }
1061 1093
1062 if ((insn.Bits() & 0x00400000) == 0x00000000 /* op(22:22) == 0 */ && 1094 if ((insn.Bits() & 0x00400000) == 0x00000000 /* op(22:22) == 0 */ &&
1063 (insn.Bits() & 0x000F0000) == 0x00000000 /* op1(19:16) == 0000 */ && 1095 (insn.Bits() & 0x000F0000) == 0x00000000 /* op1(19:16) == 0000 */ &&
1064 (insn.Bits() & 0x000000F0) == 0x000000F0 /* op2(7:0) == 1111xxxx */ && 1096 (insn.Bits() & 0x000000F0) == 0x000000F0 /* op2(7:0) == 1111xxxx */ &&
1065 (insn.Bits() & 0x0000FF00) == 0x0000F000 /* $pattern(31:0) == xxxxxxxxxxxx xxxx11110000xxxxxxxx */) { 1097 (insn.Bits() & 0x0000FF00) == 0x0000F000 /* $pattern(31:0) == xxxxxxxxxxxx xxxx11110000xxxxxxxx */) {
1066 return DontCareInst_instance_; 1098 return DontCareInst_instance_;
1067 } 1099 }
1068 1100
1069 if ((insn.Bits() & 0x00400000) == 0x00000000 /* op(22:22) == 0 */ && 1101 if ((insn.Bits() & 0x00400000) == 0x00000000 /* op(22:22) == 0 */ &&
1070 (insn.Bits() & 0x000F0000) == 0x00040000 /* op1(19:16) == 0100 */) { 1102 (insn.Bits() & 0x000F0000) == 0x00040000 /* op1(19:16) == 0100 */ &&
1103 (insn.Bits() & 0x0000F000) == 0x0000F000 /* $pattern(31:0) == xxxxxxxxxxxx xxxx1111xxxxxxxxxxxx */) {
1071 return DontCareInst_instance_; 1104 return DontCareInst_instance_;
1072 } 1105 }
1073 1106
1074 if ((insn.Bits() & 0x00400000) == 0x00000000 /* op(22:22) == 0 */ && 1107 if ((insn.Bits() & 0x00400000) == 0x00000000 /* op(22:22) == 0 */ &&
1075 (insn.Bits() & 0x000B0000) == 0x00080000 /* op1(19:16) == 1x00 */) { 1108 (insn.Bits() & 0x000B0000) == 0x00080000 /* op1(19:16) == 1x00 */ &&
1109 (insn.Bits() & 0x0000F000) == 0x0000F000 /* $pattern(31:0) == xxxxxxxxxxxx xxxx1111xxxxxxxxxxxx */) {
1076 return DontCareInst_instance_; 1110 return DontCareInst_instance_;
1077 } 1111 }
1078 1112
1079 if ((insn.Bits() & 0x00400000) == 0x00000000 /* op(22:22) == 0 */ && 1113 if ((insn.Bits() & 0x00400000) == 0x00000000 /* op(22:22) == 0 */ &&
1080 (insn.Bits() & 0x00030000) == 0x00010000 /* op1(19:16) == xx01 */ && 1114 (insn.Bits() & 0x00030000) == 0x00010000 /* op1(19:16) == xx01 */ &&
1081 (insn.Bits() & 0x0000F000) == 0x0000F000 /* $pattern(31:0) == xxxxxxxxxxxx xxxx1111xxxxxxxxxxxx */) { 1115 (insn.Bits() & 0x0000F000) == 0x0000F000 /* $pattern(31:0) == xxxxxxxxxxxx xxxx1111xxxxxxxxxxxx */) {
1082 return Forbidden_instance_; 1116 return Forbidden_instance_;
1083 } 1117 }
1084 1118
1085 if ((insn.Bits() & 0x00400000) == 0x00000000 /* op(22:22) == 0 */ && 1119 if ((insn.Bits() & 0x00400000) == 0x00000000 /* op(22:22) == 0 */ &&
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after
1440 if ((insn.Bits() & 0x00F00000) == 0x00A00000 /* op(23:20) == 1010 */ && 1474 if ((insn.Bits() & 0x00F00000) == 0x00A00000 /* op(23:20) == 1010 */ &&
1441 (insn.Bits() & 0x00000F00) == 0x00000F00 /* $pattern(31:0) == xxxxxxxxxxxx xxxxxxxx1111xxxxxxxx */) { 1475 (insn.Bits() & 0x00000F00) == 0x00000F00 /* $pattern(31:0) == xxxxxxxxxxxx xxxxxxxx1111xxxxxxxx */) {
1442 return StoreBasedMemoryDoubleRtBits0To3_instance_; 1476 return StoreBasedMemoryDoubleRtBits0To3_instance_;
1443 } 1477 }
1444 1478
1445 if ((insn.Bits() & 0x00F00000) == 0x00B00000 /* op(23:20) == 1011 */ && 1479 if ((insn.Bits() & 0x00F00000) == 0x00B00000 /* op(23:20) == 1011 */ &&
1446 (insn.Bits() & 0x00000F0F) == 0x00000F0F /* $pattern(31:0) == xxxxxxxxxxxx xxxxxxxx1111xxxx1111 */) { 1480 (insn.Bits() & 0x00000F0F) == 0x00000F0F /* $pattern(31:0) == xxxxxxxxxxxx xxxxxxxx1111xxxx1111 */) {
1447 return LoadBasedMemoryDouble_instance_; 1481 return LoadBasedMemoryDouble_instance_;
1448 } 1482 }
1449 1483
1450 if ((insn.Bits() & 0x00B00000) == 0x00000000 /* op(23:20) == 0x00 */) { 1484 if ((insn.Bits() & 0x00B00000) == 0x00000000 /* op(23:20) == 0x00 */ &&
1485 (insn.Bits() & 0x00000F00) == 0x00000000 /* $pattern(31:0) == xxxxxxxxxxxx xxxxxxxx0000xxxxxxxx */) {
1451 return Deprecated_instance_; 1486 return Deprecated_instance_;
1452 } 1487 }
1453 1488
1454 if ((insn.Bits() & 0x00D00000) == 0x00C00000 /* op(23:20) == 11x0 */ && 1489 if ((insn.Bits() & 0x00D00000) == 0x00C00000 /* op(23:20) == 11x0 */ &&
1455 (insn.Bits() & 0x00000F00) == 0x00000F00 /* $pattern(31:0) == xxxxxxxxxxxx xxxxxxxx1111xxxxxxxx */) { 1490 (insn.Bits() & 0x00000F00) == 0x00000F00 /* $pattern(31:0) == xxxxxxxxxxxx xxxxxxxx1111xxxxxxxx */) {
1456 return StoreBasedMemoryRtBits0To3_instance_; 1491 return StoreBasedMemoryRtBits0To3_instance_;
1457 } 1492 }
1458 1493
1459 if ((insn.Bits() & 0x00D00000) == 0x00D00000 /* op(23:20) == 11x1 */ && 1494 if ((insn.Bits() & 0x00D00000) == 0x00D00000 /* op(23:20) == 11x1 */ &&
1460 (insn.Bits() & 0x00000F0F) == 0x00000F0F /* $pattern(31:0) == xxxxxxxxxxxx xxxxxxxx1111xxxx1111 */) { 1495 (insn.Bits() & 0x00000F0F) == 0x00000F0F /* $pattern(31:0) == xxxxxxxxxxxx xxxxxxxx1111xxxx1111 */) {
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
1606 1641
1607 // Catch any attempt to fall though ... 1642 // Catch any attempt to fall though ...
1608 return not_implemented_; 1643 return not_implemented_;
1609 } 1644 }
1610 1645
1611 const ClassDecoder& Arm32DecoderState::decode(const Instruction insn) const { 1646 const ClassDecoder& Arm32DecoderState::decode(const Instruction insn) const {
1612 return decode_ARMv7(insn); 1647 return decode_ARMv7(insn);
1613 } 1648 }
1614 1649
1615 } // namespace nacl_arm_dec 1650 } // namespace nacl_arm_dec
OLDNEW
« no previous file with comments | « src/trusted/validator_arm/baseline_classes.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