Revision: 18994
Author: [email protected]
Date: Fri Jan 31 14:05:55 2014 UTC
Log: A64: a smi can hold any signed integer, so we don't need a
deferred tag method for it
BUG=none
[email protected], [email protected]
LOG=y
Review URL: https://codereview.chromium.org/151363002
http://code.google.com/p/v8/source/detail?r=18994
Modified:
/branches/experimental/a64/src/a64/lithium-codegen-a64.cc
/branches/experimental/a64/src/a64/lithium-codegen-a64.h
=======================================
--- /branches/experimental/a64/src/a64/lithium-codegen-a64.cc Fri Jan 31
13:49:43 2014 UTC
+++ /branches/experimental/a64/src/a64/lithium-codegen-a64.cc Fri Jan 31
14:05:55 2014 UTC
@@ -4333,11 +4333,10 @@
}
-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());
@@ -4375,12 +4374,7 @@
// 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));
}
@@ -4391,11 +4385,10 @@
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:
=======================================
--- /branches/experimental/a64/src/a64/lithium-codegen-a64.h Fri Jan 31
13:49:43 2014 UTC
+++ /branches/experimental/a64/src/a64/lithium-codegen-a64.h Fri Jan 31
14:05:55 2014 UTC
@@ -166,11 +166,10 @@
Label* allocation_entry);
enum IntegerSignedness { SIGNED_INT32, UNSIGNED_INT32 };
- void DoDeferredNumberTagI(LInstruction* instr,
+ void DoDeferredNumberTagU(LInstruction* instr,
LOperand* value,
LOperand* temp1,
- LOperand* temp2,
- IntegerSignedness signedness);
+ LOperand* temp2);
void DoDeferredTaggedToI(LTaggedToI* instr,
LOperand* value,
LOperand* temp1,
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.