Index: src/ppc/assembler-ppc.cc |
diff --git a/src/ppc/assembler-ppc.cc b/src/ppc/assembler-ppc.cc |
index b4e29ae753e2c940527db6be0a24787ad9eaeced..147fb59aaea0a9387bc1d371a411a21f8a593261 100644 |
--- a/src/ppc/assembler-ppc.cc |
+++ b/src/ppc/assembler-ppc.cc |
@@ -1844,7 +1844,10 @@ void Assembler::mtxer(Register src) { |
} |
-void Assembler::mcrfs(int bf, int bfa) { |
+void Assembler::mcrfs(CRegister cr, FPSCRBit bit) { |
+ DCHECK(static_cast<int>(bit) < 32); |
+ int bf = cr.code(); |
+ int bfa = bit / CRWIDTH; |
emit(EXT4 | MCRFS | bf * B23 | bfa * B18); |
} |
@@ -2219,6 +2222,20 @@ void Assembler::fneg(const DoubleRegister frt, const DoubleRegister frb, |
} |
+void Assembler::mtfsb0(FPSCRBit bit, RCBit rc) { |
+ DCHECK(static_cast<int>(bit) < 32); |
+ int bt = bit; |
+ emit(EXT4 | MTFSB0 | bt * B21 | rc); |
+} |
+ |
+ |
+void Assembler::mtfsb1(FPSCRBit bit, RCBit rc) { |
+ DCHECK(static_cast<int>(bit) < 32); |
+ int bt = bit; |
+ emit(EXT4 | MTFSB1 | bt * B21 | rc); |
+} |
+ |
+ |
void Assembler::mtfsfi(int bf, int immediate, RCBit rc) { |
emit(EXT4 | MTFSFI | bf * B23 | immediate * B12 | rc); |
} |