https://codereview.chromium.org/1135243004/diff/120001/src/x64/full-codegen-x64.cc
File src/x64/full-codegen-x64.cc (right):
https://codereview.chromium.org/1135243004/diff/120001/src/x64/full-codegen-x64.cc#newcode309
src/x64/full-codegen-x64.cc:309: __
movp(LoadDescriptor::ReceiverRegister(), rdi);
On 2015/05/21 19:47:51, caitp wrote:
On 2015/05/21 19:42:42, arv wrote:
> Caitlin, I think the problem is that rdi no longer holds the
function. I think
I
> saw that when I was stepping through (I'll have to verify next
week). What is
> strange is that if the rest params somehow causes this then I would
assume
> arguments would also have problems?
interesting --- so, I would expect `rdi` to be saved when invoking the
runtime
function. Is that not the case?
Anyways, try pushing `rdi` before the call, and then restoring it
after?
TIL rdi is not caller-saved on x86/x86_64. Maybe in this particular
calling convention, it's not callee-saved either (or maybe in optimized
builds, the compiler isn't able to figure out that rdi needs to be
saved, so it doesn't?)
Probably manually saving the register is the only option :|
https://codereview.chromium.org/1135243004/
--
--
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.