No problem. Danno mentioned that you are on vacation in the last meeting. I
changed the code to use movq to save/restore the rcx register.
https://codereview.chromium.org/264973011/diff/1/src/x64/macro-assembler-x64.cc
File src/x64/macro-assembler-x64.cc (right):
https://codereview.chromium.org/264973011/diff/1/src/x64/macro-assembler-x64.cc#newcode2148
src/x64/macro-assembler-x64.cc:2148: SmiToInteger32(dst, dst);
On 2014/06/02 09:49:08, Toon Verwaest wrote:
Why not just SmiToInteger32(dst, src) ?
Done.
https://codereview.chromium.org/264973011/diff/1/src/x64/macro-assembler-x64.cc#newcode2174
src/x64/macro-assembler-x64.cc:2174: SmiToInteger32(dst, dst);
On 2014/06/02 09:49:08, Toon Verwaest wrote:
Same here
Done.
https://codereview.chromium.org/264973011/diff/1/src/x64/macro-assembler-x64.cc#newcode2192
src/x64/macro-assembler-x64.cc:2192: if (!dst.is(src1)) {
On 2014/06/02 09:49:08, Toon Verwaest wrote:
If src1 is rcx, doing SmiToInteger32 first will destroy that register.
Done.
https://codereview.chromium.org/264973011/diff/1/src/x64/macro-assembler-x64.cc#newcode2216
src/x64/macro-assembler-x64.cc:2216: shll_cl(dst);
For 31-bit SMI, we might need to jump to the on_not_smi_result label.
When we jump to the on_not_smi_result, we need to keep an invariant that
src1 and src2 are intact. We clobber dst and rcx in this function, as we
assert dst could not be src1 or src2, we only need to restore rcx before
jumping to the on_not_smi_result.
We do not need this restoring for 32-bit SMI as the result is always a
SMI.
https://codereview.chromium.org/264973011/diff/1/src/x64/macro-assembler-x64.cc#newcode2252
src/x64/macro-assembler-x64.cc:2252: movp(dst, src1);
On 2014/06/02 09:49:08, Toon Verwaest wrote:
SmiToInteger32(dst, src1);
Done.
https://codereview.chromium.org/264973011/
--
--
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.