Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(19)

Unified Diff: src/a64/lithium-codegen-a64.cc

Issue 151363002: A64: a smi can hold any signed integer, so we don't need a deferred tag method for it (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/a64
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/a64/lithium-codegen-a64.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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:
« no previous file with comments | « src/a64/lithium-codegen-a64.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698