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

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

Issue 2804883008: [WASM SIMD] Implement horizontal add for float and integer types. (Closed)
Patch Set: Fix MIPS. Created 3 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
« no previous file with comments | « no previous file | src/arm/assembler-arm.cc » ('j') | src/compiler/arm/code-generator-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 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 V(d24) V(d25) V(d26) V(d27) V(d28) V(d29) V(d30) V(d31) 70 V(d24) V(d25) V(d26) V(d27) V(d28) V(d29) V(d30) V(d31)
71 71
72 #define SIMD128_REGISTERS(V) \ 72 #define SIMD128_REGISTERS(V) \
73 V(q0) V(q1) V(q2) V(q3) V(q4) V(q5) V(q6) V(q7) \ 73 V(q0) V(q1) V(q2) V(q3) V(q4) V(q5) V(q6) V(q7) \
74 V(q8) V(q9) V(q10) V(q11) V(q12) V(q13) V(q14) V(q15) 74 V(q8) V(q9) V(q10) V(q11) V(q12) V(q13) V(q14) V(q15)
75 75
76 #define ALLOCATABLE_DOUBLE_REGISTERS(V) \ 76 #define ALLOCATABLE_DOUBLE_REGISTERS(V) \
77 V(d0) V(d1) V(d2) V(d3) V(d4) V(d5) V(d6) V(d7) \ 77 V(d0) V(d1) V(d2) V(d3) V(d4) V(d5) V(d6) V(d7) \
78 V(d8) V(d9) V(d10) V(d11) V(d12) \ 78 V(d8) V(d9) V(d10) V(d11) V(d12) \
79 V(d16) V(d17) V(d18) V(d19) V(d20) V(d21) V(d22) V(d23) \ 79 V(d16) V(d17) V(d18) V(d19) V(d20) V(d21) V(d22) V(d23) \
80 V(d24) V(d25) V(d26) V(d27) V(d28) V(d29) V(d30) V(d31) 80 V(d24) V(d25) V(d26) V(d27) V(d28) V(d29)
georgia.kouveli 2017/04/20 14:53:06 Why make d30 and d31 non-allocatable?
bbudge 2017/04/21 20:18:58 That's my mistake, from a local merge. I'll restor
81 81
82 #define ALLOCATABLE_NO_VFP32_DOUBLE_REGISTERS(V) \ 82 #define ALLOCATABLE_NO_VFP32_DOUBLE_REGISTERS(V) \
83 V(d0) V(d1) V(d2) V(d3) V(d4) V(d5) V(d6) V(d7) \ 83 V(d0) V(d1) V(d2) V(d3) V(d4) V(d5) V(d6) V(d7) \
84 V(d8) V(d9) V(d10) V(d11) V(d12) V(d15) \ 84 V(d8) V(d9) V(d10) V(d11) V(d12) V(d15) \
85 // clang-format on 85 // clang-format on
86 86
87 // CPU Registers. 87 // CPU Registers.
88 // 88 //
89 // 1) We would prefer to use an enum, but enum values are assignment- 89 // 1) We would prefer to use an enum, but enum values are assignment-
90 // compatible with int, which has caused code-generation bugs. 90 // compatible with int, which has caused code-generation bugs.
(...skipping 1273 matching lines...) Expand 10 before | Expand all | Expand 10 after
1364 void vmul(QwNeonRegister dst, QwNeonRegister src1, 1364 void vmul(QwNeonRegister dst, QwNeonRegister src1,
1365 QwNeonRegister src2); 1365 QwNeonRegister src2);
1366 void vmul(NeonSize size, QwNeonRegister dst, QwNeonRegister src1, 1366 void vmul(NeonSize size, QwNeonRegister dst, QwNeonRegister src1,
1367 QwNeonRegister src2); 1367 QwNeonRegister src2);
1368 void vmin(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2); 1368 void vmin(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2);
1369 void vmin(NeonDataType dt, QwNeonRegister dst, 1369 void vmin(NeonDataType dt, QwNeonRegister dst,
1370 QwNeonRegister src1, QwNeonRegister src2); 1370 QwNeonRegister src1, QwNeonRegister src2);
1371 void vmax(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2); 1371 void vmax(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2);
1372 void vmax(NeonDataType dt, QwNeonRegister dst, 1372 void vmax(NeonDataType dt, QwNeonRegister dst,
1373 QwNeonRegister src1, QwNeonRegister src2); 1373 QwNeonRegister src1, QwNeonRegister src2);
1374 void vpadd(DwVfpRegister dst, DwVfpRegister src1, DwVfpRegister src2);
1375 void vpadd(NeonSize size, DwVfpRegister dst, DwVfpRegister src1,
1376 DwVfpRegister src2);
1374 void vpmin(NeonDataType dt, DwVfpRegister dst, DwVfpRegister src1, 1377 void vpmin(NeonDataType dt, DwVfpRegister dst, DwVfpRegister src1,
1375 DwVfpRegister src2); 1378 DwVfpRegister src2);
1376 void vpmax(NeonDataType dt, DwVfpRegister dst, DwVfpRegister src1, 1379 void vpmax(NeonDataType dt, DwVfpRegister dst, DwVfpRegister src1,
1377 DwVfpRegister src2); 1380 DwVfpRegister src2);
1378 void vshl(NeonDataType dt, QwNeonRegister dst, QwNeonRegister src, int shift); 1381 void vshl(NeonDataType dt, QwNeonRegister dst, QwNeonRegister src, int shift);
1379 void vshr(NeonDataType dt, QwNeonRegister dst, QwNeonRegister src, int shift); 1382 void vshr(NeonDataType dt, QwNeonRegister dst, QwNeonRegister src, int shift);
1380 // vrecpe and vrsqrte only support floating point lanes. 1383 // vrecpe and vrsqrte only support floating point lanes.
1381 void vrecpe(QwNeonRegister dst, QwNeonRegister src); 1384 void vrecpe(QwNeonRegister dst, QwNeonRegister src);
1382 void vrsqrte(QwNeonRegister dst, QwNeonRegister src); 1385 void vrsqrte(QwNeonRegister dst, QwNeonRegister src);
1383 void vrecps(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2); 1386 void vrecps(QwNeonRegister dst, QwNeonRegister src1, QwNeonRegister src2);
(...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after
1799 1802
1800 void Emit(Address addr); 1803 void Emit(Address addr);
1801 void FlushICache(Isolate* isolate); 1804 void FlushICache(Isolate* isolate);
1802 }; 1805 };
1803 1806
1804 1807
1805 } // namespace internal 1808 } // namespace internal
1806 } // namespace v8 1809 } // namespace v8
1807 1810
1808 #endif // V8_ARM_ASSEMBLER_ARM_H_ 1811 #endif // V8_ARM_ASSEMBLER_ARM_H_
OLDNEW
« no previous file with comments | « no previous file | src/arm/assembler-arm.cc » ('j') | src/compiler/arm/code-generator-arm.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698