{"action":"created","comment":{"url":"https://api.github.com/repos/DynamoRIO/dynamorio/pulls/comments/280276376","pull_request_review_id":232826950,"id":280276376,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI4MDI3NjM3Ng==","diff_hunk":"@@ -0,0 +1,22 @@\n+\n+#undef FUNCNAME\n+#define FUNCNAME test_addr16_s_asm\n+DECLARE_FUNC_SEH(FUNCNAME)\n+GLOBAL_LABEL(FUNCNAME:)\n+        /* There is intentionally no prologue and epilogue. This function is not\n+         * supposed to be actually called. We are using the function like a label\n+         * for the decoder.\n+         */\n+        END_PROLOG\n+        RAW(67) RAW(a0) RAW(98) RAW(08) RAW(67) RAW(66)","path":"third_party/binutils/test_decenc/addr16.asm","position":11,"original_position":11,"commit_id":"662bb676949ca981e2793ff50f413589f9d1382f","original_commit_id":"662bb676949ca981e2793ff50f413589f9d1382f","user":{"login":"hgreving2304","id":43382901,"node_id":"MDQ6VXNlcjQzMzgyOTAx","avatar_url":"https://avatars3.githubusercontent.com/u/43382901?v=4","gravatar_id":"","url":"https://api.github.com/users/hgreving2304","html_url":"https://github.com/hgreving2304","followers_url":"https://api.github.com/users/hgreving2304/followers","following_url":"https://api.github.com/users/hgreving2304/following{/other_user}","gists_url":"https://api.github.com/users/hgreving2304/gists{/gist_id}","starred_url":"https://api.github.com/users/hgreving2304/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hgreving2304/subscriptions","organizations_url":"https://api.github.com/users/hgreving2304/orgs","repos_url":"https://api.github.com/users/hgreving2304/repos","events_url":"https://api.github.com/users/hgreving2304/events{/privacy}","received_events_url":"https://api.github.com/users/hgreving2304/received_events","type":"User","site_admin":false},"body":"As a side note, I think we're testing our decoder/encoder one way or the other.\r\n\r\nWindows was not the reason. But that's a good reason, too. I think the gas test suite is testing something different than us. They are testing the gas assembler, i.e. taking mnemonics and corner cases of mnemonics and encoding them. Then they cross check the results with objdump. For DynamoRIO, we're testing the raw-bytes decoder (and the encoder kind of by making a round-trip). So I looked at the binutils test suite just as a source to get interesting x86 encoding bytes.\r\n\r\nThe fact that they're testing gas includes invalid cases. If you took the .s files, you had to filter out the _invalid_ cases first. That's in addition to the _valid_ cases we do not support (e.g. CPL-0 instructions). I already had to filter the encodings for all the cases we either don't support or not yet support (i#3577, i#3578, i#1312, i#3581). I didn't want to filter the mnemonics as well, that don't add much except, yes, readability.","created_at":"2019-05-02T02:33:53Z","updated_at":"2019-05-02T02:33:54Z","html_url":"https://github.com/DynamoRIO/dynamorio/pull/3585#discussion_r280276376","pull_request_url":"https://api.github.com/repos/DynamoRIO/dynamorio/pulls/3585","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/DynamoRIO/dynamorio/pulls/comments/280276376"},"html":{"href":"https://github.com/DynamoRIO/dynamorio/pull/3585#discussion_r280276376"},"pull_request":{"href":"https://api.github.com/repos/DynamoRIO/dynamorio/pulls/3585"}},"in_reply_to_id":280260347},"pull_request":{"url":"https://api.github.com/repos/DynamoRIO/dynamorio/pulls/3585","id":274909907,"node_id":"MDExOlB1bGxSZXF1ZXN0Mjc0OTA5OTA3","html_url":"https://github.com/DynamoRIO/dynamorio/pull/3585","diff_url":"https://github.com/DynamoRIO/dynamorio/pull/3585.diff","patch_url":"https://github.com/DynamoRIO/dynamorio/pull/3585.patch","issue_url":"https://api.github.com/repos/DynamoRIO/dynamorio/issues/3585","number":3585,"state":"open","locked":false,"title":"i#3574 binutils decoder/encoder tests: Add binutils decode/encode tests to DynamoRIO.","user":{"login":"hgreving2304","id":43382901,"node_id":"MDQ6VXNlcjQzMzgyOTAx","avatar_url":"https://avatars3.githubusercontent.com/u/43382901?v=4","gravatar_id":"","url":"https://api.github.com/users/hgreving2304","html_url":"https://github.com/hgreving2304","followers_url":"https://api.github.com/users/hgreving2304/followers","following_url":"https://api.github.com/users/hgreving2304/following{/other_user}","gists_url":"https://api.github.com/users/hgreving2304/gists{/gist_id}","starred_url":"https://api.github.com/users/hgreving2304/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hgreving2304/subscriptions","organizations_url":"https://api.github.com/users/hgreving2304/orgs","repos_url":"https://api.github.com/users/hgreving2304/repos","events_url":"https://api.github.com/users/hgreving2304/events{/privacy}","received_events_url":"https://api.github.com/users/hgreving2304/received_events","type":"User","site_admin":false},"body":"This patch adds a test suite based on binutil's gas test suite. It is not equivalent to\r\nbinutil's suite. For example, DynamoRio does not have an assembler reading mnemonics.\r\n\r\nThe suite adds a collection of decoder/encoder tests and compares its disassembler output.\r\nThe expected disassembler strings have been generated by DynamoRIO at the time this suite\r\nwas created. Hence, it is not golden reference with respect to binutils. There are minor\r\ndifferences between objdump and DynamoRIO's disassembler output that would need to get\r\nresolved. This is a possible future improvement to this suite.\r\n\r\nDecoding and encoding errors have been debugged and inspected (xref #3577, #3578, #3581).\r\nUnsupported instructions are either referenced by these issues, or have been removed\r\nfrom the original binutils test suite. For example, unsupported CPL 0 instructions have\r\nbeen removed.\r\n\r\nThe suite was moved to third_party to honor GNU GPL. Only the .asm files of this suite\r\nare subject to GNU GPL.\r\n\r\nLarge parts of the regression are currently commented out, specifically AVX-512 (xref\r\ni#1312), MPX, SHA, VMX (xref i#3581) and others (issues mentioned above).\r\n\r\nIssue: #3574","created_at":"2019-04-30T22:32:28Z","updated_at":"2019-05-02T02:33:54Z","closed_at":null,"merged_at":null,"merge_commit_sha":"35dd40d5e274e24c35f4b13b92b39340467fe3e3","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":152076250,"node_id":"MDU6TGFiZWwxNTIwNzYyNTA=","url":"https://api.github.com/repos/DynamoRIO/dynamorio/labels/Component-Tests","name":"Component-Tests","color":"FFFFFF","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/DynamoRIO/dynamorio/pulls/3585/commits","review_comments_url":"https://api.github.com/repos/DynamoRIO/dynamorio/pulls/3585/comments","review_comment_url":"https://api.github.com/repos/DynamoRIO/dynamorio/pulls/comments{/number}","comments_url":"https://api.github.com/repos/DynamoRIO/dynamorio/issues/3585/comments","statuses_url":"https://api.github.com/repos/DynamoRIO/dynamorio/statuses/662bb676949ca981e2793ff50f413589f9d1382f","head":{"label":"DynamoRIO:i3574-dec-enc-tests-from-binutils","ref":"i3574-dec-enc-tests-from-binutils","sha":"662bb676949ca981e2793ff50f413589f9d1382f","user":{"login":"DynamoRIO","id":9010155,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkwMTAxNTU=","avatar_url":"https://avatars2.githubusercontent.com/u/9010155?v=4","gravatar_id":"","url":"https://api.github.com/users/DynamoRIO","html_url":"https://github.com/DynamoRIO","followers_url":"https://api.github.com/users/DynamoRIO/followers","following_url":"https://api.github.com/users/DynamoRIO/following{/other_user}","gists_url":"https://api.github.com/users/DynamoRIO/gists{/gist_id}","starred_url":"https://api.github.com/users/DynamoRIO/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DynamoRIO/subscriptions","organizations_url":"https://api.github.com/users/DynamoRIO/orgs","repos_url":"https://api.github.com/users/DynamoRIO/repos","events_url":"https://api.github.com/users/DynamoRIO/events{/privacy}","received_events_url":"https://api.github.com/users/DynamoRIO/received_events","type":"Organization","site_admin":false},"repo":{"id":27242935,"node_id":"MDEwOlJlcG9zaXRvcnkyNzI0MjkzNQ==","name":"dynamorio","full_name":"DynamoRIO/dynamorio","private":false,"owner":{"login":"DynamoRIO","id":9010155,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkwMTAxNTU=","avatar_url":"https://avatars2.githubusercontent.com/u/9010155?v=4","gravatar_id":"","url":"https://api.github.com/users/DynamoRIO","html_url":"https://github.com/DynamoRIO","followers_url":"https://api.github.com/users/DynamoRIO/followers","following_url":"https://api.github.com/users/DynamoRIO/following{/other_user}","gists_url":"https://api.github.com/users/DynamoRIO/gists{/gist_id}","starred_url":"https://api.github.com/users/DynamoRIO/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DynamoRIO/subscriptions","organizations_url":"https://api.github.com/users/DynamoRIO/orgs","repos_url":"https://api.github.com/users/DynamoRIO/repos","events_url":"https://api.github.com/users/DynamoRIO/events{/privacy}","received_events_url":"https://api.github.com/users/DynamoRIO/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/DynamoRIO/dynamorio","description":"Dynamic Instrumentation Tool Platform","fork":false,"url":"https://api.github.com/repos/DynamoRIO/dynamorio","forks_url":"https://api.github.com/repos/DynamoRIO/dynamorio/forks","keys_url":"https://api.github.com/repos/DynamoRIO/dynamorio/keys{/key_id}","collaborators_url":"https://api.github.com/repos/DynamoRIO/dynamorio/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/DynamoRIO/dynamorio/teams","hooks_url":"https://api.github.com/repos/DynamoRIO/dynamorio/hooks","issue_events_url":"https://api.github.com/repos/DynamoRIO/dynamorio/issues/events{/number}","events_url":"https://api.github.com/repos/DynamoRIO/dynamorio/events","assignees_url":"https://api.github.com/repos/DynamoRIO/dynamorio/assignees{/user}","branches_url":"https://api.github.com/repos/DynamoRIO/dynamorio/branches{/branch}","tags_url":"https://api.github.com/repos/DynamoRIO/dynamorio/tags","blobs_url":"https://api.github.com/repos/DynamoRIO/dynamorio/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/DynamoRIO/dynamorio/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/DynamoRIO/dynamorio/git/refs{/sha}","trees_url":"https://api.github.com/repos/DynamoRIO/dynamorio/git/trees{/sha}","statuses_url":"https://api.github.com/repos/DynamoRIO/dynamorio/statuses/{sha}","languages_url":"https://api.github.com/repos/DynamoRIO/dynamorio/languages","stargazers_url":"https://api.github.com/repos/DynamoRIO/dynamorio/stargazers","contributors_url":"https://api.github.com/repos/DynamoRIO/dynamorio/contributors","subscribers_url":"https://api.github.com/repos/DynamoRIO/dynamorio/subscribers","subscription_url":"https://api.github.com/repos/DynamoRIO/dynamorio/subscription","commits_url":"https://api.github.com/repos/DynamoRIO/dynamorio/commits{/sha}","git_commits_url":"https://api.github.com/repos/DynamoRIO/dynamorio/git/commits{/sha}","comments_url":"https://api.github.com/repos/DynamoRIO/dynamorio/comments{/number}","issue_comment_url":"https://api.github.com/repos/DynamoRIO/dynamorio/issues/comments{/number}","contents_url":"https://api.github.com/repos/DynamoRIO/dynamorio/contents/{+path}","compare_url":"https://api.github.com/repos/DynamoRIO/dynamorio/compare/{base}...{head}","merges_url":"https://api.github.com/repos/DynamoRIO/dynamorio/merges","archive_url":"https://api.github.com/repos/DynamoRIO/dynamorio/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/DynamoRIO/dynamorio/downloads","issues_url":"https://api.github.com/repos/DynamoRIO/dynamorio/issues{/number}","pulls_url":"https://api.github.com/repos/DynamoRIO/dynamorio/pulls{/number}","milestones_url":"https://api.github.com/repos/DynamoRIO/dynamorio/milestones{/number}","notifications_url":"https://api.github.com/repos/DynamoRIO/dynamorio/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/DynamoRIO/dynamorio/labels{/name}","releases_url":"https://api.github.com/repos/DynamoRIO/dynamorio/releases{/id}","deployments_url":"https://api.github.com/repos/DynamoRIO/dynamorio/deployments","created_at":"2014-11-27T22:08:34Z","updated_at":"2019-05-02T00:05:36Z","pushed_at":"2019-05-01T22:35:11Z","git_url":"git://github.com/DynamoRIO/dynamorio.git","ssh_url":"git@github.com:DynamoRIO/dynamorio.git","clone_url":"https://github.com/DynamoRIO/dynamorio.git","svn_url":"https://github.com/DynamoRIO/dynamorio","homepage":null,"size":53821,"stargazers_count":983,"watchers_count":983,"language":"C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":253,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1151,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":253,"open_issues":1151,"watchers":983,"default_branch":"master"}},"base":{"label":"DynamoRIO:master","ref":"master","sha":"7be31a6bac9980fbc9e53b6bce1fb7cd51ccfe14","user":{"login":"DynamoRIO","id":9010155,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkwMTAxNTU=","avatar_url":"https://avatars2.githubusercontent.com/u/9010155?v=4","gravatar_id":"","url":"https://api.github.com/users/DynamoRIO","html_url":"https://github.com/DynamoRIO","followers_url":"https://api.github.com/users/DynamoRIO/followers","following_url":"https://api.github.com/users/DynamoRIO/following{/other_user}","gists_url":"https://api.github.com/users/DynamoRIO/gists{/gist_id}","starred_url":"https://api.github.com/users/DynamoRIO/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DynamoRIO/subscriptions","organizations_url":"https://api.github.com/users/DynamoRIO/orgs","repos_url":"https://api.github.com/users/DynamoRIO/repos","events_url":"https://api.github.com/users/DynamoRIO/events{/privacy}","received_events_url":"https://api.github.com/users/DynamoRIO/received_events","type":"Organization","site_admin":false},"repo":{"id":27242935,"node_id":"MDEwOlJlcG9zaXRvcnkyNzI0MjkzNQ==","name":"dynamorio","full_name":"DynamoRIO/dynamorio","private":false,"owner":{"login":"DynamoRIO","id":9010155,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkwMTAxNTU=","avatar_url":"https://avatars2.githubusercontent.com/u/9010155?v=4","gravatar_id":"","url":"https://api.github.com/users/DynamoRIO","html_url":"https://github.com/DynamoRIO","followers_url":"https://api.github.com/users/DynamoRIO/followers","following_url":"https://api.github.com/users/DynamoRIO/following{/other_user}","gists_url":"https://api.github.com/users/DynamoRIO/gists{/gist_id}","starred_url":"https://api.github.com/users/DynamoRIO/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DynamoRIO/subscriptions","organizations_url":"https://api.github.com/users/DynamoRIO/orgs","repos_url":"https://api.github.com/users/DynamoRIO/repos","events_url":"https://api.github.com/users/DynamoRIO/events{/privacy}","received_events_url":"https://api.github.com/users/DynamoRIO/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/DynamoRIO/dynamorio","description":"Dynamic Instrumentation Tool Platform","fork":false,"url":"https://api.github.com/repos/DynamoRIO/dynamorio","forks_url":"https://api.github.com/repos/DynamoRIO/dynamorio/forks","keys_url":"https://api.github.com/repos/DynamoRIO/dynamorio/keys{/key_id}","collaborators_url":"https://api.github.com/repos/DynamoRIO/dynamorio/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/DynamoRIO/dynamorio/teams","hooks_url":"https://api.github.com/repos/DynamoRIO/dynamorio/hooks","issue_events_url":"https://api.github.com/repos/DynamoRIO/dynamorio/issues/events{/number}","events_url":"https://api.github.com/repos/DynamoRIO/dynamorio/events","assignees_url":"https://api.github.com/repos/DynamoRIO/dynamorio/assignees{/user}","branches_url":"https://api.github.com/repos/DynamoRIO/dynamorio/branches{/branch}","tags_url":"https://api.github.com/repos/DynamoRIO/dynamorio/tags","blobs_url":"https://api.github.com/repos/DynamoRIO/dynamorio/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/DynamoRIO/dynamorio/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/DynamoRIO/dynamorio/git/refs{/sha}","trees_url":"https://api.github.com/repos/DynamoRIO/dynamorio/git/trees{/sha}","statuses_url":"https://api.github.com/repos/DynamoRIO/dynamorio/statuses/{sha}","languages_url":"https://api.github.com/repos/DynamoRIO/dynamorio/languages","stargazers_url":"https://api.github.com/repos/DynamoRIO/dynamorio/stargazers","contributors_url":"https://api.github.com/repos/DynamoRIO/dynamorio/contributors","subscribers_url":"https://api.github.com/repos/DynamoRIO/dynamorio/subscribers","subscription_url":"https://api.github.com/repos/DynamoRIO/dynamorio/subscription","commits_url":"https://api.github.com/repos/DynamoRIO/dynamorio/commits{/sha}","git_commits_url":"https://api.github.com/repos/DynamoRIO/dynamorio/git/commits{/sha}","comments_url":"https://api.github.com/repos/DynamoRIO/dynamorio/comments{/number}","issue_comment_url":"https://api.github.com/repos/DynamoRIO/dynamorio/issues/comments{/number}","contents_url":"https://api.github.com/repos/DynamoRIO/dynamorio/contents/{+path}","compare_url":"https://api.github.com/repos/DynamoRIO/dynamorio/compare/{base}...{head}","merges_url":"https://api.github.com/repos/DynamoRIO/dynamorio/merges","archive_url":"https://api.github.com/repos/DynamoRIO/dynamorio/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/DynamoRIO/dynamorio/downloads","issues_url":"https://api.github.com/repos/DynamoRIO/dynamorio/issues{/number}","pulls_url":"https://api.github.com/repos/DynamoRIO/dynamorio/pulls{/number}","milestones_url":"https://api.github.com/repos/DynamoRIO/dynamorio/milestones{/number}","notifications_url":"https://api.github.com/repos/DynamoRIO/dynamorio/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/DynamoRIO/dynamorio/labels{/name}","releases_url":"https://api.github.com/repos/DynamoRIO/dynamorio/releases{/id}","deployments_url":"https://api.github.com/repos/DynamoRIO/dynamorio/deployments","created_at":"2014-11-27T22:08:34Z","updated_at":"2019-05-02T00:05:36Z","pushed_at":"2019-05-01T22:35:11Z","git_url":"git://github.com/DynamoRIO/dynamorio.git","ssh_url":"git@github.com:DynamoRIO/dynamorio.git","clone_url":"https://github.com/DynamoRIO/dynamorio.git","svn_url":"https://github.com/DynamoRIO/dynamorio","homepage":null,"size":53821,"stargazers_count":983,"watchers_count":983,"language":"C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":253,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1151,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":253,"open_issues":1151,"watchers":983,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/DynamoRIO/dynamorio/pulls/3585"},"html":{"href":"https://github.com/DynamoRIO/dynamorio/pull/3585"},"issue":{"href":"https://api.github.com/repos/DynamoRIO/dynamorio/issues/3585"},"comments":{"href":"https://api.github.com/repos/DynamoRIO/dynamorio/issues/3585/comments"},"review_comments":{"href":"https://api.github.com/repos/DynamoRIO/dynamorio/pulls/3585/comments"},"review_comment":{"href":"https://api.github.com/repos/DynamoRIO/dynamorio/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/DynamoRIO/dynamorio/pulls/3585/commits"},"statuses":{"href":"https://api.github.com/repos/DynamoRIO/dynamorio/statuses/662bb676949ca981e2793ff50f413589f9d1382f"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"hgreving2304"}}