MIPS: Handle constants in new space by making macro-assembler smarter.

Port r17376 (9af4f51)

BUG=
R=plind44@gmail.com

Review URL: https://codereview.chromium.org/57873004

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17463 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Do Else() first for JoinContinuation() in IfBuilder.

This is required to make sure that environments are correct
for joined continuations.

R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/52593008

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17464 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
ARM: Use loop to initialize locals when optimizing for size.

R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/52163002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17465 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Try to use STMDB/LDMIA instead of LDR/STR sequences whenever possible.

R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/44313002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17466 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Refactored EXTERNAL_REFERENCE handling.

Previously, the result of target_reference_address() could only be
read, writing to it would have had an architecture-dependent effect,
e.g. writing into the code on ia32, a no-op on arm, etc.

This refactoring-only CL turns this into a simple getter, making it
impossible to use incorrectly.

More to come...

R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/46583006

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17467 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix double-boxing issue when materializing captured objects.

R=verwaest@chromium.org
TEST=mjsunit/compiler/escape-analysis-representation

Review URL: https://codereview.chromium.org/57783003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17468 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Removed RelocInfo::target_object_address() and reconstructed_obj_ptr_.

Depends on https://codereview.chromium.org/46583006/ and has similar reasoning behind it.

R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/50413004

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17469 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Remove CreateArrayLiteralShallow, as it's fundamentally the same now as
CreateArrayLiteral.

R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/54333003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17470 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Bump iteration count for escape analysis.

R=titzer@chromium.org

Review URL: https://codereview.chromium.org/43653005

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17471 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Introduce raw accessors for type_feedback_info.

This pure refactoring is needed for another upcoming CL.

Note that the actual names are still a bit confusing, because this is
still a kind of swiss-army-knife-field. :-/

R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/52633003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17472 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Make snapshots reproducible.

To keep the structure of the serializer more or less untouched, we use
some ingenious Corry-approved(TM) 3-step technology (a.k.a. "hack"):

   * Create copies of code objects.
   * Wipe out all absolute addresses in these copies.
   * Write out the cleaned copies instead of the originals.

In conjunction with --random-seed, our snapshots are reproducible now.

BUG=v8:2885
R=bmeurer@chromium.org, erik.corry@gmail.com

Review URL: https://codereview.chromium.org/54823002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Proper fix for the issue exposed by r17459

This reverts r17462 and instead fixes StubCache::ComputeLoadNonexistent by replacing s/IsGlobalObject/IsJSGlobalObject/ there.

R=verwaest@chromium.org

Review URL: https://codereview.chromium.org/59103005

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17474 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
[Object.observe] Implement implicit notification from performChange

R=arv@chromium.org, rossberg@chromium.org, rossberg
BUG=v8:2942

Review URL: https://codereview.chromium.org/36313002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17476 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Remove calls to JSObject::SetLocalPropertyIgnoreAttributesTrampoline within objects.cc

This includes handlifing:
-SetHiddenPropertiesHashTable
-ObjectHashSet::Add/Remove
-ObjectHashTable::Put

And splitting the following methods which previously took "allow creation" enum arguments to into side-effect-free getters and GetOrCreate*-handlfied getters.

-GetHash (now GetHash & handlified GetOrCreateHash)
-GetIdentityHash (now GetIdentityHash & handlified GetOrCreateIdentityHash)
-GetHiddenPropertiesHashTable (now GetHiddenPropertiesHashTable & handlified GetOrCreateaHiddenPropertiesHashTable)

BUG=v8:2877
R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/48913008

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17477 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Add counters to track the maximum amount of memory committed by the heap.

BUG=None
R=bmeurer@chromium.org, ulan@chromium.org

Review URL: https://chromiumcodereview.appspot.com/29203003

Patch from Ross McIlroy <rmcilroy@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17478 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Introduce orps for IA32/X64

BUG=
R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/53573004

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17479 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Introduce JSFunction::EnsureHasInitialMap method.

This change enforces explicit allocation of the initial map for each
JSFunction to introduce a proper layering between the JSFunction class
and the Heap class. A follow-up change will then handlify the two
functions AllocateInitialMap and AllocateFunctionPrototype.

R=rossberg@chromium.org
BUG=v8:2877

Review URL: https://codereview.chromium.org/32323013

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Make Object.freeze/seal/preventExtensions observable

Note: spec has been updated here: http://wiki.ecmascript.org/doku.php?id=harmony:observe_spec_changes.

R=rossberg@chromium.org, rossberg
BUG=v8:2975,v8:2941

Review URL: https://codereview.chromium.org/47703003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Handlify Heap::AllocateInitialMap method.

R=rossberg@chromium.org
BUG=v8:2877

Review URL: https://codereview.chromium.org/32003006

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17482 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Correctly load message from an Error object.

R=mstarzinger@chromium.org
BUG=306220

Review URL: https://codereview.chromium.org/46593010

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@17484 ce2b1a6d-e550-0410-aec6-3dcde31c8c00