Closed Bug 565210 Opened 16 years ago Closed 7 years ago

Poor code generated for skip chain

Categories

(Tamarin Graveyard :: Baseline JIT (CodegenLIR), defect)

x86
All
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX
Future

People

(Reporter: wmaddox, Unassigned)

References

Details

(Whiteboard: PACMAN)

From the -Dverbose=jit output of the catch handler of a method: jt eq16 -> B255 00007686a6 cmp ebx,255 00007686ac je 0x0 00007686b2 mov ebx,-920(ebp) <= restore ld134 RR ebx(ld134) AR 780-1552(vars) 792-800(methodFrame) 888-980(_ef) 892(ebx) 896(esi) 900(edi) 904(4) 908(6381608) 912(env) 916(env_scope) 920(ld134) jt eq17 -> B382 00007686b8 cmp ebx,382 00007686be je 0x0 00007686c4 mov ebx,-920(ebp) <= restore ld134 RR ebx(ld134) AR 780-1552(vars) 792-800(methodFrame) 888-980(_ef) 892(ebx) 896(esi) 900(edi) 904(4) 908(6381608) 912(env) 916(env_scope) 920(ld134) jt eq18 -> B414 00007686ca cmp ebx,414 00007686d0 je 0x0 00007686d6 mov ebx,-920(ebp) <= restore ld134 RR ebx(ld134) AR 780-1552(vars) 792-800(methodFrame) 888-980(_ef) 892(ebx) 896(esi) 900(edi) 904(4) 908(6381608) 912(env) 916(env_scope) 920(ld134) jt eq19 -> B541 00007686dc cmp ebx,541 00007686e2 je 0x0 00007686e8 mov ebx,-920(ebp) <= restore ld134 RR ebx(ld134) AR 780-1552(vars) 792-800(methodFrame) 888-980(_ef) 892(ebx) 896(esi) 900(edi) 904(4) 908(6381608) 912(env) 916(env_scope) jt eq20 -> B573 Why do we keep reloading ebx? It looks as if the code generator may be assuming that the "destination" argument of the CMP instruction is clobbered, but it is not. Example above is from tamarin-redux-argo, but tamarin-redux shows the same issue. Noticed in passing while analyzing Bug 565184.
Flags: flashplayer-qrb+
Target Milestone: --- → Future
Whiteboard: PACMAN
Once bug 565184 is done, the skip chain will test plain ordinals [0...n], and a LIR_jtbl would be more compact on CPU's that support it.
Depends on: 565184
Blocks: 595012
Tamarin isn't maintained anymore. WONTFIX remaining bugs.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.