{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/coreclr/issues/17337","repository_url":"https://api.github.com/repos/dotnet/coreclr","labels_url":"https://api.github.com/repos/dotnet/coreclr/issues/17337/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/coreclr/issues/17337/comments","events_url":"https://api.github.com/repos/dotnet/coreclr/issues/17337/events","html_url":"https://github.com/dotnet/coreclr/issues/17337","id":309945759,"number":17337,"title":"[Arm64] IsIPInMarkedJitHelper -- Help ","user":{"login":"sdmaclea","id":25674984,"avatar_url":"https://avatars3.githubusercontent.com/u/25674984?v=4","gravatar_id":"","url":"https://api.github.com/users/sdmaclea","html_url":"https://github.com/sdmaclea","followers_url":"https://api.github.com/users/sdmaclea/followers","following_url":"https://api.github.com/users/sdmaclea/following{/other_user}","gists_url":"https://api.github.com/users/sdmaclea/gists{/gist_id}","starred_url":"https://api.github.com/users/sdmaclea/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sdmaclea/subscriptions","organizations_url":"https://api.github.com/users/sdmaclea/orgs","repos_url":"https://api.github.com/users/sdmaclea/repos","events_url":"https://api.github.com/users/sdmaclea/events{/privacy}","received_events_url":"https://api.github.com/users/sdmaclea/received_events","type":"User","site_admin":false},"labels":[{"id":310938377,"url":"https://api.github.com/repos/dotnet/coreclr/labels/arch-arm64","name":"arch-arm64","color":"eb6420","default":false},{"id":275722914,"url":"https://api.github.com/repos/dotnet/coreclr/labels/area-VM","name":"area-VM","color":"d4c5f9","default":false},{"id":172143008,"url":"https://api.github.com/repos/dotnet/coreclr/labels/question","name":"question","color":"1d76db","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/dotnet/coreclr/milestones/5","html_url":"https://github.com/dotnet/coreclr/milestone/5","labels_url":"https://api.github.com/repos/dotnet/coreclr/milestones/5/labels","id":1328081,"number":5,"title":"Future","description":"Milestone tracking issues not triaged to a planned release. Work in this milestone may happen, or may not: it is not committed.","creator":{"login":"joshfree","id":1302850,"avatar_url":"https://avatars1.githubusercontent.com/u/1302850?v=4","gravatar_id":"","url":"https://api.github.com/users/joshfree","html_url":"https://github.com/joshfree","followers_url":"https://api.github.com/users/joshfree/followers","following_url":"https://api.github.com/users/joshfree/following{/other_user}","gists_url":"https://api.github.com/users/joshfree/gists{/gist_id}","starred_url":"https://api.github.com/users/joshfree/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshfree/subscriptions","organizations_url":"https://api.github.com/users/joshfree/orgs","repos_url":"https://api.github.com/users/joshfree/repos","events_url":"https://api.github.com/users/joshfree/events{/privacy}","received_events_url":"https://api.github.com/users/joshfree/received_events","type":"User","site_admin":false},"open_issues":1430,"closed_issues":1056,"state":"open","created_at":"2015-09-29T00:26:07Z","updated_at":"2018-03-30T00:57:48Z","due_on":null,"closed_at":null},"comments":2,"created_at":"2018-03-30T00:47:17Z","updated_at":"2018-03-30T02:01:14Z","closed_at":null,"author_association":"MEMBER","body":"@janvorli I need help understnding the intent of IsIPInMarkedJitHelper\r\n\r\nBased on review of comments, it seems this is used to mark a subset of JIT helpers as being in managed code\r\n\r\nFor `arm64` it currently includes\r\n```\r\n    CHECK_RANGE(JIT_MemSet)\r\n    CHECK_RANGE(JIT_MemCpy)\r\n    CHECK_RANGE(JIT_WriteBarrier)\r\n    CHECK_RANGE(JIT_CheckedWriteBarrier)\r\n```\r\n\r\nShouldn't it also include \r\n```\r\n    CHECK_RANGE(JIT_ByRefWriteBarrier)\r\n    CHECK_RANGE(JIT_Stelem_Ref)\r\n    CHECK_RANGE(JIT_Stelem_Ref_NotExactMatch)\r\n    CHECK_RANGE(JIT_Stelem_DoWrite)\r\n    CHECK_RANGE(JIT_Stelem_Ref)\r\n```\r\n\r\nI am assuming the stubs are not needed, because they are generated by the JIT and treated as managed code.  It would be really nice to understand the classification rules, constraints and requirements.\r\n\r\nAlso based on my read, these functions will effectively get retried if a signal occurs, signal will return to the caller, to call the helper again.  So these functions have functional constraints as well to not modify the call arguments.  Is my understanding here correct?"},"comment":{"url":"https://api.github.com/repos/dotnet/coreclr/issues/comments/377424302","html_url":"https://github.com/dotnet/coreclr/issues/17337#issuecomment-377424302","issue_url":"https://api.github.com/repos/dotnet/coreclr/issues/17337","id":377424302,"user":{"login":"AndyAyersMS","id":10121823,"avatar_url":"https://avatars1.githubusercontent.com/u/10121823?v=4","gravatar_id":"","url":"https://api.github.com/users/AndyAyersMS","html_url":"https://github.com/AndyAyersMS","followers_url":"https://api.github.com/users/AndyAyersMS/followers","following_url":"https://api.github.com/users/AndyAyersMS/following{/other_user}","gists_url":"https://api.github.com/users/AndyAyersMS/gists{/gist_id}","starred_url":"https://api.github.com/users/AndyAyersMS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AndyAyersMS/subscriptions","organizations_url":"https://api.github.com/users/AndyAyersMS/orgs","repos_url":"https://api.github.com/users/AndyAyersMS/repos","events_url":"https://api.github.com/users/AndyAyersMS/events{/privacy}","received_events_url":"https://api.github.com/users/AndyAyersMS/received_events","type":"User","site_admin":false},"created_at":"2018-03-30T02:01:14Z","updated_at":"2018-03-30T02:01:14Z","author_association":"MEMBER","body":"I think the aim of `IsIPInMarkedJitHelper` is to identify ranges of native code in jit helpers where there are implicit null checks, so AVs in these ranges end up reported as managed null reference exceptions originating in the calling frame (which should be managed code).\r\n\r\nThe `stelem` helpers look like they do explicit null checks. The byref write barrier is probably never supposed to AV."}}
{"actor":{"display_login":"AndyAyersMS"}}