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

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

Issue 12314155: Allow direct allocation in old pointer space. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 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
Index: src/ia32/lithium-codegen-ia32.cc
diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc
index ff5403ad7de057e95ad16cbb7bf4b09d694b3457..378a887a52c6e226e6d6df3b24b4440fed1eaad3 100644
--- a/src/ia32/lithium-codegen-ia32.cc
+++ b/src/ia32/lithium-codegen-ia32.cc
@@ -5423,12 +5423,8 @@ void LCodeGen::DoAllocateObject(LAllocateObject* instr) {
// the constructor's prototype changes, but instance size and property
// counts remain unchanged (if slack tracking finished).
ASSERT(!constructor->shared()->IsInobjectSlackTrackingInProgress());
- __ AllocateInNewSpace(instance_size,
- result,
- no_reg,
- scratch,
- deferred->entry(),
- TAG_OBJECT);
+ __ Allocate(instance_size, result, no_reg, scratch, deferred->entry(),
+ TAG_OBJECT, MacroAssembler::NEW_SPACE);
__ bind(deferred->exit());
if (FLAG_debug_code) {
@@ -5518,7 +5514,13 @@ void LCodeGen::DoAllocate(LAllocate* instr) {
}
if (instr->size()->IsConstantOperand()) {
int32_t size = ToInteger32(LConstantOperand::cast(instr->size()));
- __ AllocateInNewSpace(size, result, temp, no_reg, deferred->entry(), flags);
+ if (instr->hydrogen()->CanAllocateInOldPointerSpace()) {
+ __ Allocate(size, result, temp, no_reg, deferred->entry(), flags,
+ MacroAssembler::OLD_POINTER_SPACE);
mvstanton 2013/03/05 09:35:57 Maybe it's nice to have a variable for the space t
danno 2013/03/05 12:18:18 +1 On 2013/03/05 09:35:57, mvstanton wrote:
Hannes Payer (out of office) 2013/03/11 17:16:31 after re-factoring not needed anymore.
Hannes Payer (out of office) 2013/03/11 17:16:31 Done.
+ } else {
+ __ Allocate(size, result, temp, no_reg, deferred->entry(), flags,
+ MacroAssembler::NEW_SPACE);
+ }
} else {
Register size = ToRegister(instr->size());
__ AllocateInNewSpace(size, result, temp, no_reg, deferred->entry(), flags);
@@ -5757,7 +5759,8 @@ void LCodeGen::DoFastLiteral(LFastLiteral* instr) {
// Allocate all objects that are part of the literal in one big
// allocation. This avoids multiple limit checks.
Label allocated, runtime_allocate;
- __ AllocateInNewSpace(size, eax, ecx, edx, &runtime_allocate, TAG_OBJECT);
+ __ Allocate(size, eax, ecx, edx, &runtime_allocate, TAG_OBJECT,
+ MacroAssembler::NEW_SPACE);
__ jmp(&allocated);
__ bind(&runtime_allocate);
@@ -5847,7 +5850,8 @@ void LCodeGen::DoRegExpLiteral(LRegExpLiteral* instr) {
__ bind(&materialized);
int size = JSRegExp::kSize + JSRegExp::kInObjectFieldCount * kPointerSize;
Label allocated, runtime_allocate;
- __ AllocateInNewSpace(size, eax, ecx, edx, &runtime_allocate, TAG_OBJECT);
+ __ Allocate(size, eax, ecx, edx, &runtime_allocate, TAG_OBJECT,
+ MacroAssembler::NEW_SPACE);
__ jmp(&allocated);
__ bind(&runtime_allocate);

Powered by Google App Engine
This is Rietveld 408576698