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

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

Issue 1276113002: Security: disable nontemporals. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 4 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
« no previous file with comments | « src/arm64/decoder-arm64-inl.h ('k') | src/arm64/instrument-arm64.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 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <assert.h> 5 #include <assert.h>
6 #include <stdarg.h> 6 #include <stdarg.h>
7 #include <stdio.h> 7 #include <stdio.h>
8 #include <string.h> 8 #include <string.h>
9 9
10 #include "src/v8.h" 10 #include "src/v8.h"
(...skipping 899 matching lines...) Expand 10 before | Expand all | Expand 10 after
910 switch (instr->Mask(LoadStorePairOffsetMask)) { 910 switch (instr->Mask(LoadStorePairOffsetMask)) {
911 #define LSP_OFFSET(A, B, C, D) \ 911 #define LSP_OFFSET(A, B, C, D) \
912 case A##_off: mnemonic = B; form = C ", ['Xns'ILP" D "]"; break; 912 case A##_off: mnemonic = B; form = C ", ['Xns'ILP" D "]"; break;
913 LOAD_STORE_PAIR_LIST(LSP_OFFSET) 913 LOAD_STORE_PAIR_LIST(LSP_OFFSET)
914 #undef LSP_OFFSET 914 #undef LSP_OFFSET
915 } 915 }
916 Format(instr, mnemonic, form); 916 Format(instr, mnemonic, form);
917 } 917 }
918 918
919 919
920 void Disassembler::VisitLoadStorePairNonTemporal(Instruction* instr) {
921 const char *mnemonic = "unimplemented";
922 const char *form;
923
924 switch (instr->Mask(LoadStorePairNonTemporalMask)) {
925 case STNP_w: mnemonic = "stnp"; form = "'Wt, 'Wt2, ['Xns'ILP4]"; break;
926 case LDNP_w: mnemonic = "ldnp"; form = "'Wt, 'Wt2, ['Xns'ILP4]"; break;
927 case STNP_x: mnemonic = "stnp"; form = "'Xt, 'Xt2, ['Xns'ILP8]"; break;
928 case LDNP_x: mnemonic = "ldnp"; form = "'Xt, 'Xt2, ['Xns'ILP8]"; break;
929 case STNP_s: mnemonic = "stnp"; form = "'St, 'St2, ['Xns'ILP4]"; break;
930 case LDNP_s: mnemonic = "ldnp"; form = "'St, 'St2, ['Xns'ILP4]"; break;
931 case STNP_d: mnemonic = "stnp"; form = "'Dt, 'Dt2, ['Xns'ILP8]"; break;
932 case LDNP_d: mnemonic = "ldnp"; form = "'Dt, 'Dt2, ['Xns'ILP8]"; break;
933 default: form = "(LoadStorePairNonTemporal)";
934 }
935 Format(instr, mnemonic, form);
936 }
937
938
939 void Disassembler::VisitFPCompare(Instruction* instr) { 920 void Disassembler::VisitFPCompare(Instruction* instr) {
940 const char *mnemonic = "unimplemented"; 921 const char *mnemonic = "unimplemented";
941 const char *form = "'Fn, 'Fm"; 922 const char *form = "'Fn, 'Fm";
942 const char *form_zero = "'Fn, #0.0"; 923 const char *form_zero = "'Fn, #0.0";
943 924
944 switch (instr->Mask(FPCompareMask)) { 925 switch (instr->Mask(FPCompareMask)) {
945 case FCMP_s_zero: 926 case FCMP_s_zero:
946 case FCMP_d_zero: form = form_zero; // Fall through. 927 case FCMP_d_zero: form = form_zero; // Fall through.
947 case FCMP_s: 928 case FCMP_s:
948 case FCMP_d: mnemonic = "fcmp"; break; 929 case FCMP_d: mnemonic = "fcmp"; break;
(...skipping 878 matching lines...) Expand 10 before | Expand all | Expand 10 after
1827 decoder.AppendVisitor(&disasm); 1808 decoder.AppendVisitor(&disasm);
1828 1809
1829 for (byte* pc = start; pc < end; pc += v8::internal::kInstructionSize) { 1810 for (byte* pc = start; pc < end; pc += v8::internal::kInstructionSize) {
1830 decoder.Decode(reinterpret_cast<v8::internal::Instruction*>(pc)); 1811 decoder.Decode(reinterpret_cast<v8::internal::Instruction*>(pc));
1831 } 1812 }
1832 } 1813 }
1833 1814
1834 } // namespace disasm 1815 } // namespace disasm
1835 1816
1836 #endif // V8_TARGET_ARCH_ARM64 1817 #endif // V8_TARGET_ARCH_ARM64
OLDNEW
« no previous file with comments | « src/arm64/decoder-arm64-inl.h ('k') | src/arm64/instrument-arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698