Closed Bug 521507 Opened 15 years ago Closed 13 years ago

TM: Generate better code for tag bit checking

Categories

(Core :: JavaScript Engine, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: dvander, Unassigned)

Details

0x01513bfe in ?? ()
1: x/i $pc  0x1513bfe:	mov    eax,ecx
1: x/i $pc  0x1513c00:	and    eax,0x7
1: x/i $pc  0x1513c03:	cmp    eax,0x2
1: x/i $pc  0x1513c06:	sete   dl
1: x/i $pc  0x1513c09:	movzx  edx,dl

This looks like code to check JSVAL_IS_DOUBLE. It seems like we could do much better.

It's even worse when LIR_or is involved.
1: x/i $pc  0x1513c0c:	mov    eax,ecx
1: x/i $pc  0x1513c0e:	and    eax,0x1
1: x/i $pc  0x1513c11:	or     eax,edx
1: x/i $pc  0x1513c13:	test   eax,eax
1: x/i $pc  0x1513c15:	je     0x1523c34
Where in TM is this code generated?

Re comment 0:  the movzx seems unnecessary, ie. the sete could just generate into edx directly, no?.  Can you see other ways to improve it?
Yeah, we shouldn't or the result, just emit branches. I have a patch in my queue. I will also work on the lir inlining this week. BoxInt() is lame in general. It should be all lir to save the call overhead.
Obsolete with the removal of tracejit.
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.