Closed Bug 812138 Opened 12 years ago Closed 12 years ago

BaselineCompiler: Implement numFrameSlots/frameSlotValue for baseline frames

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: jandem, Assigned: jandem)

References

Details

Attachments

(1 file)

Attached patch Patch (deleted) — Splinter Review
These are only used by the expression decompiler stack search. There may be fewer or more values on the stack, but that's handled correctly by the decompiler. And IonMonkey has the same problem (the snapshot it uses encodes the state at another pc).
Attachment #681942 - Flags: review?(kvijayan)
Comment on attachment 681942 [details] [diff] [review]
Patch

Review of attachment 681942 [details] [diff] [review]:
-----------------------------------------------------------------

::: js/src/vm/Stack.cpp
@@ +1785,5 @@
>        case ION:
>  #ifdef JS_ION
> +        if (ionFrames_.isOptimizedJS())
> +            return ionInlineFrames_.snapshotIterator().slots() - ionInlineFrames_.script()->nfixed;
> +        return ionFrames_.numBaselineStackValues() - ionFrames_.script()->nfixed;

This would be clearer as an if-else instead of a terminating if with a fallthrough.

@@ +1815,5 @@
> +            return si.maybeReadSlotByIndex(index);
> +        }
> +
> +        index += ionFrames_.script()->nfixed;
> +        return ionFrames_.baselineStackValue(index);

Same as above.  The logic here is choosing two different actions based on isOptimizedJS(), not shortcutting a larger action based on isOptimizedJS().
Attachment #681942 - Flags: review?(kvijayan) → review+
SM has a "no else after return" style rule.

https://hg.mozilla.org/projects/ionmonkey/rev/5d220bff87f0
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: