Field layout in class Arguments is incompatible w\ 64-bit archs.
authordanno@chromium.org <danno@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 6 Jun 2014 09:57:08 +0000 (09:57 +0000)
committerdanno@chromium.org <danno@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 6 Jun 2014 09:57:08 +0000 (09:57 +0000)
commit88cb8fb2487cd24b42643a14ac828e8be02728ff
tree8c1ca4b4e343d75282373491a9a89e44fd73b12a
parent59f8b6a9ce94205a4d09fe680b0e6b11c07fe72b
Field layout in class Arguments is incompatible w\ 64-bit archs.

The length_ field must be defined as intptr_t rather than int.  This is
due to the fact that we place native argc/argv values into stack slots
(via SetFrameSlot) and then interpret the slots as a an instance of
Arguments class.

Little endian architectures get 'lucky' that the layout happens to work
with implicit padding.  Big endian is not as lucky.

See Runtime_ArrayConstructor for an example.

Based on
https://github.com/andrewlow/v8/commit/d8c3570f71c0be9914e79139740124bd1ca711a7

BUG=v8:3366
LOG=N
R=danno@chromium.org

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

Patch from Andrew Low <andrew_low@ca.ibm.com>.

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