Closed Bug 1009967 Opened 7 years ago Closed 7 years ago

IonMonkey: Implement BitXor Recover Instruction

Categories

(Core :: JavaScript Engine: JIT, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla32

People

(Reporter: nbp, Assigned: inanc.seylan)

References

(Blocks 1 open bug)

Details

(Whiteboard: [good first bug][mentor=nbp][lang=c++])

Attachments

(1 file, 1 obsolete file)

Implement RBitXor in js/src/jit/Recover.cpp.
See Bug 1003801 comment 0 for explanation.
I would like to work on this bug; if it's ok.
Assignee: nobody → acimilan
Attached patch rbitxor.patch (obsolete) — Splinter Review
An implementation of the recover code for BitXor and a test case.
Attachment #8422425 - Flags: review?(nicolas.b.pierron)
Comment on attachment 8422425 [details] [diff] [review]
rbitxor.patch

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

This looks good, but …

::: js/src/jit-test/tests/ion/dce-with-rinstructions.js
@@ +78,5 @@
>  
>  for (i = 0; i < 100; i++) {
>      rbitnot_number(i);
>      rbitnot_object(i);
> +    rbitxor_number(i);

Add an object test case,

::: js/src/jit/MIR.h
@@ +3517,5 @@
>      }
>      void computeRange(TempAllocator &alloc);
> +
> +    bool writeRecoverData(CompactBufferWriter &writer) const;
> +    bool canRecoverOnBailout() const { return true; }

And have a look at MBinaryBitwiseInstruction ;)
Attachment #8422425 - Flags: review?(nicolas.b.pierron) → feedback+
(In reply to Nicolas B. Pierron [:nbp] from comment #3)
> Comment on attachment 8422425 [details] [diff] [review]
> rbitxor.patch
> 
> Add an object test case,
Done.
> 
> ::: js/src/jit/MIR.h
> 
> And have a look at MBinaryBitwiseInstruction ;)
Good point ;) Since I did not see any getAliasSet() method in MBitXor, my initial implementation returned true from canRecoverOnBailout().
Attachment #8422425 - Attachment is obsolete: true
Attached patch rbitxor.patchSplinter Review
Improvements to the previous version:
1. Test case for rbitxor_object.
2. A new canRecoverOnBailout() implementation for MBitXor so that it does not try to recover for objects.
Attachment #8422468 - Flags: review?(nicolas.b.pierron)
Comment on attachment 8422468 [details] [diff] [review]
rbitxor.patch

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

Nice work :)
Attachment #8422468 - Flags: review?(nicolas.b.pierron) → review+
Attachment #8422468 - Flags: checkin+
If you want your patch to be landed, do not set checkin+, but checkin?.  Otherwise we might think that the patch is already landed.  Also once the patch has a r+ from all reviewers without any fix-up needed, then you can add the checkin-needed keyword.
Attachment #8422468 - Flags: checkin+
Keywords: checkin-needed
(In reply to Nicolas B. Pierron [:nbp] from comment #7)
> If you want your patch to be landed, do not set checkin+, but checkin?. 
> Otherwise we might think that the patch is already landed.  Also once the
> patch has a r+ from all reviewers without any fix-up needed, then you can
> add the checkin-needed keyword.

Ok, thanks!
also thanks for contributing to mozilla!
Keywords: checkin-needed
https://hg.mozilla.org/mozilla-central/rev/22298ae9c687
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla32
You need to log in before you can comment on or make changes to this bug.