Index: src/s390/assembler-s390.cc |
diff --git a/src/s390/assembler-s390.cc b/src/s390/assembler-s390.cc |
index 0c5f79cbf393d0122dfa4ab2e498aa8e73f78883..e4d63a855d64852f10160a67d2b9f99ef6daeace 100644 |
--- a/src/s390/assembler-s390.cc |
+++ b/src/s390/assembler-s390.cc |
@@ -2336,12 +2336,30 @@ void Assembler::sllg(Register r1, Register r3, const Operand& opnd) { |
rsy_form(SLLG, r1, r3, r0, opnd.immediate()); |
} |
+// Shift Left Double Logical (64) |
+void Assembler::sldl(Register r1, Register b2, const Operand& opnd) { |
+ DCHECK(r1.code() % 2 == 0); |
+ rs_form(SLDL, r1, r0, b2, opnd.immediate()); |
+} |
+ |
// Shift Right Single Logical (32) |
void Assembler::srl(Register r1, Register opnd) { |
DCHECK(!opnd.is(r0)); |
rs_form(SRL, r1, r0, opnd, 0); |
} |
+// Shift Right Double Arith (64) |
+void Assembler::srda(Register r1, Register b2, const Operand& opnd) { |
+ DCHECK(r1.code() % 2 == 0); |
+ rs_form(SRDA, r1, r0, b2, opnd.immediate()); |
+} |
+ |
+// Shift Right Double Logical (64) |
+void Assembler::srdl(Register r1, Register b2, const Operand& opnd) { |
+ DCHECK(r1.code() % 2 == 0); |
+ rs_form(SRDL, r1, r0, b2, opnd.immediate()); |
+} |
+ |
// Shift Right Single Logical (32) |
void Assembler::srl(Register r1, const Operand& opnd) { |
rs_form(SRL, r1, r0, r0, opnd.immediate()); |