-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Support nocheck prefix #81615
Support nocheck prefix #81615
Conversation
Currently prefix has no behaviour, which is ECMA 335 compliant
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch, @kunalspathak Issue DetailsAnother shot at #35491 Supports the I have a separate branch implementing it but I think by splitting it up it will be a bit more simple.
|
This is currently blocked as someone with the Microsoft internal YACC tool needs to regenerate asmparse.cpp |
Thanks @john-h-k, @jakobbotsch will help you on this.
|
@john-h-k I've regenerated the parser with a small fix in the grammar. Can you test whether it works as expected? We should also verify that roundtripping with ildasm works correctly. |
@john-h-k, can you please address feedback from @jakobbotsch? |
@john-h-k, checking back if you will work on this PR soon. If it is not handled for too long, this PR will be closed automatically. |
This reverts commit fcce0e8.
@JulieLeeMSFT Yes this is still WIP, have addressed @jakobbotsch 's comments |
// PREFIX_NO_TYPECHECK = 0x000000040 which is 0x1 (the value of typecheck flag) << 6 | ||
// The 2 subsequent flags are just left shift of 1, the same as the nullcheck/rangecheck IL flags, so we just have to | ||
// left shift by 6 to transform | ||
flags <<= 6; |
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.
This should be changed in the same way as fgFindJumpTargets
.
|
||
|
||
|
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.
case CEE_UNUSED69: // This is the no. prefix that is partially defined in Partition III. | ||
SkipIL(1); | ||
break; |
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.
Shouldn't we still skip 1 byte due to the flags?
@john-h-k did you see the comments from @jakobbotsch ? |
This pull request has been automatically marked |
Have seen the comments and will address ASAP |
@john-h-k following up - what is your status with this PR? |
This pull request has been automatically marked |
This pull request will now be closed since it had been marked |
Another shot at #35491
Supports the
no.
prefix as a nopI have a separate branch implementing it but I think by splitting it up it will be a bit more simple.
Fixes #72695