On 2015/05/19 14:37:06, Rodolph Perfetta wrote:
Paul is right, you can't have 32-bit pointer in arm64.
https://codereview.chromium.org/1133933003/diff/100001/src/arm/builtins-arm.cc
File src/arm/builtins-arm.cc (right):
https://codereview.chromium.org/1133933003/diff/100001/src/arm/builtins-arm.cc#newcode1737
src/arm/builtins-arm.cc:1737: __ cmp(r0, r4);
The two instructions above can be merged:
__ cmp(r0, Operand::SmiUntag(r4));
https://codereview.chromium.org/1133933003/diff/100001/src/arm64/builtins-arm64.cc
File src/arm64/builtins-arm64.cc (right):
https://codereview.chromium.org/1133933003/diff/100001/src/arm64/builtins-arm64.cc#newcode1753
src/arm64/builtins-arm64.cc:1753: __ Ldrsh(scratch2,
This will load a 16bit value which is not what you meant. Load into a W
register
(32-bit) should accomplish what you intended:
__ Ldr(scratch2.W(), FieldMem...);
https://codereview.chromium.org/1133933003/diff/100001/src/arm64/builtins-arm64.cc#newcode1756
src/arm64/builtins-arm64.cc:1756: __ Cmp(argc_actual, scratch2);
the two instructions above can be merged:
__ Cmp(argc_actual, Operand(scratch2, LSR, 1));
https://codereview.chromium.org/1133933003/diff/100001/src/arm64/builtins-arm64.cc#newcode1765
src/arm64/builtins-arm64.cc:1765: __ bind(&no_strong_error);
No part of your patch but we should use the macro assembler so Bind(...)
One last precision, my arm64 code assumes SharedFunctionInfo::length is
32-bit
unsigned.
https://codereview.chromium.org/1133933003/
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.