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

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

Powered by Google App Engine
This is Rietveld 408576698