Last Comment Bug 489934 - TM: record_JSOP_TABLESWITCH aborts unnecessarily
: TM: record_JSOP_TABLESWITCH aborts unnecessarily
Product: Core
Classification: Components
Component: JavaScript Engine (show other bugs)
: Trunk
: x86 Linux
-- normal (vote)
: ---
Assigned To: general
: Jason Orendorff [:jorendorff]
Depends on:
  Show dependency treegraph
Reported: 2009-04-23 19:05 PDT by Jim Blandy :jimb
Modified: 2011-06-13 05:06 PDT (History)
7 users (show)
See Also:
Crash Signature:
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Description User image Jim Blandy :jimb 2009-04-23 19:05:20 PDT
When NANOJIT_IA32 is defined, record_JSOP_TABLESWITCH returns false if tableswitch returns NULL.  This causes monitorRecording to abort recording, if tr->fragment->lastIns has not been set.

However, it seems that tableswitch can return NULL in cases where aborting isn't appropriate.  In particular, the 'really large table' case calls switchop (which doesn't set lastIns, because it just emits some guards), and then returns NULL --- throwing away switchop's work.
Comment 1 User image Brendan Eich [:brendan] 2009-05-07 12:38:41 PDT
Should this bug depend on other bugs in progress and/or fixed already?

Comment 2 User image Andreas Gal :gal 2009-05-07 12:49:49 PDT
This needs an ARM port, and sparc too.
Comment 3 User image Andreas Gal :gal 2009-05-07 12:50:07 PDT
Maybe we should open meta bugs form ARM and sparc so we can track these things.
Comment 4 User image Tom Schuster [:evilpie] 2011-06-13 05:06:43 PDT
Tableswitch was removed in this design, Bug 620757.

Note You need to log in before you can comment on or make changes to this bug.