Chromium Code Reviews| Index: src/IceAssemblerMIPS32.h |
| diff --git a/src/IceAssemblerMIPS32.h b/src/IceAssemblerMIPS32.h |
| index eefb1b2004e7f0e55c73013bba50967dd4b17d15..8ce8d94f9b9f4a2a4c881c835cade1098dcb5547 100644 |
| --- a/src/IceAssemblerMIPS32.h |
| +++ b/src/IceAssemblerMIPS32.h |
| @@ -27,6 +27,13 @@ namespace MIPS32 { |
| using IValueT = uint32_t; |
| using IOffsetT = int32_t; |
| +enum FPInstDataFormat { |
| + SinglePrecision = 16, |
| + DoublePrecision = 17, |
| + Word = 20, |
| + Long = 21 |
| +}; |
| + |
| class AssemblerMIPS32 : public Assembler { |
| AssemblerMIPS32(const AssemblerMIPS32 &) = delete; |
| AssemblerMIPS32 &operator=(const AssemblerMIPS32 &) = delete; |
| @@ -56,15 +63,38 @@ public: |
| void emitRtRsImm16(IValueT Opcode, const Operand *OpRt, const Operand *OpRs, |
| const uint32_t Imm, const char *InsnName); |
|
Jim Stichnoth
2016/09/15 04:53:45
"const uint32_t" is kind of odd as a function argu
obucinac
2016/09/15 13:35:06
I dont have the opinion on this, I was just follow
|
| + void emitFtRsImm16(IValueT Opcode, const Operand *OpFt, const Operand *OpRs, |
| + const uint32_t Imm, const char *InsnName); |
| + |
| void emitRdRtSa(IValueT Opcode, const Operand *OpRd, const Operand *OpRt, |
| const uint32_t Sa, const char *InsnName); |
| void emitRdRsRt(IValueT Opcode, const Operand *OpRd, const Operand *OpRs, |
| const Operand *OpRt, const char *InsnName); |
| + void emitFPFormatFtFsFd(IValueT Opcode, FPInstDataFormat Format, |
| + const Operand *OpFd, const Operand *OpFs, |
| + const Operand *OpFt, const char *InsnName); |
| + |
| void emitBr(const CondMIPS32::Cond Cond, const Operand *OpRs, |
| const Operand *OpRt, IOffsetT Offset); |
| + void add_d(const Operand *OpFt, const Operand *OpFs, const Operand *OpFd); |
| + |
| + void add_s(const Operand *OpFt, const Operand *OpFs, const Operand *OpFd); |
| + |
| + void div_d(const Operand *OpFt, const Operand *OpFs, const Operand *OpFd); |
| + |
| + void div_s(const Operand *OpFt, const Operand *OpFs, const Operand *OpFd); |
| + |
| + void mul_d(const Operand *OpFt, const Operand *OpFs, const Operand *OpFd); |
| + |
| + void mul_s(const Operand *OpFt, const Operand *OpFs, const Operand *OpFd); |
| + |
| + void sub_d(const Operand *OpFt, const Operand *OpFs, const Operand *OpFd); |
| + |
| + void sub_s(const Operand *OpFt, const Operand *OpFs, const Operand *OpFd); |
| + |
| void addiu(const Operand *OpRt, const Operand *OpRs, const uint32_t Imm); |
| void slti(const Operand *OpRt, const Operand *OpRs, const uint32_t Imm); |