[Webkit-unassigned] [Bug 91052] JSC: LLInt should auto-generate our cross-platform C++ interpreter

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Aug 13 16:19:38 PDT 2012


https://bugs.webkit.org/show_bug.cgi?id=91052





--- Comment #8 from Filip Pizlo <fpizlo at apple.com>  2012-08-13 16:20:09 PST ---

> >> Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:92
> >> +end
> > 
> > Why do you need this?
> > 
> > Why isn't the translation of jmp <address> just:
> > 
> > // the function you generate from the offlineasm
> > enum LLIntGlobalLabels {
> >     _llint_op_something,
> >     // ... lots more
> > };
> > void cLoop() {
> >     LLIntGlobalLabels nextPC;
> >     for (;;) {
> >         switch (nextPC) {
> >         case _llint_op_something:
> >             // translation of jmp [PC]
> >             nextPC = *bitwise_cast<LLIntGlobalLabels*>(PC);
> >             continue;
> >         // more things
> >         }
> >     }
> > }
> 
> Because there are local labels where a jump to it really means a jump as opposed to goto next opcode.  I need to be able to distinguish between the 2.  One alternative is to make the C loop backend aware that the branch target specifier is the vPC, and use that as the distinguishing factor.  I can see if I can make that work later.

But the offlineasm already distinguishes by those two uses of jmp.  It already has the notion of local labels, and global labels.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list