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

Side by Side Diff: src/arm/disasm-arm.cc

Issue 198053014: ARM: fix assertions for uxtb and co. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 9 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
« no previous file with comments | « src/arm/assembler-arm.cc ('k') | test/cctest/test-disasm-arm.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 1043 matching lines...) Expand 10 before | Expand all | Expand 10 after
1054 UNREACHABLE(); 1054 UNREACHABLE();
1055 break; 1055 break;
1056 case 1: 1056 case 1:
1057 UNREACHABLE(); 1057 UNREACHABLE();
1058 break; 1058 break;
1059 case 2: 1059 case 2:
1060 if ((instr->Bit(20) == 0) && (instr->Bits(9, 6) == 1)) { 1060 if ((instr->Bit(20) == 0) && (instr->Bits(9, 6) == 1)) {
1061 if (instr->Bits(19, 16) == 0xF) { 1061 if (instr->Bits(19, 16) == 0xF) {
1062 switch (instr->Bits(11, 10)) { 1062 switch (instr->Bits(11, 10)) {
1063 case 0: 1063 case 0:
1064 Format(instr, "uxtb16'cond 'rd, 'rm, ror #0"); 1064 Format(instr, "uxtb16'cond 'rd, 'rm");
1065 break; 1065 break;
1066 case 1: 1066 case 1:
1067 Format(instr, "uxtb16'cond 'rd, 'rm, ror #8"); 1067 Format(instr, "uxtb16'cond 'rd, 'rm, ror #8");
1068 break; 1068 break;
1069 case 2: 1069 case 2:
1070 Format(instr, "uxtb16'cond 'rd, 'rm, ror #16"); 1070 Format(instr, "uxtb16'cond 'rd, 'rm, ror #16");
1071 break; 1071 break;
1072 case 3: 1072 case 3:
1073 Format(instr, "uxtb16'cond 'rd, 'rm, ror #24"); 1073 Format(instr, "uxtb16'cond 'rd, 'rm, ror #24");
1074 break; 1074 break;
1075 } 1075 }
1076 } else { 1076 } else {
1077 UNREACHABLE(); 1077 UNREACHABLE();
1078 } 1078 }
1079 } else { 1079 } else {
1080 UNREACHABLE(); 1080 UNREACHABLE();
1081 } 1081 }
1082 break; 1082 break;
1083 case 3: 1083 case 3:
1084 if ((instr->Bit(20) == 0) && (instr->Bits(9, 6) == 1)) { 1084 if ((instr->Bit(20) == 0) && (instr->Bits(9, 6) == 1)) {
1085 if (instr->Bits(19, 16) == 0xF) { 1085 if (instr->Bits(19, 16) == 0xF) {
1086 switch (instr->Bits(11, 10)) { 1086 switch (instr->Bits(11, 10)) {
1087 case 0: 1087 case 0:
1088 Format(instr, "uxtb'cond 'rd, 'rm, ror #0"); 1088 Format(instr, "uxtb'cond 'rd, 'rm");
1089 break; 1089 break;
1090 case 1: 1090 case 1:
1091 Format(instr, "uxtb'cond 'rd, 'rm, ror #8"); 1091 Format(instr, "uxtb'cond 'rd, 'rm, ror #8");
1092 break; 1092 break;
1093 case 2: 1093 case 2:
1094 Format(instr, "uxtb'cond 'rd, 'rm, ror #16"); 1094 Format(instr, "uxtb'cond 'rd, 'rm, ror #16");
1095 break; 1095 break;
1096 case 3: 1096 case 3:
1097 Format(instr, "uxtb'cond 'rd, 'rm, ror #24"); 1097 Format(instr, "uxtb'cond 'rd, 'rm, ror #24");
1098 break; 1098 break;
1099 } 1099 }
1100 } else { 1100 } else {
1101 switch (instr->Bits(11, 10)) { 1101 switch (instr->Bits(11, 10)) {
1102 case 0: 1102 case 0:
1103 Format(instr, "uxtab'cond 'rd, 'rn, 'rm, ror #0"); 1103 Format(instr, "uxtab'cond 'rd, 'rn, 'rm");
1104 break; 1104 break;
1105 case 1: 1105 case 1:
1106 Format(instr, "uxtab'cond 'rd, 'rn, 'rm, ror #8"); 1106 Format(instr, "uxtab'cond 'rd, 'rn, 'rm, ror #8");
1107 break; 1107 break;
1108 case 2: 1108 case 2:
1109 Format(instr, "uxtab'cond 'rd, 'rn, 'rm, ror #16"); 1109 Format(instr, "uxtab'cond 'rd, 'rn, 'rm, ror #16");
1110 break; 1110 break;
1111 case 3: 1111 case 3:
1112 Format(instr, "uxtab'cond 'rd, 'rn, 'rm, ror #24"); 1112 Format(instr, "uxtab'cond 'rd, 'rn, 'rm, ror #24");
1113 break; 1113 break;
(...skipping 691 matching lines...) Expand 10 before | Expand all | Expand 10 after
1805 v8::internal::PrintF( 1805 v8::internal::PrintF(
1806 f, "%p %08x %s\n", 1806 f, "%p %08x %s\n",
1807 prev_pc, *reinterpret_cast<int32_t*>(prev_pc), buffer.start()); 1807 prev_pc, *reinterpret_cast<int32_t*>(prev_pc), buffer.start());
1808 } 1808 }
1809 } 1809 }
1810 1810
1811 1811
1812 } // namespace disasm 1812 } // namespace disasm
1813 1813
1814 #endif // V8_TARGET_ARCH_ARM 1814 #endif // V8_TARGET_ARCH_ARM
OLDNEW
« no previous file with comments | « src/arm/assembler-arm.cc ('k') | test/cctest/test-disasm-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698