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

Side by Side Diff: src/IceAssemblerX86Base.h

Issue 1497033002: Fuse icmp/fcmp with select (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: unittests work Created 5 years 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
OLDNEW
1 //===- subzero/src/IceAssemblerX86Base.h - base x86 assembler -*- C++ -*---===// 1 //===- subzero/src/IceAssemblerX86Base.h - base x86 assembler -*- 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 427 matching lines...) Expand 10 before | Expand all | Expand 10 after
438 void subps(Type Ty, typename Traits::XmmRegister dst, 438 void subps(Type Ty, typename Traits::XmmRegister dst,
439 const typename Traits::Address &src); 439 const typename Traits::Address &src);
440 void divps(Type Ty, typename Traits::XmmRegister dst, 440 void divps(Type Ty, typename Traits::XmmRegister dst,
441 typename Traits::XmmRegister src); 441 typename Traits::XmmRegister src);
442 void divps(Type Ty, typename Traits::XmmRegister dst, 442 void divps(Type Ty, typename Traits::XmmRegister dst,
443 const typename Traits::Address &src); 443 const typename Traits::Address &src);
444 void mulps(Type Ty, typename Traits::XmmRegister dst, 444 void mulps(Type Ty, typename Traits::XmmRegister dst,
445 typename Traits::XmmRegister src); 445 typename Traits::XmmRegister src);
446 void mulps(Type Ty, typename Traits::XmmRegister dst, 446 void mulps(Type Ty, typename Traits::XmmRegister dst,
447 const typename Traits::Address &src); 447 const typename Traits::Address &src);
448 void minps(typename Traits::XmmRegister dst, 448 void minps(Type Ty, typename Traits::XmmRegister dst,
449 const typename Traits::Address &src);
450 void minps(Type Ty, typename Traits::XmmRegister dst,
449 typename Traits::XmmRegister src); 451 typename Traits::XmmRegister src);
450 void maxps(typename Traits::XmmRegister dst, 452 void minss(Type Ty, typename Traits::XmmRegister dst,
453 const typename Traits::Address &src);
454 void minss(Type Ty, typename Traits::XmmRegister dst,
451 typename Traits::XmmRegister src); 455 typename Traits::XmmRegister src);
452 void andps(typename Traits::XmmRegister dst, 456 void maxps(Type Ty, typename Traits::XmmRegister dst,
457 const typename Traits::Address &src);
458 void maxps(Type Ty, typename Traits::XmmRegister dst,
453 typename Traits::XmmRegister src); 459 typename Traits::XmmRegister src);
454 void andps(typename Traits::XmmRegister dst, 460 void maxss(Type Ty, typename Traits::XmmRegister dst,
455 const typename Traits::Address &src); 461 const typename Traits::Address &src);
456 void orps(typename Traits::XmmRegister dst, typename Traits::XmmRegister src); 462 void maxss(Type Ty, typename Traits::XmmRegister dst,
463 typename Traits::XmmRegister src);
464 void andnps(Type Ty, typename Traits::XmmRegister dst,
465 const typename Traits::Address &src);
466 void andnps(Type Ty, typename Traits::XmmRegister dst,
467 typename Traits::XmmRegister src);
468 void andps(Type Ty, typename Traits::XmmRegister dst,
469 const typename Traits::Address &src);
470 void andps(Type Ty, typename Traits::XmmRegister dst,
471 typename Traits::XmmRegister src);
472 void orps(Type Ty, typename Traits::XmmRegister dst,
473 const typename Traits::Address &src);
474 void orps(Type Ty, typename Traits::XmmRegister dst,
475 typename Traits::XmmRegister src);
457 476
458 void blendvps(Type Ty, typename Traits::XmmRegister dst, 477 void blendvps(Type Ty, typename Traits::XmmRegister dst,
459 typename Traits::XmmRegister src); 478 typename Traits::XmmRegister src);
460 void blendvps(Type Ty, typename Traits::XmmRegister dst, 479 void blendvps(Type Ty, typename Traits::XmmRegister dst,
461 const typename Traits::Address &src); 480 const typename Traits::Address &src);
462 void pblendvb(Type Ty, typename Traits::XmmRegister dst, 481 void pblendvb(Type Ty, typename Traits::XmmRegister dst,
463 typename Traits::XmmRegister src); 482 typename Traits::XmmRegister src);
464 void pblendvb(Type Ty, typename Traits::XmmRegister dst, 483 void pblendvb(Type Ty, typename Traits::XmmRegister dst,
465 const typename Traits::Address &src); 484 const typename Traits::Address &src);
466 485
467 void cmpps(typename Traits::XmmRegister dst, typename Traits::XmmRegister src, 486 void cmpps(Type Ty, typename Traits::XmmRegister dst,
487 typename Traits::XmmRegister src,
468 typename Traits::Cond::CmppsCond CmpCondition); 488 typename Traits::Cond::CmppsCond CmpCondition);
469 void cmpps(typename Traits::XmmRegister dst, 489 void cmpps(Type Ty, typename Traits::XmmRegister dst,
470 const typename Traits::Address &src, 490 const typename Traits::Address &src,
471 typename Traits::Cond::CmppsCond CmpCondition); 491 typename Traits::Cond::CmppsCond CmpCondition);
472 492
473 void sqrtps(typename Traits::XmmRegister dst); 493 void sqrtps(typename Traits::XmmRegister dst);
474 void rsqrtps(typename Traits::XmmRegister dst); 494 void rsqrtps(typename Traits::XmmRegister dst);
475 void reciprocalps(typename Traits::XmmRegister dst); 495 void reciprocalps(typename Traits::XmmRegister dst);
476 496
477 void movhlps(typename Traits::XmmRegister dst, 497 void movhlps(typename Traits::XmmRegister dst,
478 typename Traits::XmmRegister src); 498 typename Traits::XmmRegister src);
479 void movlhps(typename Traits::XmmRegister dst, 499 void movlhps(typename Traits::XmmRegister dst,
480 typename Traits::XmmRegister src); 500 typename Traits::XmmRegister src);
481 void unpcklps(typename Traits::XmmRegister dst, 501 void unpcklps(typename Traits::XmmRegister dst,
482 typename Traits::XmmRegister src); 502 typename Traits::XmmRegister src);
483 void unpckhps(typename Traits::XmmRegister dst, 503 void unpckhps(typename Traits::XmmRegister dst,
484 typename Traits::XmmRegister src); 504 typename Traits::XmmRegister src);
485 void unpcklpd(typename Traits::XmmRegister dst, 505 void unpcklpd(typename Traits::XmmRegister dst,
486 typename Traits::XmmRegister src); 506 typename Traits::XmmRegister src);
487 void unpckhpd(typename Traits::XmmRegister dst, 507 void unpckhpd(typename Traits::XmmRegister dst,
488 typename Traits::XmmRegister src); 508 typename Traits::XmmRegister src);
489 509
490 void set1ps(typename Traits::XmmRegister dst, 510 void set1ps(typename Traits::XmmRegister dst,
491 typename Traits::GPRRegister tmp, const Immediate &imm); 511 typename Traits::GPRRegister tmp, const Immediate &imm);
492 512
493 void minpd(typename Traits::XmmRegister dst,
494 typename Traits::XmmRegister src);
495 void maxpd(typename Traits::XmmRegister dst,
496 typename Traits::XmmRegister src);
497 void sqrtpd(typename Traits::XmmRegister dst); 513 void sqrtpd(typename Traits::XmmRegister dst);
498 514
499 void pshufd(Type Ty, typename Traits::XmmRegister dst, 515 void pshufd(Type Ty, typename Traits::XmmRegister dst,
500 typename Traits::XmmRegister src, const Immediate &mask); 516 typename Traits::XmmRegister src, const Immediate &mask);
501 void pshufd(Type Ty, typename Traits::XmmRegister dst, 517 void pshufd(Type Ty, typename Traits::XmmRegister dst,
502 const typename Traits::Address &src, const Immediate &mask); 518 const typename Traits::Address &src, const Immediate &mask);
503 void shufps(Type Ty, typename Traits::XmmRegister dst, 519 void shufps(Type Ty, typename Traits::XmmRegister dst,
504 typename Traits::XmmRegister src, const Immediate &mask); 520 typename Traits::XmmRegister src, const Immediate &mask);
505 void shufps(Type Ty, typename Traits::XmmRegister dst, 521 void shufps(Type Ty, typename Traits::XmmRegister dst,
506 const typename Traits::Address &src, const Immediate &mask); 522 const typename Traits::Address &src, const Immediate &mask);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
538 void movmskpd(typename Traits::GPRRegister dst, 554 void movmskpd(typename Traits::GPRRegister dst,
539 typename Traits::XmmRegister src); 555 typename Traits::XmmRegister src);
540 void movmskps(typename Traits::GPRRegister dst, 556 void movmskps(typename Traits::GPRRegister dst,
541 typename Traits::XmmRegister src); 557 typename Traits::XmmRegister src);
542 558
543 void sqrtss(Type Ty, typename Traits::XmmRegister dst, 559 void sqrtss(Type Ty, typename Traits::XmmRegister dst,
544 const typename Traits::Address &src); 560 const typename Traits::Address &src);
545 void sqrtss(Type Ty, typename Traits::XmmRegister dst, 561 void sqrtss(Type Ty, typename Traits::XmmRegister dst,
546 typename Traits::XmmRegister src); 562 typename Traits::XmmRegister src);
547 563
548 void xorpd(typename Traits::XmmRegister dst, 564 void xorps(Type Ty, typename Traits::XmmRegister dst,
549 const typename Traits::Address &src); 565 const typename Traits::Address &src);
550 void xorpd(typename Traits::XmmRegister dst, 566 void xorps(Type Ty, typename Traits::XmmRegister dst,
551 typename Traits::XmmRegister src); 567 typename Traits::XmmRegister src);
552 void xorps(typename Traits::XmmRegister dst,
553 const typename Traits::Address &src);
554 void xorps(typename Traits::XmmRegister dst,
555 typename Traits::XmmRegister src);
556
557 void andpd(typename Traits::XmmRegister dst,
558 const typename Traits::Address &src);
559 void andpd(typename Traits::XmmRegister dst,
560 typename Traits::XmmRegister src);
561
562 void orpd(typename Traits::XmmRegister dst, typename Traits::XmmRegister src);
563 568
564 void insertps(Type Ty, typename Traits::XmmRegister dst, 569 void insertps(Type Ty, typename Traits::XmmRegister dst,
565 typename Traits::XmmRegister src, const Immediate &imm); 570 typename Traits::XmmRegister src, const Immediate &imm);
566 void insertps(Type Ty, typename Traits::XmmRegister dst, 571 void insertps(Type Ty, typename Traits::XmmRegister dst,
567 const typename Traits::Address &src, const Immediate &imm); 572 const typename Traits::Address &src, const Immediate &imm);
568 573
569 void pinsr(Type Ty, typename Traits::XmmRegister dst, 574 void pinsr(Type Ty, typename Traits::XmmRegister dst,
570 typename Traits::GPRRegister src, const Immediate &imm); 575 typename Traits::GPRRegister src, const Immediate &imm);
571 void pinsr(Type Ty, typename Traits::XmmRegister dst, 576 void pinsr(Type Ty, typename Traits::XmmRegister dst,
572 const typename Traits::Address &src, const Immediate &imm); 577 const typename Traits::Address &src, const Immediate &imm);
(...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after
1066 emitUint8(0x66); 1071 emitUint8(0x66);
1067 } 1072 }
1068 1073
1069 } // end of namespace X86Internal 1074 } // end of namespace X86Internal
1070 1075
1071 } // end of namespace Ice 1076 } // end of namespace Ice
1072 1077
1073 #include "IceAssemblerX86BaseImpl.h" 1078 #include "IceAssemblerX86BaseImpl.h"
1074 1079
1075 #endif // SUBZERO_SRC_ICEASSEMBLERX86BASE_H 1080 #endif // SUBZERO_SRC_ICEASSEMBLERX86BASE_H
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698