IonMonkey: Assertion failure: input->type() == MIRType_Int32, at ion/Lowering.cpp:354

RESOLVED FIXED

Status

()

Core
JavaScript Engine
--
major
RESOLVED FIXED
5 years ago
4 years ago

People

(Reporter: decoder, Assigned: dvander)

Tracking

(Blocks: 2 bugs, {assertion, testcase})

Other Branch
x86_64
Linux
assertion, testcase
Points:
---
Dependency tree / graph
Bug Flags:
in-testsuite +

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Reporter)

Description

5 years ago
The following testcase asserts on ionmonkey revision c34398f961e7 (run with --ion -n), tested on 64 bit:


function printBugNumber (num) {}
(function(){for(j=02 ;j<3;~ printBugNumber)NaN=42})();
(Assignee)

Comment 1

5 years ago
Created attachment 595573 [details] [diff] [review]
fix

We needed an unspecialized version of BitNot.
Assignee: general → dvander
Status: NEW → ASSIGNED
Attachment #595573 - Flags: review?
(Assignee)

Updated

5 years ago
Attachment #595573 - Flags: review? → review?(sstangl)
Comment on attachment 595573 [details] [diff] [review]
fix

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

::: js/src/ion/arm/Trampoline-arm.cpp
@@ +591,2 @@
>          outReg = regs.takeAny();
> +        masm.reserveStack(sizeof(int));

for consistency with freeStack() below, |int32|?

::: js/src/ion/x64/Trampoline-x64.cpp
@@ +517,2 @@
>          outReg = regs.takeAny();
> +        masm.reserveStack(sizeof(int));

int32?

@@ +596,2 @@
>          masm.load32(Address(esp, 0), ReturnReg);
> +        masm.freeStack(sizeof(int));

int32?
Attachment #595573 - Flags: review?(sstangl) → review+
(Assignee)

Comment 3

5 years ago
http://hg.mozilla.org/projects/ionmonkey/rev/1ae79ea16a74

Nits pushed in a follow-up fix.
Status: ASSIGNED → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
(Reporter)

Comment 4

4 years ago
A testcase for this bug was automatically identified at js/src/jit-test/tests/ion/bug725000.js.
Flags: in-testsuite+
You need to log in before you can comment on or make changes to this bug.