[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