Closed Bug 534313 Opened 15 years ago Closed 14 years ago

nanojit: split isQuad() into isI64() + isF64() + is64()

Categories

(Core Graveyard :: Nanojit, defect)

x86
macOS
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: n.nethercote, Assigned: n.nethercote)

References

Details

(Whiteboard: fixed-in-nanojit, fixed-in-tracemonkey, fixed-in-tamarin)

Attachments

(3 files)

Or names something like that.
If we are copying a quad, we should not inhibit register trading (gprs are usually all full, xmms mostly empty).
Sure.  But there may be cases where we put a constant in GpRegs when it's really a float, or in XmmRegs when it's really an int, and then subsequently do arithmetic on it.  These ones will be improved.
Attached patch NJ patchSplinter Review
This patch removes isQuad().  Some details:

- I removed fpn(), because it's identical to gpn() and was only used in a
  couple of places.

- You could argue that I should have kept isQuad() around to use in places
  where we now have 'isI64() || isF64()'.  I deliberately didn't do this
  because I'm trying to remove all traces of the "quad" terminology and the
  type-unsafe thinking behind it.  (If people really want something like
  this, I could add 'isN64()'.)

- I updated SanityFilter to allow testing, but it will be replaced wholesale
  when the LIR type-checker (bug 463137) is committed.
Attachment #422692 - Flags: review?(dvander)
Attachment #422692 - Flags: review?(stejohns)
Attached patch TM patchSplinter Review
Attachment #422693 - Flags: review?(dvander)
Attached patch TR patchSplinter Review
There are a couple of places in this patch where we now have 'ins->isI64()
|| ins->isF64()', but a stronger test of just 'ins->isI64()' or
'ins->isF64()' might be possible, I couldn't tell.  Whoever commits the TR
patch might like to consider this.

Nb: I updated ValidateWriter but the LIR type-checker (bug 463137) should be
committed first, whereupon those changes should be discarded because
ValidateWriter has been moved into nanojit/LIR.cpp.

Passes TR acceptance tests on my local machine, and passes the TR try server.
Attachment #422694 - Flags: review?(stejohns)
Attachment #422692 - Flags: review?(dvander) → review+
Attachment #422693 - Flags: review?(dvander) → review+
Attachment #422692 - Flags: review?(stejohns) → review+
Attachment #422694 - Flags: review?(stejohns) → review+
http://hg.mozilla.org/tracemonkey/rev/9577be7c0add
http://hg.mozilla.org/tracemonkey/rev/a2e95fbd7178
Whiteboard: fixed-in-nanojit → fixed-in-nanojit, fixed-in-tracemonkey
Whiteboard: fixed-in-nanojit, fixed-in-tracemonkey → fixed-in-nanojit, fixed-in-tracemonkey, fixed-in-tamarin
http://hg.mozilla.org/mozilla-central/rev/9577be7c0add
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: