Index: src/s390/macro-assembler-s390.cc |
diff --git a/src/s390/macro-assembler-s390.cc b/src/s390/macro-assembler-s390.cc |
index 47dd9a6136135f37f12a1fb784f5e3fabffa2bbc..f4fae498b40535a1594d69213d1af14fd7eafd50 100644 |
--- a/src/s390/macro-assembler-s390.cc |
+++ b/src/s390/macro-assembler-s390.cc |
@@ -4585,12 +4585,22 @@ void MacroAssembler::XorP(Register dst, Register src, const Operand& opnd) { |
XorP(dst, opnd); |
} |
-void MacroAssembler::NotP(Register dst) { |
-#if V8_TARGET_ARCH_S390X |
+void MacroAssembler::Not32(Register dst, Register src) { |
+ if (!src.is(no_reg) && !src.is(dst)) lr(dst, src); |
+ xilf(dst, Operand(0xFFFFFFFF)); |
+} |
+ |
+void MacroAssembler::Not64(Register dst, Register src) { |
+ if (!src.is(no_reg) && !src.is(dst)) lgr(dst, src); |
xihf(dst, Operand(0xFFFFFFFF)); |
xilf(dst, Operand(0xFFFFFFFF)); |
+} |
+ |
+void MacroAssembler::NotP(Register dst, Register src) { |
+#if V8_TARGET_ARCH_S390X |
+ Not64(dst, src); |
#else |
- XorP(dst, Operand(0xFFFFFFFF)); |
+ Not32(dst, src); |
#endif |
} |