-
Notifications
You must be signed in to change notification settings - Fork 6.1k
8346836: C2: Verify CastII/CastLL bounds at runtime #22880
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Changes from all commits
Commits
Show all changes
17 commits
Select commit
Hold shift + click to select a range
de9aea4
Introduce VerifyConstraintCasts
merykitty 6010c82
Merge branch 'master' into verifycast
merykitty 25cda2f
make VerifyConstraintCast uint, better debug info
merykitty f18ca9d
add tests
merykitty b3826a5
move test to a new file, add block_comment
merykitty 7f2af65
better comments
merykitty da854c1
Merge branch 'master' into verifycast
merykitty c0e46e7
Merge branch 'master' into verifycast
merykitty 8e23dcc
draft
merykitty dbb6937
Merge branch 'master' into verifycast
merykitty bc8b6af
make the flag diagnostic
merykitty bc9262f
reviews
merykitty 45b4549
assert CastLL
merykitty 2c89363
Merge branch 'master' into verifycast
merykitty cb107fd
aarch64 support
iwanowww 8d140fd
Reconstruct FP
iwanowww 8238894
Emanuel's suggestion
merykitty File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It turns out it's equivalent to
cmpw(rval, lo)
which is clearer IMO.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think it is,
cmpw(rval, lo)
is equivalent tosubsw(zr, rval, lo)
. However, iflo
does not fit into an immediate instruction,MacroAssembler::subsw
, which calls intowrap_adds_subs_imm_insn
, will useRd
as a temporary register to storelo
, this is invalid ifRd
iszr
. Am I understanding it right?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, you are right. Completely forgot that there's only 12 bits available for the immediate (
Assembler::operand_valid_for_add_sub_immediate()
).There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Completely forgot what I was thinking about when writing that code :-)