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

Side by Side Diff: src/assembler_ia32.h

Issue 640603002: emitIAS for cvtt?.*2.* (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: move check Created 6 years, 2 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/IceTargetLoweringX8632.cpp ('k') | src/assembler_ia32.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 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 // 4 //
5 // Modified by the Subzero authors. 5 // Modified by the Subzero authors.
6 // 6 //
7 //===- subzero/src/assembler_ia32.h - Assembler for x86-32 ----------------===// 7 //===- subzero/src/assembler_ia32.h - Assembler for x86-32 ----------------===//
8 // 8 //
9 // The Subzero Code Generator 9 // The Subzero Code Generator
10 // 10 //
(...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 390
391 typedef void (AssemblerX86::*TypedEmitXmmImm)(Type, XmmRegister, 391 typedef void (AssemblerX86::*TypedEmitXmmImm)(Type, XmmRegister,
392 const Immediate &); 392 const Immediate &);
393 393
394 struct XmmEmitterShiftOp { 394 struct XmmEmitterShiftOp {
395 TypedEmitXmmXmm XmmXmm; 395 TypedEmitXmmXmm XmmXmm;
396 TypedEmitXmmAddr XmmAddr; 396 TypedEmitXmmAddr XmmAddr;
397 TypedEmitXmmImm XmmImm; 397 TypedEmitXmmImm XmmImm;
398 }; 398 };
399 399
400 // Cross Xmm/GPR cast instructions.
401 template <typename DReg_t, typename SReg_t> struct CastEmitterRegOp {
402 typedef void (AssemblerX86::*TypedEmitRegs)(Type, DReg_t, SReg_t);
403 typedef void (AssemblerX86::*TypedEmitAddr)(Type, DReg_t, const Address &);
404
405 TypedEmitRegs RegReg;
406 TypedEmitAddr RegAddr;
407 };
408
400 /* 409 /*
401 * Emit Machine Instructions. 410 * Emit Machine Instructions.
402 */ 411 */
403 void call(GPRRegister reg); 412 void call(GPRRegister reg);
404 void call(const Address &address); 413 void call(const Address &address);
405 void call(Label *label); 414 void call(Label *label);
406 void call(const ConstantRelocatable *label); 415 void call(const ConstantRelocatable *label);
407 416
408 static const intptr_t kCallExternalLabelSize = 5; 417 static const intptr_t kCallExternalLabelSize = 5;
409 418
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
530 void unpckhps(XmmRegister dst, XmmRegister src); 539 void unpckhps(XmmRegister dst, XmmRegister src);
531 void unpcklpd(XmmRegister dst, XmmRegister src); 540 void unpcklpd(XmmRegister dst, XmmRegister src);
532 void unpckhpd(XmmRegister dst, XmmRegister src); 541 void unpckhpd(XmmRegister dst, XmmRegister src);
533 542
534 void set1ps(XmmRegister dst, GPRRegister tmp, const Immediate &imm); 543 void set1ps(XmmRegister dst, GPRRegister tmp, const Immediate &imm);
535 void shufps(XmmRegister dst, XmmRegister src, const Immediate &mask); 544 void shufps(XmmRegister dst, XmmRegister src, const Immediate &mask);
536 545
537 void minpd(XmmRegister dst, XmmRegister src); 546 void minpd(XmmRegister dst, XmmRegister src);
538 void maxpd(XmmRegister dst, XmmRegister src); 547 void maxpd(XmmRegister dst, XmmRegister src);
539 void sqrtpd(XmmRegister dst); 548 void sqrtpd(XmmRegister dst);
540 void cvtps2pd(XmmRegister dst, XmmRegister src);
541 void cvtpd2ps(XmmRegister dst, XmmRegister src);
542 void shufpd(XmmRegister dst, XmmRegister src, const Immediate &mask); 549 void shufpd(XmmRegister dst, XmmRegister src, const Immediate &mask);
543 550
544 void cvtsi2ss(XmmRegister dst, GPRRegister src); 551 void cvtdq2ps(Type, XmmRegister dst, XmmRegister src);
545 void cvtsi2sd(XmmRegister dst, GPRRegister src); 552 void cvtdq2ps(Type, XmmRegister dst, const Address &src);
546 553
547 void cvtss2si(GPRRegister dst, XmmRegister src); 554 void cvttps2dq(Type, XmmRegister dst, XmmRegister src);
548 void cvtss2sd(XmmRegister dst, XmmRegister src); 555 void cvttps2dq(Type, XmmRegister dst, const Address &src);
549 556
550 void cvtsd2si(GPRRegister dst, XmmRegister src); 557 void cvtsi2ss(Type DestTy, XmmRegister dst, GPRRegister src);
551 void cvtsd2ss(XmmRegister dst, XmmRegister src); 558 void cvtsi2ss(Type DestTy, XmmRegister dst, const Address &src);
552 559
553 void cvttss2si(GPRRegister dst, XmmRegister src); 560 void cvtfloat2float(Type SrcTy, XmmRegister dst, XmmRegister src);
554 void cvttsd2si(GPRRegister dst, XmmRegister src); 561 void cvtfloat2float(Type SrcTy, XmmRegister dst, const Address &src);
555 562
556 void cvtdq2pd(XmmRegister dst, XmmRegister src); 563 void cvttss2si(Type SrcTy, GPRRegister dst, XmmRegister src);
564 void cvttss2si(Type SrcTy, GPRRegister dst, const Address &src);
557 565
558 void ucomiss(Type Ty, XmmRegister a, XmmRegister b); 566 void ucomiss(Type Ty, XmmRegister a, XmmRegister b);
559 void ucomiss(Type Ty, XmmRegister a, const Address &b); 567 void ucomiss(Type Ty, XmmRegister a, const Address &b);
560 568
561 void movmskpd(GPRRegister dst, XmmRegister src); 569 void movmskpd(GPRRegister dst, XmmRegister src);
562 void movmskps(GPRRegister dst, XmmRegister src); 570 void movmskps(GPRRegister dst, XmmRegister src);
563 571
564 void sqrtss(Type Ty, XmmRegister dst, const Address &src); 572 void sqrtss(Type Ty, XmmRegister dst, const Address &src);
565 void sqrtss(Type Ty, XmmRegister dst, XmmRegister src); 573 void sqrtss(Type Ty, XmmRegister dst, XmmRegister src);
566 574
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
806 inline void AssemblerX86::EmitFixup(AssemblerFixup *fixup) { 814 inline void AssemblerX86::EmitFixup(AssemblerFixup *fixup) {
807 buffer_.EmitFixup(fixup); 815 buffer_.EmitFixup(fixup);
808 } 816 }
809 817
810 inline void AssemblerX86::EmitOperandSizeOverride() { EmitUint8(0x66); } 818 inline void AssemblerX86::EmitOperandSizeOverride() { EmitUint8(0x66); }
811 819
812 } // end of namespace x86 820 } // end of namespace x86
813 } // end of namespace Ice 821 } // end of namespace Ice
814 822
815 #endif // SUBZERO_SRC_ASSEMBLER_IA32_H_ 823 #endif // SUBZERO_SRC_ASSEMBLER_IA32_H_
OLDNEW
« no previous file with comments | « src/IceTargetLoweringX8632.cpp ('k') | src/assembler_ia32.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698