Index: src/s390/macro-assembler-s390.cc |
diff --git a/src/s390/macro-assembler-s390.cc b/src/s390/macro-assembler-s390.cc |
index f9f7c52bb9e1295f48f9c5614a68cc1cd4dccb65..d5bc55e633c73397b75d963e74a366dc08d840ef 100644 |
--- a/src/s390/macro-assembler-s390.cc |
+++ b/src/s390/macro-assembler-s390.cc |
@@ -500,8 +500,8 @@ void MacroAssembler::RecordWriteCodeEntryField(Register js_function, |
// Save caller-saved registers. js_function and code_entry are in the |
// caller-saved register list. |
DCHECK(kJSCallerSaved & js_function.bit()); |
- DCHECK(kJSCallerSaved & code_entry.bit()); |
- MultiPush(kJSCallerSaved | r14.bit()); |
+ // DCHECK(kJSCallerSaved & code_entry.bit()); |
+ MultiPush(kJSCallerSaved | code_entry.bit() | r14.bit()); |
int argument_count = 3; |
PrepareCallCFunction(argument_count, code_entry); |
@@ -519,7 +519,7 @@ void MacroAssembler::RecordWriteCodeEntryField(Register js_function, |
} |
// Restore caller-saved registers (including js_function and code_entry). |
- MultiPop(kJSCallerSaved | r14.bit()); |
+ MultiPop(kJSCallerSaved | code_entry.bit() | r14.bit()); |
bind(&done); |
} |
@@ -4977,6 +4977,14 @@ void MacroAssembler::LoadB(Register dst, const MemOperand& mem) { |
#endif |
} |
+void MacroAssembler::LoadB(Register dst, Register src) { |
+#if V8_TARGET_ARCH_S390X |
+ lgbr(dst, src); |
+#else |
+ lbr(dst, src); |
+#endif |
+} |
+ |
void MacroAssembler::LoadlB(Register dst, const MemOperand& mem) { |
#if V8_TARGET_ARCH_S390X |
llgc(dst, mem); |