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

Side by Side Diff: src/arm/assembler-arm.h

Issue 12920009: Use generated Neon version of MemCopy() on ARM, if platform supports it. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 7 years, 8 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 | « no previous file | src/arm/assembler-arm.cc » ('j') | src/arm/assembler-arm.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions 5 // modification, are permitted provided that the following conditions
6 // are met: 6 // are met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 p8 = 8, 433 p8 = 8,
434 p9 = 9, 434 p9 = 9,
435 p10 = 10, 435 p10 = 10,
436 p11 = 11, 436 p11 = 11,
437 p12 = 12, 437 p12 = 12,
438 p13 = 13, 438 p13 = 13,
439 p14 = 14, 439 p14 = 14,
440 p15 = 15 440 p15 = 15
441 }; 441 };
442 442
443 enum NeonElementIndex {
444 element_0 = 0,
445 element_1 = 1,
446 element_2 = 2,
447 element_3 = 3,
448 element_4 = 4,
449 element_5 = 5,
450 element_6 = 6,
451 element_7 = 7
452 };
443 453
454 enum NeonWritebackType {
455 Writeback = 0,
456 NoWriteback = 1
457 };
danno 2013/03/27 08:40:07 nit: add a empty line after this enum
Nike 2013/03/29 08:48:52 Done.
444 // ----------------------------------------------------------------------------- 458 // -----------------------------------------------------------------------------
445 // Machine instruction Operands 459 // Machine instruction Operands
446 460
447 // Class Operand represents a shifter operand in data processing instructions 461 // Class Operand represents a shifter operand in data processing instructions
448 class Operand BASE_EMBEDDED { 462 class Operand BASE_EMBEDDED {
449 public: 463 public:
450 // immediate 464 // immediate
451 INLINE(explicit Operand(int32_t immediate, 465 INLINE(explicit Operand(int32_t immediate,
452 RelocInfo::Mode rmode = RelocInfo::NONE32)); 466 RelocInfo::Mode rmode = RelocInfo::NONE32));
453 INLINE(static Operand Zero()) { 467 INLINE(static Operand Zero()) {
(...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after
888 Register dst2, 902 Register dst2,
889 const MemOperand& src, Condition cond = al); 903 const MemOperand& src, Condition cond = al);
890 void strd(Register src1, 904 void strd(Register src1,
891 Register src2, 905 Register src2,
892 const MemOperand& dst, Condition cond = al); 906 const MemOperand& dst, Condition cond = al);
893 907
894 // Load/Store multiple instructions 908 // Load/Store multiple instructions
895 void ldm(BlockAddrMode am, Register base, RegList dst, Condition cond = al); 909 void ldm(BlockAddrMode am, Register base, RegList dst, Condition cond = al);
896 void stm(BlockAddrMode am, Register base, RegList src, Condition cond = al); 910 void stm(BlockAddrMode am, Register base, RegList src, Condition cond = al);
897 911
912 // Prefetch instructions.
913 void pld(Register base, int offset = 0, int write = 0);
914
898 // Exception-generating instructions and debugging support 915 // Exception-generating instructions and debugging support
899 void stop(const char* msg, 916 void stop(const char* msg,
900 Condition cond = al, 917 Condition cond = al,
901 int32_t code = kDefaultStopCode); 918 int32_t code = kDefaultStopCode);
902 919
903 void bkpt(uint32_t imm16); // v5 and above 920 void bkpt(uint32_t imm16); // v5 and above
904 void svc(uint32_t imm24, Condition cond = al); 921 void svc(uint32_t imm24, Condition cond = al);
905 922
906 // Coprocessor instructions 923 // Coprocessor instructions
907 924
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
1091 const double src2, 1108 const double src2,
1092 const Condition cond = al); 1109 const Condition cond = al);
1093 void vmrs(const Register dst, 1110 void vmrs(const Register dst,
1094 const Condition cond = al); 1111 const Condition cond = al);
1095 void vmsr(const Register dst, 1112 void vmsr(const Register dst,
1096 const Condition cond = al); 1113 const Condition cond = al);
1097 void vsqrt(const DwVfpRegister dst, 1114 void vsqrt(const DwVfpRegister dst,
1098 const DwVfpRegister src, 1115 const DwVfpRegister src,
1099 const Condition cond = al); 1116 const Condition cond = al);
1100 1117
1118 // NEON instructions
1119 void vld1(int size,
1120 const Register base,
1121 const DwVfpRegister first,
1122 const DwVfpRegister last,
1123 NeonWritebackType writeback = NoWriteback,
1124 int align_bytes = 1);
1125 void vld1(int size,
1126 const Register base,
1127 const DwVfpRegister first,
1128 NeonElementIndex element_index,
1129 NeonWritebackType writeback = NoWriteback,
1130 int align_bytes = 1);
1131 void vld4(int size,
1132 const Register src,
1133 const DwVfpRegister first,
1134 const DwVfpRegister last,
1135 NeonWritebackType writeback = NoWriteback,
1136 int align_bytes = 1);
1137 void vld4(int size,
1138 const Register src,
1139 const DwVfpRegister first,
1140 NeonElementIndex element_index,
1141 NeonWritebackType writeback = NoWriteback,
1142 int align_bytes = 1);
1143 void vst1(int size,
1144 const Register base,
danno 2013/03/27 08:40:07 nit: parameter indentation here and below, please
Nike 2013/03/29 08:48:52 Done.
1145 const DwVfpRegister first,
1146 const DwVfpRegister last,
1147 NeonWritebackType writeback = NoWriteback,
1148 int align_bytes = 1);
1149 void vst1(int size,
1150 const Register base,
1151 const DwVfpRegister first,
1152 NeonElementIndex element_index,
1153 NeonWritebackType writeback = NoWriteback,
1154 int align_bytes = 1);
1155 void vst4(int size,
1156 const Register src,
1157 const DwVfpRegister first,
1158 const DwVfpRegister last,
1159 NeonWritebackType writeback = NoWriteback,
1160 int align_bytes = 1);
1161 void vst4(int size,
1162 const Register src,
1163 const DwVfpRegister first,
1164 NeonElementIndex element_index,
1165 NeonWritebackType writeback = NoWriteback,
1166 int align_bytes = 1);
1167
1101 // Pseudo instructions 1168 // Pseudo instructions
1102 1169
1103 // Different nop operations are used by the code generator to detect certain 1170 // Different nop operations are used by the code generator to detect certain
1104 // states of the generated code. 1171 // states of the generated code.
1105 enum NopMarkerTypes { 1172 enum NopMarkerTypes {
1106 NON_MARKING_NOP = 0, 1173 NON_MARKING_NOP = 0,
1107 DEBUG_BREAK_NOP, 1174 DEBUG_BREAK_NOP,
1108 // IC markers. 1175 // IC markers.
1109 PROPERTY_ACCESS_INLINED, 1176 PROPERTY_ACCESS_INLINED,
1110 PROPERTY_ACCESS_INLINED_CONTEXT, 1177 PROPERTY_ACCESS_INLINED_CONTEXT,
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after
1443 public: 1510 public:
1444 explicit EnsureSpace(Assembler* assembler) { 1511 explicit EnsureSpace(Assembler* assembler) {
1445 assembler->CheckBuffer(); 1512 assembler->CheckBuffer();
1446 } 1513 }
1447 }; 1514 };
1448 1515
1449 1516
1450 } } // namespace v8::internal 1517 } } // namespace v8::internal
1451 1518
1452 #endif // V8_ARM_ASSEMBLER_ARM_H_ 1519 #endif // V8_ARM_ASSEMBLER_ARM_H_
OLDNEW
« no previous file with comments | « no previous file | src/arm/assembler-arm.cc » ('j') | src/arm/assembler-arm.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698