{"action":"created","comment":{"url":"https://api.github.com/repos/facebook/hhvm/pulls/comments/134884646","pull_request_review_id":58231223,"id":134884646,"diff_hunk":"@@ -1022,13 +1013,27 @@ void lowerForPPC64(const VLS& e, Vout& v, vasm_src& inst) {             \\\n   else v << vasm_dst_imm{inst.s0, tmp2, inst.sf};                       \\\n }\n \n-X(cmpbim,  cmpl,  cmpli,  loadb)\n+X(cmpbim,  cmpq,  cmpqi,  loadzbq)\n X(cmpqim,  cmpq,  cmpqi,  load)\n-X(testbim, testq, testqi, loadb)\n-X(testwim, testq, testqi, loadw)\n-X(testlim, testq, testqi, loadl)\n+X(testbim, testq, testqi, loadzbq)\n X(testqim, testq, testqi, load)\n+#undef X\n+\n+#define X(vasm_src, vasm_dst_reg, vasm_dst_imm, vasm_load, vasm_exts)   \\\n+void lowerForPPC64(const VLS& e, Vout& v, vasm_src& inst) {             \\\n+  Vptr p = inst.s1;                                                     \\\n+  Vreg tmp; if (!e.allow_vreg()) tmp = Vreg(PhysReg(rAsm));             \\","path":"hphp/runtime/vm/jit/vasm-ppc64.cpp","position":37,"original_position":37,"commit_id":"84db8a17ee6550294df67c9c1ea74407a236903a","original_commit_id":"84db8a17ee6550294df67c9c1ea74407a236903a","user":{"login":"mxw","id":1013739,"avatar_url":"https://avatars2.githubusercontent.com/u/1013739?v=4","gravatar_id":"","url":"https://api.github.com/users/mxw","html_url":"https://github.com/mxw","followers_url":"https://api.github.com/users/mxw/followers","following_url":"https://api.github.com/users/mxw/following{/other_user}","gists_url":"https://api.github.com/users/mxw/gists{/gist_id}","starred_url":"https://api.github.com/users/mxw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mxw/subscriptions","organizations_url":"https://api.github.com/users/mxw/orgs","repos_url":"https://api.github.com/users/mxw/repos","events_url":"https://api.github.com/users/mxw/events{/privacy}","received_events_url":"https://api.github.com/users/mxw/received_events","type":"User","site_admin":false},"body":"Rewrite this as a ternary.","created_at":"2017-08-23T22:14:05Z","updated_at":"2017-08-23T22:15:33Z","html_url":"https://github.com/facebook/hhvm/pull/7965#discussion_r134884646","pull_request_url":"https://api.github.com/repos/facebook/hhvm/pulls/7965","_links":{"self":{"href":"https://api.github.com/repos/facebook/hhvm/pulls/comments/134884646"},"html":{"href":"https://github.com/facebook/hhvm/pull/7965#discussion_r134884646"},"pull_request":{"href":"https://api.github.com/repos/facebook/hhvm/pulls/7965"}}},"pull_request":{"url":"https://api.github.com/repos/facebook/hhvm/pulls/7965","id":136509973,"html_url":"https://github.com/facebook/hhvm/pull/7965","diff_url":"https://github.com/facebook/hhvm/pull/7965.diff","patch_url":"https://github.com/facebook/hhvm/pull/7965.patch","issue_url":"https://api.github.com/repos/facebook/hhvm/issues/7965","number":7965,"state":"open","locked":false,"title":"Extend register sign using VASM for PPC64","user":{"login":"lbianc","id":8248619,"avatar_url":"https://avatars0.githubusercontent.com/u/8248619?v=4","gravatar_id":"","url":"https://api.github.com/users/lbianc","html_url":"https://github.com/lbianc","followers_url":"https://api.github.com/users/lbianc/followers","following_url":"https://api.github.com/users/lbianc/following{/other_user}","gists_url":"https://api.github.com/users/lbianc/gists{/gist_id}","starred_url":"https://api.github.com/users/lbianc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lbianc/subscriptions","organizations_url":"https://api.github.com/users/lbianc/orgs","repos_url":"https://api.github.com/users/lbianc/repos","events_url":"https://api.github.com/users/lbianc/events{/privacy}","received_events_url":"https://api.github.com/users/lbianc/received_events","type":"User","site_admin":false},"body":"The VASMs ```loadw``` and ```loadl``` was implicity extending the sign when\r\nemitting the instruction. It was creating invalid VASM sequences, as right\r\nafter a ```loadw``` may appear a ```cmpq```, which uses different register sizes.\r\nAnother inconsistency was the ```loadb``` VASM instruction, which for ```PPC64``` by\r\ndefault is not signed. When loading a byte and comparing with another\r\nvalue, the invalid VASM sequence ```loadb```; ```cmpq``` was being created. It was\r\nfixed lowering the ```loadb``` instruction to ```loadzbq```, in order to explicitly\r\nextend the size.","created_at":"2017-08-18T15:46:46Z","updated_at":"2017-08-23T22:15:33Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ee7e176251ecca164ccb967272f3d0bad2c3b8b6","assignee":{"login":"mxw","id":1013739,"avatar_url":"https://avatars2.githubusercontent.com/u/1013739?v=4","gravatar_id":"","url":"https://api.github.com/users/mxw","html_url":"https://github.com/mxw","followers_url":"https://api.github.com/users/mxw/followers","following_url":"https://api.github.com/users/mxw/following{/other_user}","gists_url":"https://api.github.com/users/mxw/gists{/gist_id}","starred_url":"https://api.github.com/users/mxw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mxw/subscriptions","organizations_url":"https://api.github.com/users/mxw/orgs","repos_url":"https://api.github.com/users/mxw/repos","events_url":"https://api.github.com/users/mxw/events{/privacy}","received_events_url":"https://api.github.com/users/mxw/received_events","type":"User","site_admin":false},"assignees":[{"login":"mxw","id":1013739,"avatar_url":"https://avatars2.githubusercontent.com/u/1013739?v=4","gravatar_id":"","url":"https://api.github.com/users/mxw","html_url":"https://github.com/mxw","followers_url":"https://api.github.com/users/mxw/followers","following_url":"https://api.github.com/users/mxw/following{/other_user}","gists_url":"https://api.github.com/users/mxw/gists{/gist_id}","starred_url":"https://api.github.com/users/mxw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mxw/subscriptions","organizations_url":"https://api.github.com/users/mxw/orgs","repos_url":"https://api.github.com/users/mxw/repos","events_url":"https://api.github.com/users/mxw/events{/privacy}","received_events_url":"https://api.github.com/users/mxw/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/facebook/hhvm/pulls/7965/commits","review_comments_url":"https://api.github.com/repos/facebook/hhvm/pulls/7965/comments","review_comment_url":"https://api.github.com/repos/facebook/hhvm/pulls/comments{/number}","comments_url":"https://api.github.com/repos/facebook/hhvm/issues/7965/comments","statuses_url":"https://api.github.com/repos/facebook/hhvm/statuses/84db8a17ee6550294df67c9c1ea74407a236903a","head":{"label":"PPC64:for-facebook_sign-extension","ref":"for-facebook_sign-extension","sha":"84db8a17ee6550294df67c9c1ea74407a236903a","user":{"login":"PPC64","id":12899082,"avatar_url":"https://avatars3.githubusercontent.com/u/12899082?v=4","gravatar_id":"","url":"https://api.github.com/users/PPC64","html_url":"https://github.com/PPC64","followers_url":"https://api.github.com/users/PPC64/followers","following_url":"https://api.github.com/users/PPC64/following{/other_user}","gists_url":"https://api.github.com/users/PPC64/gists{/gist_id}","starred_url":"https://api.github.com/users/PPC64/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PPC64/subscriptions","organizations_url":"https://api.github.com/users/PPC64/orgs","repos_url":"https://api.github.com/users/PPC64/repos","events_url":"https://api.github.com/users/PPC64/events{/privacy}","received_events_url":"https://api.github.com/users/PPC64/received_events","type":"Organization","site_admin":false},"repo":{"id":31548204,"name":"hhvm","full_name":"PPC64/hhvm","owner":{"login":"PPC64","id":12899082,"avatar_url":"https://avatars3.githubusercontent.com/u/12899082?v=4","gravatar_id":"","url":"https://api.github.com/users/PPC64","html_url":"https://github.com/PPC64","followers_url":"https://api.github.com/users/PPC64/followers","following_url":"https://api.github.com/users/PPC64/following{/other_user}","gists_url":"https://api.github.com/users/PPC64/gists{/gist_id}","starred_url":"https://api.github.com/users/PPC64/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PPC64/subscriptions","organizations_url":"https://api.github.com/users/PPC64/orgs","repos_url":"https://api.github.com/users/PPC64/repos","events_url":"https://api.github.com/users/PPC64/events{/privacy}","received_events_url":"https://api.github.com/users/PPC64/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/PPC64/hhvm","description":"A virtual machine designed for executing programs written in Hack and PHP. ","fork":true,"url":"https://api.github.com/repos/PPC64/hhvm","forks_url":"https://api.github.com/repos/PPC64/hhvm/forks","keys_url":"https://api.github.com/repos/PPC64/hhvm/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PPC64/hhvm/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PPC64/hhvm/teams","hooks_url":"https://api.github.com/repos/PPC64/hhvm/hooks","issue_events_url":"https://api.github.com/repos/PPC64/hhvm/issues/events{/number}","events_url":"https://api.github.com/repos/PPC64/hhvm/events","assignees_url":"https://api.github.com/repos/PPC64/hhvm/assignees{/user}","branches_url":"https://api.github.com/repos/PPC64/hhvm/branches{/branch}","tags_url":"https://api.github.com/repos/PPC64/hhvm/tags","blobs_url":"https://api.github.com/repos/PPC64/hhvm/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PPC64/hhvm/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PPC64/hhvm/git/refs{/sha}","trees_url":"https://api.github.com/repos/PPC64/hhvm/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PPC64/hhvm/statuses/{sha}","languages_url":"https://api.github.com/repos/PPC64/hhvm/languages","stargazers_url":"https://api.github.com/repos/PPC64/hhvm/stargazers","contributors_url":"https://api.github.com/repos/PPC64/hhvm/contributors","subscribers_url":"https://api.github.com/repos/PPC64/hhvm/subscribers","subscription_url":"https://api.github.com/repos/PPC64/hhvm/subscription","commits_url":"https://api.github.com/repos/PPC64/hhvm/commits{/sha}","git_commits_url":"https://api.github.com/repos/PPC64/hhvm/git/commits{/sha}","comments_url":"https://api.github.com/repos/PPC64/hhvm/comments{/number}","issue_comment_url":"https://api.github.com/repos/PPC64/hhvm/issues/comments{/number}","contents_url":"https://api.github.com/repos/PPC64/hhvm/contents/{+path}","compare_url":"https://api.github.com/repos/PPC64/hhvm/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PPC64/hhvm/merges","archive_url":"https://api.github.com/repos/PPC64/hhvm/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PPC64/hhvm/downloads","issues_url":"https://api.github.com/repos/PPC64/hhvm/issues{/number}","pulls_url":"https://api.github.com/repos/PPC64/hhvm/pulls{/number}","milestones_url":"https://api.github.com/repos/PPC64/hhvm/milestones{/number}","notifications_url":"https://api.github.com/repos/PPC64/hhvm/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PPC64/hhvm/labels{/name}","releases_url":"https://api.github.com/repos/PPC64/hhvm/releases{/id}","deployments_url":"https://api.github.com/repos/PPC64/hhvm/deployments","created_at":"2015-03-02T15:55:32Z","updated_at":"2017-06-20T13:05:15Z","pushed_at":"2017-08-18T19:43:17Z","git_url":"git://github.com/PPC64/hhvm.git","ssh_url":"git@github.com:PPC64/hhvm.git","clone_url":"https://github.com/PPC64/hhvm.git","svn_url":"https://github.com/PPC64/hhvm","homepage":"http://hhvm.com","size":270516,"stargazers_count":6,"watchers_count":6,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":20,"forks":2,"open_issues":20,"watchers":6,"default_branch":"next"}},"base":{"label":"facebook:master","ref":"master","sha":"cc3c6f2764282cb5cdd59db580edfba098dec469","user":{"login":"facebook","id":69631,"avatar_url":"https://avatars3.githubusercontent.com/u/69631?v=4","gravatar_id":"","url":"https://api.github.com/users/facebook","html_url":"https://github.com/facebook","followers_url":"https://api.github.com/users/facebook/followers","following_url":"https://api.github.com/users/facebook/following{/other_user}","gists_url":"https://api.github.com/users/facebook/gists{/gist_id}","starred_url":"https://api.github.com/users/facebook/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/facebook/subscriptions","organizations_url":"https://api.github.com/users/facebook/orgs","repos_url":"https://api.github.com/users/facebook/repos","events_url":"https://api.github.com/users/facebook/events{/privacy}","received_events_url":"https://api.github.com/users/facebook/received_events","type":"Organization","site_admin":false},"repo":{"id":455600,"name":"hhvm","full_name":"facebook/hhvm","owner":{"login":"facebook","id":69631,"avatar_url":"https://avatars3.githubusercontent.com/u/69631?v=4","gravatar_id":"","url":"https://api.github.com/users/facebook","html_url":"https://github.com/facebook","followers_url":"https://api.github.com/users/facebook/followers","following_url":"https://api.github.com/users/facebook/following{/other_user}","gists_url":"https://api.github.com/users/facebook/gists{/gist_id}","starred_url":"https://api.github.com/users/facebook/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/facebook/subscriptions","organizations_url":"https://api.github.com/users/facebook/orgs","repos_url":"https://api.github.com/users/facebook/repos","events_url":"https://api.github.com/users/facebook/events{/privacy}","received_events_url":"https://api.github.com/users/facebook/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/facebook/hhvm","description":"A virtual machine designed for executing programs written in Hack and PHP. ","fork":false,"url":"https://api.github.com/repos/facebook/hhvm","forks_url":"https://api.github.com/repos/facebook/hhvm/forks","keys_url":"https://api.github.com/repos/facebook/hhvm/keys{/key_id}","collaborators_url":"https://api.github.com/repos/facebook/hhvm/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/facebook/hhvm/teams","hooks_url":"https://api.github.com/repos/facebook/hhvm/hooks","issue_events_url":"https://api.github.com/repos/facebook/hhvm/issues/events{/number}","events_url":"https://api.github.com/repos/facebook/hhvm/events","assignees_url":"https://api.github.com/repos/facebook/hhvm/assignees{/user}","branches_url":"https://api.github.com/repos/facebook/hhvm/branches{/branch}","tags_url":"https://api.github.com/repos/facebook/hhvm/tags","blobs_url":"https://api.github.com/repos/facebook/hhvm/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/facebook/hhvm/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/facebook/hhvm/git/refs{/sha}","trees_url":"https://api.github.com/repos/facebook/hhvm/git/trees{/sha}","statuses_url":"https://api.github.com/repos/facebook/hhvm/statuses/{sha}","languages_url":"https://api.github.com/repos/facebook/hhvm/languages","stargazers_url":"https://api.github.com/repos/facebook/hhvm/stargazers","contributors_url":"https://api.github.com/repos/facebook/hhvm/contributors","subscribers_url":"https://api.github.com/repos/facebook/hhvm/subscribers","subscription_url":"https://api.github.com/repos/facebook/hhvm/subscription","commits_url":"https://api.github.com/repos/facebook/hhvm/commits{/sha}","git_commits_url":"https://api.github.com/repos/facebook/hhvm/git/commits{/sha}","comments_url":"https://api.github.com/repos/facebook/hhvm/comments{/number}","issue_comment_url":"https://api.github.com/repos/facebook/hhvm/issues/comments{/number}","contents_url":"https://api.github.com/repos/facebook/hhvm/contents/{+path}","compare_url":"https://api.github.com/repos/facebook/hhvm/compare/{base}...{head}","merges_url":"https://api.github.com/repos/facebook/hhvm/merges","archive_url":"https://api.github.com/repos/facebook/hhvm/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/facebook/hhvm/downloads","issues_url":"https://api.github.com/repos/facebook/hhvm/issues{/number}","pulls_url":"https://api.github.com/repos/facebook/hhvm/pulls{/number}","milestones_url":"https://api.github.com/repos/facebook/hhvm/milestones{/number}","notifications_url":"https://api.github.com/repos/facebook/hhvm/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/facebook/hhvm/labels{/name}","releases_url":"https://api.github.com/repos/facebook/hhvm/releases{/id}","deployments_url":"https://api.github.com/repos/facebook/hhvm/deployments","created_at":"2010-01-02T01:17:06Z","updated_at":"2017-08-23T13:52:06Z","pushed_at":"2017-08-23T21:39:28Z","git_url":"git://github.com/facebook/hhvm.git","ssh_url":"git@github.com:facebook/hhvm.git","clone_url":"https://github.com/facebook/hhvm.git","svn_url":"https://github.com/facebook/hhvm","homepage":"http://hhvm.com","size":275340,"stargazers_count":14702,"watchers_count":14702,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":true,"has_pages":false,"forks_count":2699,"mirror_url":null,"open_issues_count":771,"forks":2699,"open_issues":771,"watchers":14702,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/facebook/hhvm/pulls/7965"},"html":{"href":"https://github.com/facebook/hhvm/pull/7965"},"issue":{"href":"https://api.github.com/repos/facebook/hhvm/issues/7965"},"comments":{"href":"https://api.github.com/repos/facebook/hhvm/issues/7965/comments"},"review_comments":{"href":"https://api.github.com/repos/facebook/hhvm/pulls/7965/comments"},"review_comment":{"href":"https://api.github.com/repos/facebook/hhvm/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/facebook/hhvm/pulls/7965/commits"},"statuses":{"href":"https://api.github.com/repos/facebook/hhvm/statuses/84db8a17ee6550294df67c9c1ea74407a236903a"}}}}
{"actor":{"display_login":"mxw"}}