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

Side by Side Diff: src/IceAssemblerARM32.h

Issue 1891243002: Subzero. ARM32. De-scalarizes icmp and fcmp for vectors. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Addresses comments. Created 4 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 | « src/DartARM32/assembler_arm.cc ('k') | src/IceAssemblerARM32.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 //===- subzero/src/IceAssemblerARM32.h - Assembler for ARM32 ----*- C++ -*-===// 1 //===- subzero/src/IceAssemblerARM32.h - Assembler for ARM32 ----*- C++ -*-===//
2 // 2 //
3 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 3 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
4 // for details. All rights reserved. Use of this source code is governed by a 4 // for details. All rights reserved. Use of this source code is governed by a
5 // BSD-style license that can be found in the LICENSE file. 5 // BSD-style license that can be found in the LICENSE file.
6 // 6 //
7 // Modified by the Subzero authors. 7 // Modified by the Subzero authors.
8 // 8 //
9 //===----------------------------------------------------------------------===// 9 //===----------------------------------------------------------------------===//
10 // 10 //
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 void vaddqi(Type ElmtTy, const Operand *OpQd, const Operand *OpQm, 338 void vaddqi(Type ElmtTy, const Operand *OpQd, const Operand *OpQm,
339 const Operand *OpQn); 339 const Operand *OpQn);
340 340
341 // Float vector add. 341 // Float vector add.
342 void vaddqf(const Operand *OpQd, const Operand *OpQm, const Operand *OpQn); 342 void vaddqf(const Operand *OpQd, const Operand *OpQm, const Operand *OpQn);
343 343
344 void vandq(const Operand *OpQd, const Operand *OpQm, const Operand *OpQn); 344 void vandq(const Operand *OpQd, const Operand *OpQm, const Operand *OpQn);
345 345
346 void vbslq(const Operand *OpQd, const Operand *OpQm, const Operand *OpQn); 346 void vbslq(const Operand *OpQd, const Operand *OpQm, const Operand *OpQn);
347 347
348 void vceqqi(const Type ElmtTy, const Operand *OpQd, const Operand *OpQm,
349 const Operand *OpQn);
350
351 void vceqqs(const Operand *OpQd, const Operand *OpQm, const Operand *OpQn);
352
353 void vcgeqi(const Type ElmtTy, const Operand *OpQd, const Operand *OpQm,
354 const Operand *OpQn);
355
356 void vcugeqi(const Type ElmtTy, const Operand *OpQd, const Operand *OpQm,
357 const Operand *OpQn);
358
359 void vcgeqs(const Operand *OpQd, const Operand *OpQm, const Operand *OpQn);
360
361 void vcgtqi(const Type ElmtTy, const Operand *OpQd, const Operand *OpQm,
362 const Operand *OpQn);
363
364 void vcugtqi(const Type ElmtTy, const Operand *OpQd, const Operand *OpQm,
365 const Operand *OpQn);
366
367 void vcgtqs(const Operand *OpQd, const Operand *OpQm, const Operand *OpQn);
368
348 void vcmpd(const Operand *OpDd, const Operand *OpDm, CondARM32::Cond cond); 369 void vcmpd(const Operand *OpDd, const Operand *OpDm, CondARM32::Cond cond);
349 370
350 // Second argument of compare is zero (+0.0). 371 // Second argument of compare is zero (+0.0).
351 void vcmpdz(const Operand *OpDd, CondARM32::Cond cond); 372 void vcmpdz(const Operand *OpDd, CondARM32::Cond cond);
352 373
353 void vcmps(const Operand *OpSd, const Operand *OpSm, CondARM32::Cond cond); 374 void vcmps(const Operand *OpSd, const Operand *OpSm, CondARM32::Cond cond);
354 375
355 // Second argument of compare is zero (+0.0). 376 // Second argument of compare is zero (+0.0).
356 void vcmpsz(const Operand *OpSd, CondARM32::Cond cond); 377 void vcmpsz(const Operand *OpSd, CondARM32::Cond cond);
357 378
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
498 // Integer vector multiply. 519 // Integer vector multiply.
499 void vmulqi(Type ElmtTy, const Operand *OpQd, const Operand *OpQn, 520 void vmulqi(Type ElmtTy, const Operand *OpQd, const Operand *OpQn,
500 const Operand *OpQm); 521 const Operand *OpQm);
501 522
502 // Float vector multiply. 523 // Float vector multiply.
503 void vmulqf(const Operand *OpQd, const Operand *OpQn, const Operand *OpQm); 524 void vmulqf(const Operand *OpQd, const Operand *OpQn, const Operand *OpQm);
504 525
505 void vmuls(const Operand *OpSd, const Operand *OpSn, const Operand *OpSm, 526 void vmuls(const Operand *OpSd, const Operand *OpSn, const Operand *OpSm,
506 CondARM32::Cond Cond); 527 CondARM32::Cond Cond);
507 528
529 void vmvnq(const Operand *OpQd, const Operand *OpQm);
530
531 void vnegqs(const Operand *OpQd, const Operand *OpQm);
532
508 void vnegqs(Type ElmtTy, const Operand *OpQd, const Operand *OpQm); 533 void vnegqs(Type ElmtTy, const Operand *OpQd, const Operand *OpQm);
509 534
510 void vorrq(const Operand *OpQd, const Operand *OpQm, const Operand *OpQn); 535 void vorrq(const Operand *OpQd, const Operand *OpQm, const Operand *OpQn);
511 536
512 void vpop(const Variable *OpBaseReg, SizeT NumConsecRegs, 537 void vpop(const Variable *OpBaseReg, SizeT NumConsecRegs,
513 CondARM32::Cond Cond); 538 CondARM32::Cond Cond);
514 539
515 void vpush(const Variable *OpBaseReg, SizeT NumConsecRegs, 540 void vpush(const Variable *OpBaseReg, SizeT NumConsecRegs,
516 CondARM32::Cond Cond); 541 CondARM32::Cond Cond);
517 542
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after
803 828
804 void emitVFPsss(CondARM32::Cond Cond, IValueT Opcode, const Operand *OpSd, 829 void emitVFPsss(CondARM32::Cond Cond, IValueT Opcode, const Operand *OpSd,
805 const Operand *OpSn, const Operand *OpSm, 830 const Operand *OpSn, const Operand *OpSm,
806 const char *InstName); 831 const char *InstName);
807 }; 832 };
808 833
809 } // end of namespace ARM32 834 } // end of namespace ARM32
810 } // end of namespace Ice 835 } // end of namespace Ice
811 836
812 #endif // SUBZERO_SRC_ICEASSEMBLERARM32_H 837 #endif // SUBZERO_SRC_ICEASSEMBLERARM32_H
OLDNEW
« no previous file with comments | « src/DartARM32/assembler_arm.cc ('k') | src/IceAssemblerARM32.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698