Whenever V8 has to flush the ICache on ARM, this is due to self-modifying 
code. I understand this e.g. happens when we patch return points to 
optimized code with calls to de-optimization runtime functions. What I 
haven't understood is if and when garbage collection actually modifies code 
objects (not moving them, if code is moved, that's not SMC, and shouldn't 
require to flush the ICache. So in which cases is code actually getting 
patched (by garbage collection), e.g. is code getting patched with new 
pointer literal values?

Then the second part I'd wanted to understand was where in V8 do we make 
sure that when e.g. pointer values are changed (because we moved data on 
the heap), that the hardware state in the processor is updated as well 
(some pointers might have lived in registers)?

Any help, hints, tips, links would be greatly appreciated! (This one here 
is a great summary but didn't answer the questions 
above http://jayconrod.com/posts/55/a-tour-of-v8-garbage-collection).

Hendrik Greving

-- 
-- 
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.

Reply via email to