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

Side by Side Diff: src/IceInstMIPS32.h

Issue 1975283002: Subzero, MIPS32: Implement logical instructions ashr, lshr, shl (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Created 4 years, 7 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 | « no previous file | src/IceInstMIPS32.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 //===- 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
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
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
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
OLDNEW
« no previous file with comments | « no previous file | src/IceInstMIPS32.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698