| Index: src/s390/macro-assembler-s390.cc
|
| diff --git a/src/s390/macro-assembler-s390.cc b/src/s390/macro-assembler-s390.cc
|
| index 6ae50eea082f3505172048aab719ab5a307aaca9..8465fd71c618d7ec4f4b462b372db3856aa6cf53 100644
|
| --- a/src/s390/macro-assembler-s390.cc
|
| +++ b/src/s390/macro-assembler-s390.cc
|
| @@ -154,7 +154,14 @@ void MacroAssembler::Call(Handle<Code> code, RelocInfo::Mode rmode,
|
|
|
| void MacroAssembler::Drop(int count) {
|
| if (count > 0) {
|
| - la(sp, MemOperand(sp, count * kPointerSize));
|
| + int total = count * kPointerSize;
|
| + if (is_uint12(total)) {
|
| + la(sp, MemOperand(sp, total));
|
| + } else if (is_int20(total)) {
|
| + lay(sp, MemOperand(sp, total));
|
| + } else {
|
| + AddP(sp, Operand(total));
|
| + }
|
| }
|
| }
|
|
|
|
|