Closed Bug 644473 Opened 9 years ago Closed 9 years ago

lirasm does not support backwards jump.

Categories

(Core Graveyard :: Nanojit, defect)

x86
Linux
defect
Not set

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: pjcoup, Unassigned)

References

Details

Attachments

(1 file, 1 obsolete file)

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.15) Gecko/20110303 Ubuntu/9.10 (karmic) Firefox/3.6.15
Build Identifier: 

In getting a feel for LIR with lirasm, I tried a couple simple examples, and noticed that backwards jumps don't seem to work.

Reproducible: Always

Steps to Reproduce:
Run this through lirasm.

lstart: b = immi 10
        j lstart
        reti b

Actual Results:  
lirasm asserts:
Assertion failure: ins->getTarget() && ins->oprnd2()->isop(LIR_label) (../nanojit/LIR.cpp:3811)
Aborted


Expected Results:  
Infinite loop on --execute,
Change logic for resolving targets in jump instructions to be resolved at end of fragment.  With test case.
Attachment #521409 - Attachment description: Proposed patch to lirasm.cpp/test case. → Proposed patch to lirasm.cpp/test case. (With inappropriate NanoAsserts).
Attachment #521409 - Attachment is obsolete: true
Attached patch Patch/test case.Splinter Review
Duplicate of this bug: 646990
Blocks: 643969
Comment on attachment 521732 [details] [diff] [review]
Patch/test case.

This needs to land to unblock bug 643969.
Attachment #521732 - Flags: review?(nnethercote)
Attachment #521732 - Flags: review?(nnethercote) → review+
pushed to NJ as 1502:1efd735757e4
Status: UNCONFIRMED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.