OLD | NEW |
---|---|
1 //===- subzero/src/IceInstMIPS32.h - MIPS32 machine instrs --*- C++ -*-=== // | 1 //===- subzero/src/IceInstMIPS32.h - MIPS32 machine instrs --*- C++ -*-=== // |
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 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
132 Mov, // actually a pseudo op for addi rd, rs, 0 | 132 Mov, // actually a pseudo op for addi rd, rs, 0 |
133 Mthi, | 133 Mthi, |
134 Mtlo, | 134 Mtlo, |
135 Mul, | 135 Mul, |
136 Mult, | 136 Mult, |
137 Multu, | 137 Multu, |
138 Or, | 138 Or, |
139 Ori, | 139 Ori, |
140 Ret, | 140 Ret, |
141 Sll, | 141 Sll, |
142 Sllv, | |
142 Slt, | 143 Slt, |
143 Slti, | 144 Slti, |
144 Sltiu, | 145 Sltiu, |
145 Sltu, | 146 Sltu, |
146 Sra, | 147 Sra, |
148 Srav, | |
149 Srl, | |
Jim Stichnoth
2016/05/17 20:15:00
Just curious - I didn't see any actual uses of Srl
| |
150 Srlv, | |
147 Sub, | 151 Sub, |
148 Subu, | 152 Subu, |
149 Xor, | 153 Xor, |
150 Xori | 154 Xori |
151 }; | 155 }; |
152 | 156 |
153 static const char *getWidthString(Type Ty); | 157 static const char *getWidthString(Type Ty); |
154 | 158 |
155 void dump(const Cfg *Func) const override; | 159 void dump(const Cfg *Func) const override; |
156 | 160 |
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
471 using InstMIPS32Mfhi = InstMIPS32UnaryopGPR<InstMIPS32::Mfhi>; | 475 using InstMIPS32Mfhi = InstMIPS32UnaryopGPR<InstMIPS32::Mfhi>; |
472 using InstMIPS32Mflo = InstMIPS32UnaryopGPR<InstMIPS32::Mflo>; | 476 using InstMIPS32Mflo = InstMIPS32UnaryopGPR<InstMIPS32::Mflo>; |
473 using InstMIPS32Mthi = InstMIPS32UnaryopGPR<InstMIPS32::Mthi>; | 477 using InstMIPS32Mthi = InstMIPS32UnaryopGPR<InstMIPS32::Mthi>; |
474 using InstMIPS32Mtlo = InstMIPS32UnaryopGPR<InstMIPS32::Mtlo>; | 478 using InstMIPS32Mtlo = InstMIPS32UnaryopGPR<InstMIPS32::Mtlo>; |
475 using InstMIPS32Mul = InstMIPS32ThreeAddrGPR<InstMIPS32::Mul>; | 479 using InstMIPS32Mul = InstMIPS32ThreeAddrGPR<InstMIPS32::Mul>; |
476 using InstMIPS32Mult = InstMIPS32ThreeAddrGPR<InstMIPS32::Mult>; | 480 using InstMIPS32Mult = InstMIPS32ThreeAddrGPR<InstMIPS32::Mult>; |
477 using InstMIPS32Multu = InstMIPS32ThreeAddrGPR<InstMIPS32::Multu>; | 481 using InstMIPS32Multu = InstMIPS32ThreeAddrGPR<InstMIPS32::Multu>; |
478 using InstMIPS32Or = InstMIPS32ThreeAddrGPR<InstMIPS32::Or>; | 482 using InstMIPS32Or = InstMIPS32ThreeAddrGPR<InstMIPS32::Or>; |
479 using InstMIPS32Ori = InstMIPS32Imm16<InstMIPS32::Ori>; | 483 using InstMIPS32Ori = InstMIPS32Imm16<InstMIPS32::Ori>; |
480 using InstMIPS32Sll = InstMIPS32Imm16<InstMIPS32::Sll>; | 484 using InstMIPS32Sll = InstMIPS32Imm16<InstMIPS32::Sll>; |
485 using InstMIPS32Sllv = InstMIPS32ThreeAddrGPR<InstMIPS32::Sllv>; | |
481 using InstMIPS32Slt = InstMIPS32ThreeAddrGPR<InstMIPS32::Slt>; | 486 using InstMIPS32Slt = InstMIPS32ThreeAddrGPR<InstMIPS32::Slt>; |
482 using InstMIPS32Slti = InstMIPS32Imm16<InstMIPS32::Slti>; | 487 using InstMIPS32Slti = InstMIPS32Imm16<InstMIPS32::Slti>; |
483 using InstMIPS32Sltiu = InstMIPS32Imm16<InstMIPS32::Sltiu>; | 488 using InstMIPS32Sltiu = InstMIPS32Imm16<InstMIPS32::Sltiu>; |
484 using InstMIPS32Sltu = InstMIPS32ThreeAddrGPR<InstMIPS32::Sltu>; | 489 using InstMIPS32Sltu = InstMIPS32ThreeAddrGPR<InstMIPS32::Sltu>; |
485 using InstMIPS32Sra = InstMIPS32Imm16<InstMIPS32::Sra>; | 490 using InstMIPS32Sra = InstMIPS32Imm16<InstMIPS32::Sra>; |
491 using InstMIPS32Srav = InstMIPS32ThreeAddrGPR<InstMIPS32::Srav>; | |
492 using InstMIPS32Srl = InstMIPS32Imm16<InstMIPS32::Srl>; | |
493 using InstMIPS32Srlv = InstMIPS32ThreeAddrGPR<InstMIPS32::Srlv>; | |
486 using InstMIPS32Sub = InstMIPS32ThreeAddrGPR<InstMIPS32::Sub>; | 494 using InstMIPS32Sub = InstMIPS32ThreeAddrGPR<InstMIPS32::Sub>; |
487 using InstMIPS32Subu = InstMIPS32ThreeAddrGPR<InstMIPS32::Subu>; | 495 using InstMIPS32Subu = InstMIPS32ThreeAddrGPR<InstMIPS32::Subu>; |
488 using InstMIPS32Ori = InstMIPS32Imm16<InstMIPS32::Ori>; | 496 using InstMIPS32Ori = InstMIPS32Imm16<InstMIPS32::Ori>; |
489 using InstMIPS32Xor = InstMIPS32ThreeAddrGPR<InstMIPS32::Xor>; | 497 using InstMIPS32Xor = InstMIPS32ThreeAddrGPR<InstMIPS32::Xor>; |
490 using InstMIPS32Xori = InstMIPS32Imm16<InstMIPS32::Xori>; | 498 using InstMIPS32Xori = InstMIPS32Imm16<InstMIPS32::Xori>; |
491 | 499 |
492 /// Handles (some of) vmov's various formats. | 500 /// Handles (some of) vmov's various formats. |
493 class InstMIPS32Mov final : public InstMIPS32 { | 501 class InstMIPS32Mov final : public InstMIPS32 { |
494 InstMIPS32Mov() = delete; | 502 InstMIPS32Mov() = delete; |
495 InstMIPS32Mov(const InstMIPS32Mov &) = delete; | 503 InstMIPS32Mov(const InstMIPS32Mov &) = delete; |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
536 template <> void InstMIPS32Mfhi::emit(const Cfg *Func) const; | 544 template <> void InstMIPS32Mfhi::emit(const Cfg *Func) const; |
537 template <> void InstMIPS32Mtlo::emit(const Cfg *Func) const; | 545 template <> void InstMIPS32Mtlo::emit(const Cfg *Func) const; |
538 template <> void InstMIPS32Mthi::emit(const Cfg *Func) const; | 546 template <> void InstMIPS32Mthi::emit(const Cfg *Func) const; |
539 template <> void InstMIPS32Mult::emit(const Cfg *Func) const; | 547 template <> void InstMIPS32Mult::emit(const Cfg *Func) const; |
540 template <> void InstMIPS32Multu::emit(const Cfg *Func) const; | 548 template <> void InstMIPS32Multu::emit(const Cfg *Func) const; |
541 | 549 |
542 } // end of namespace MIPS32 | 550 } // end of namespace MIPS32 |
543 } // end of namespace Ice | 551 } // end of namespace Ice |
544 | 552 |
545 #endif // SUBZERO_SRC_ICEINSTMIPS32_H | 553 #endif // SUBZERO_SRC_ICEINSTMIPS32_H |
OLD | NEW |