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

Side by Side Diff: src/IceAssemblerMIPS32.cpp

Issue 2350903002: Subzero, MIPS32: lowerUnreachable (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Created 4 years, 3 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
OLDNEW
1 //===- subzero/src/IceAssemblerMIPS32.cpp - MIPS32 Assembler --------------===// 1 //===- subzero/src/IceAssemblerMIPS32.cpp - MIPS32 Assembler --------------===//
2 // 2 //
3 // The Subzero Code Generator 3 // The Subzero Code Generator
4 // 4 //
5 // This file is distributed under the University of Illinois Open Source 5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details. 6 // License. See LICENSE.TXT for details.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 /// 9 ///
10 /// \file 10 /// \file
(...skipping 635 matching lines...) Expand 10 before | Expand all | Expand 10 after
646 } 646 }
647 case IceType_f64: { 647 case IceType_f64: {
648 static constexpr IValueT Opcode = 0xF4000000; 648 static constexpr IValueT Opcode = 0xF4000000;
649 emitFtRsImm16(Opcode, OpRt, OpBase, Offset, "sdc1"); 649 emitFtRsImm16(Opcode, OpRt, OpBase, Offset, "sdc1");
650 break; 650 break;
651 } 651 }
652 default: { UnimplementedError(getFlags()); } 652 default: { UnimplementedError(getFlags()); }
653 } 653 }
654 } 654 }
655 655
656 void AssemblerMIPS32::teq(const Operand *OpRs, const Operand *OpRt,
657 const uint32_t TrapCode) {
658 IValueT Opcode = 0x00000034;
659 const IValueT Rs = encodeGPRegister(OpRs, "Rs", "teq");
660 const IValueT Rt = encodeGPRegister(OpRt, "Rt", "teq");
661 Opcode |= TrapCode << 6;
662 Opcode |= Rt << 16;
663 Opcode |= Rs << 21;
664 emitInst(Opcode);
665 }
666
656 void AssemblerMIPS32::trunc_l_d(const Operand *OpFd, const Operand *OpFs) { 667 void AssemblerMIPS32::trunc_l_d(const Operand *OpFd, const Operand *OpFs) {
657 static constexpr IValueT Opcode = 0x4400000D; 668 static constexpr IValueT Opcode = 0x4400000D;
658 emitCOP1FmtFsFd(Opcode, Long, OpFd, OpFs, "trunc.l.d"); 669 emitCOP1FmtFsFd(Opcode, Long, OpFd, OpFs, "trunc.l.d");
659 } 670 }
660 671
661 void AssemblerMIPS32::trunc_l_s(const Operand *OpFd, const Operand *OpFs) { 672 void AssemblerMIPS32::trunc_l_s(const Operand *OpFd, const Operand *OpFs) {
662 static constexpr IValueT Opcode = 0x4400000D; 673 static constexpr IValueT Opcode = 0x4400000D;
663 emitCOP1FmtFsFd(Opcode, Long, OpFd, OpFs, "trunc.l.s"); 674 emitCOP1FmtFsFd(Opcode, Long, OpFd, OpFs, "trunc.l.s");
664 } 675 }
665 676
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
754 emitBr(Cond, OpRs, OpRtNone, Dest); 765 emitBr(Cond, OpRs, OpRtNone, Dest);
755 return; 766 return;
756 } 767 }
757 const IOffsetT Position = Buffer.size(); 768 const IOffsetT Position = Buffer.size();
758 emitBr(Cond, OpRs, OpRtNone, TargetLabel->getEncodedPosition()); 769 emitBr(Cond, OpRs, OpRtNone, TargetLabel->getEncodedPosition());
759 TargetLabel->linkTo(*this, Position); 770 TargetLabel->linkTo(*this, Position);
760 } 771 }
761 772
762 } // end of namespace MIPS32 773 } // end of namespace MIPS32
763 } // end of namespace Ice 774 } // end of namespace Ice
OLDNEW
« no previous file with comments | « src/IceAssemblerMIPS32.h ('k') | src/IceInstMIPS32.h » ('j') | src/IceInstMIPS32.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698