| Index: src/s390/macro-assembler-s390.cc
|
| diff --git a/src/s390/macro-assembler-s390.cc b/src/s390/macro-assembler-s390.cc
|
| index 55057e05a673c9461372af164019cdf4c60d1f99..852a1c5ae9c3971a78b161e1be46d6bc09c798a4 100644
|
| --- a/src/s390/macro-assembler-s390.cc
|
| +++ b/src/s390/macro-assembler-s390.cc
|
| @@ -656,12 +656,12 @@ void MacroAssembler::ConvertUnsignedIntToDouble(Register src,
|
| }
|
|
|
| void MacroAssembler::ConvertIntToFloat(Register src, DoubleRegister dst) {
|
| - cefbr(dst, src);
|
| + cefbr(Condition(4), dst, src);
|
| }
|
|
|
| void MacroAssembler::ConvertUnsignedIntToFloat(Register src,
|
| DoubleRegister dst) {
|
| - celfbr(Condition(0), Condition(0), dst, src);
|
| + celfbr(Condition(4), Condition(0), dst, src);
|
| }
|
|
|
| #if V8_TARGET_ARCH_S390X
|
| @@ -760,7 +760,7 @@ void MacroAssembler::ConvertFloat32ToInt32(const DoubleRegister double_input,
|
| m = Condition(5);
|
| break;
|
| case kRoundToNearest:
|
| - UNIMPLEMENTED();
|
| + m = Condition(4);
|
| break;
|
| case kRoundToPlusInf:
|
| m = Condition(6);
|
| @@ -773,6 +773,10 @@ void MacroAssembler::ConvertFloat32ToInt32(const DoubleRegister double_input,
|
| break;
|
| }
|
| cfebr(m, dst, double_input);
|
| + Label done;
|
| + b(Condition(0xe), &done, Label::kNear); // special case
|
| + LoadImmP(dst, Operand::Zero());
|
| + bind(&done);
|
| ldgr(double_dst, dst);
|
| }
|
|
|
| @@ -798,6 +802,10 @@ void MacroAssembler::ConvertFloat32ToUnsignedInt32(
|
| break;
|
| }
|
| clfebr(m, Condition(0), dst, double_input);
|
| + Label done;
|
| + b(Condition(0xe), &done, Label::kNear); // special case
|
| + LoadImmP(dst, Operand::Zero());
|
| + bind(&done);
|
| ldgr(double_dst, dst);
|
| }
|
|
|
|
|