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

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

Issue 132373011: A64: Synchronize with r17635. (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/a64
Patch Set: Created 6 years, 10 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-a64.cc ('k') | src/a64/macro-assembler-a64.h » ('j') | 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 0316c426f4e8f89c226f89421a95c3c589b9ff2b..3a58f021e4b7c1115906e7957105b01a27e4f62d 100644
--- a/src/a64/lithium-codegen-a64.cc
+++ b/src/a64/lithium-codegen-a64.cc
@@ -914,6 +914,7 @@ void LCodeGen::Deoptimize(LEnvironment* environment,
}
ASSERT(FLAG_deopt_every_n_times < 2); // Other values not supported on A64.
+ TODO_UNIMPLEMENTED("Support for FLAG_deopt_every_n_times >= 2.");
if (FLAG_deopt_every_n_times == 1 &&
!info()->IsStub() &&
info()->opt_count() == id) {
@@ -2612,6 +2613,11 @@ void LCodeGen::DoDrop(LDrop* instr) {
}
+void LCodeGen::DoDummy(LDummy* instr) {
+ // Nothing to see here, move on!
+}
+
+
void LCodeGen::DoDummyUse(LDummyUse* instr) {
// Nothing to see here, move on!
}
@@ -3427,12 +3433,7 @@ void LCodeGen::DoLoadNamedField(LLoadNamedField* instr) {
if (access.IsExternalMemory()) {
Register result = ToRegister(instr->result());
- // TODO(all): Does this need an Integer32 accessor?
- if (access.representation().IsByte()) {
- __ Ldrb(result, MemOperand(object, offset));
- } else {
- __ Ldr(result, MemOperand(object, offset));
- }
+ __ Load(result, MemOperand(object, offset), access.representation());
return;
}
@@ -3451,13 +3452,7 @@ void LCodeGen::DoLoadNamedField(LLoadNamedField* instr) {
__ Ldr(result, FieldMemOperand(object, JSObject::kPropertiesOffset));
source = result;
}
- if (access.representation().IsByte()) {
- __ Ldrb(result, FieldMemOperand(source, offset));
- } else if (access.representation().IsInteger32()) {
- __ Ldr(result.W(), FieldMemOperand(source, offset));
- } else {
- __ Ldr(result, FieldMemOperand(source, offset));
- }
+ __ Load(result, FieldMemOperand(source, offset), access.representation());
}
@@ -4879,11 +4874,7 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) {
if (access.IsExternalMemory()) {
Register value = ToRegister(instr->value());
- if (representation.IsByte()) {
- __ Strb(value, MemOperand(object, offset));
- } else {
- __ Str(value, MemOperand(object, offset));
- }
+ __ Store(value, MemOperand(object, offset), representation);
return;
}
@@ -4933,13 +4924,7 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) {
__ Ldr(temp0, FieldMemOperand(object, JSObject::kPropertiesOffset));
destination = temp0;
}
- if (representation.IsByte()) {
- __ Strb(value, FieldMemOperand(destination, offset));
- } else if (access.representation().IsInteger32()) {
- __ Str(value.W(), FieldMemOperand(destination, offset));
- } else {
- __ Str(value, FieldMemOperand(destination, offset));
- }
+ __ Store(value, FieldMemOperand(destination, offset), representation);
if (instr->hydrogen()->NeedsWriteBarrier()) {
__ RecordWriteField(destination,
offset,
@@ -4969,9 +4954,17 @@ void LCodeGen::DoStoreNamedGeneric(LStoreNamedGeneric* instr) {
void LCodeGen::DoStringAdd(LStringAdd* instr) {
Register left = ToRegister(instr->left());
Register right = ToRegister(instr->right());
- __ Push(left, right);
- StringAddStub stub(instr->hydrogen()->flags());
- CallCode(stub.GetCode(isolate()), RelocInfo::CODE_TARGET, instr);
+ if (FLAG_new_string_add) {
+ ASSERT(left.Is(x1));
+ ASSERT(right.Is(x0));
+ NewStringAddStub stub(instr->hydrogen()->flags(),
+ isolate()->heap()->GetPretenureMode());
+ CallCode(stub.GetCode(isolate()), RelocInfo::CODE_TARGET, instr);
+ } else {
+ __ Push(left, right);
+ StringAddStub stub(instr->hydrogen()->flags());
+ CallCode(stub.GetCode(isolate()), RelocInfo::CODE_TARGET, instr);
+ }
}
« no previous file with comments | « src/a64/lithium-a64.cc ('k') | src/a64/macro-assembler-a64.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698