| Index: src/a64/lithium-codegen-a64.cc
|
| diff --git a/src/a64/lithium-codegen-a64.cc b/src/a64/lithium-codegen-a64.cc
|
| index c0649f1698a3db51d114dc721ff2137a88e5f1a1..ed2f08f884a873d0e1938ab800de6ea683e5f5d3 100644
|
| --- a/src/a64/lithium-codegen-a64.cc
|
| +++ b/src/a64/lithium-codegen-a64.cc
|
| @@ -4321,11 +4321,10 @@ void LCodeGen::DoNumberTagD(LNumberTagD* instr) {
|
| }
|
|
|
|
|
| -void LCodeGen::DoDeferredNumberTagI(LInstruction* instr,
|
| +void LCodeGen::DoDeferredNumberTagU(LInstruction* instr,
|
| LOperand* value,
|
| LOperand* temp1,
|
| - LOperand* temp2,
|
| - IntegerSignedness signedness) {
|
| + LOperand* temp2) {
|
| Label slow, convert_and_store;
|
| Register src = ToRegister32(value);
|
| Register dst = ToRegister(instr->result());
|
| @@ -4363,12 +4362,7 @@ void LCodeGen::DoDeferredNumberTagI(LInstruction* instr,
|
| // number.
|
| __ Bind(&convert_and_store);
|
| DoubleRegister dbl_scratch = double_scratch();
|
| - if (signedness == SIGNED_INT32) {
|
| - ASM_UNIMPLEMENTED_BREAK("DeferredNumberTagI - signed int32 case.");
|
| - } else {
|
| - ASSERT(signedness == UNSIGNED_INT32);
|
| - __ Ucvtf(dbl_scratch, src);
|
| - }
|
| + __ Ucvtf(dbl_scratch, src);
|
| __ Str(dbl_scratch, FieldMemOperand(dst, HeapNumber::kValueOffset));
|
| }
|
|
|
| @@ -4379,11 +4373,10 @@ void LCodeGen::DoNumberTagU(LNumberTagU* instr) {
|
| DeferredNumberTagU(LCodeGen* codegen, LNumberTagU* instr)
|
| : LDeferredCode(codegen), instr_(instr) { }
|
| virtual void Generate() {
|
| - codegen()->DoDeferredNumberTagI(instr_,
|
| + codegen()->DoDeferredNumberTagU(instr_,
|
| instr_->value(),
|
| instr_->temp1(),
|
| - instr_->temp2(),
|
| - UNSIGNED_INT32);
|
| + instr_->temp2());
|
| }
|
| virtual LInstruction* instr() { return instr_; }
|
| private:
|
|
|