Closed Bug 504594 Opened 16 years ago Closed 16 years ago

Addresses in nanojit-debug output are wrong on SPARC

Categories

(Core :: JavaScript Engine, defect)

Sun
All
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: wes, Unassigned)

Details

(Whiteboard: fixed-in-tracemonkey)

Attachments

(1 file)

Nanojit-debug output: 00fed95f60 [prologue] 00fed95f64 nop 00fed95f68 nop 00fed95f6c nop 00fed95f70 save %sp, -152, %sp GDB Disassembly: 0xfed95f60: nop 0xfed95f64: nop 0xfed95f68: nop 0xfed95f6c: save %sp, -152, %sp 0xfed95f70: ldsw [ %i1 + 0x10 ], %l1 The attached patch corrects this issue by inverting the order of instruction formating vs. asm_output() to match the x86 code (format, then output). The patch also removes a superflous verbose_only guard on asm_output() for the CALL instruction. Thanks go to sewardj, his keen eyes spotted the root cause of this problem. Even with this patch, there is still a small SPARC output bug: the NOP in the final branch delay slot (after the returning JMPL) does not have an address in the debug output. That NOP corresponds to asmOutput.data[0], so the epilogue looks like this: 00fed95fe4 [epilogue] 00fed95fe8 or %o0, 0, %i0 00fed95fec jmpl [%i7 + 8] 00fed95ff0 restore 00fed95ff4 sethi fedc2000, %g2 00fed95ff8 or %g2, 0, %g2 00fed95ffc jmpl [%g0 + %g2] nop
Attachment #388932 - Flags: review?(graydon)
Comment on attachment 388932 [details] [diff] [review] Patch to fix nanojit-debug addresses on SPARC Looks good.
Attachment #388932 - Flags: review?(graydon) → review+
Keywords: checkin-needed
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Keywords: checkin-needed
Whiteboard: fixed-in-tracemonkey
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: