Hi Rudolph,

Yes, I have been able to run a clean version of v8 on this other ARM
simulator (gem5). I added support to the gem5 simulator to handle this
unused opcode.

I think it might be your second suggestion. In one of my
instrumentations, I inserted the function after a __Push(), where in
other places I placed it at the top of the function body.

Inside KeyedStoreIC and StoreIC::Generate Miss()

void KeyedStoreIC::GenerateMiss(MacroAssembler* masm) {
  // Push receiver, key and value for runtime call.
  __ Push(StoreDescriptor::ReceiverRegister(), StoreDescriptor::NameRegister(),
          StoreDescriptor::ValueRegister());

  // start pipeline viewer tracing
  m5_enableDebugFlag();

  ExternalReference ref =
      ExternalReference(IC_Utility(kKeyedStoreIC_Miss), masm->isolate());
  __ TailCallExternalReference(ref, 3, 1);


Would placing it after the __Push()  cause some corruption on the stack?

Separately, I could not find documentation on how to use/run the
built-in arm simulator of v8. Can you provide an example?


On Thu, Feb 26, 2015 at 2:46 PM, Rodolph Perfetta
<rodolph.perfe...@gmail.com> wrote:
> If I understood correctly you are using a modified arm simulator (not the V8
> built-in one) to run V8, and this simulator returns "illegal instruction".
> V8 does not trap illegal instructions so the options I can think of:
>  * your ARM simulator does not support ARMv7 with VFP, which is a
> requirement for V8
>  * your modification to V8 are corrupting code generation and the pc end up
> in some data.
> Did you try running the test on a clean version of V8?
>
> Rodolph.
>
> On 26 February 2015 at 16:17, Malek Musleh <malek.mus...@gmail.com> wrote:
>>
>> Hi,
>>
>> I've instrumented parts of the v8 source code to call a function from an
>> external library, and have been able to get it compiled successfully, but am
>> running into issues at runtime. Specifically, I am running v8 inside an arm
>> simulator, and the instrumentation calls I added are recognized by the arm
>> simulator (i extend ununsed opcode for functionality). However, at runtime I
>> get the v8 error printed to my simulated terminal.
>>
>> /tmp/script: line 13:  3207 Illegal instruction
>> /system/v8/arm.release/shell run-deltablue.js
>>
>>
>> I suspect that because the instrumented call is getting compiled down to
>> the unused opcode, v8 doesn't recognize it and traps. I've grepped through
>> the source code, but couldn't find where it traps based on an illegal
>> instruction. When encountering this specific opcode of my instrumented
>> calls, I want to simply return and not exit out of the run.
>>
>>
>> Thanks,
>>
>> Malek
>>
>> --
>> --
>> v8-users mailing list
>> v8-users@googlegroups.com
>> http://groups.google.com/group/v8-users
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "v8-users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to v8-users+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> --
> v8-users mailing list
> v8-users@googlegroups.com
> http://groups.google.com/group/v8-users
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "v8-users" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/v8-users/yIwVNMf060A/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> v8-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
-- 
v8-users mailing list
v8-users@googlegroups.com
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to