{"action":"created","issue":{"url":"https://api.github.com/repos/facebook/hhvm/issues/7455","repository_url":"https://api.github.com/repos/facebook/hhvm","labels_url":"https://api.github.com/repos/facebook/hhvm/issues/7455/labels{/name}","comments_url":"https://api.github.com/repos/facebook/hhvm/issues/7455/comments","events_url":"https://api.github.com/repos/facebook/hhvm/issues/7455/events","html_url":"https://github.com/facebook/hhvm/pull/7455","id":186291915,"number":7455,"title":"Fix sign ext/mov vasms for PPC64.","user":{"login":"racardoso","id":13421176,"avatar_url":"https://avatars.githubusercontent.com/u/13421176?v=3","gravatar_id":"","url":"https://api.github.com/users/racardoso","html_url":"https://github.com/racardoso","followers_url":"https://api.github.com/users/racardoso/followers","following_url":"https://api.github.com/users/racardoso/following{/other_user}","gists_url":"https://api.github.com/users/racardoso/gists{/gist_id}","starred_url":"https://api.github.com/users/racardoso/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/racardoso/subscriptions","organizations_url":"https://api.github.com/users/racardoso/orgs","repos_url":"https://api.github.com/users/racardoso/repos","events_url":"https://api.github.com/users/racardoso/events{/privacy}","received_events_url":"https://api.github.com/users/racardoso/received_events","type":"User","site_admin":false},"labels":[{"id":196857004,"url":"https://api.github.com/repos/facebook/hhvm/labels/CLA%20Signed","name":"CLA Signed","color":"009900","default":false},{"id":434441950,"url":"https://api.github.com/repos/facebook/hhvm/labels/GH%20Review:%20review-needed","name":"GH Review: review-needed","color":"fbca04","default":false}],"state":"open","locked":false,"assignee":{"login":"mxw","id":1013739,"avatar_url":"https://avatars.githubusercontent.com/u/1013739?v=3","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://avatars.githubusercontent.com/u/1013739?v=3","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}],"milestone":null,"comments":5,"created_at":"2016-10-31T14:06:57Z","updated_at":"2016-11-16T12:10:55Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/facebook/hhvm/pulls/7455","html_url":"https://github.com/facebook/hhvm/pull/7455","diff_url":"https://github.com/facebook/hhvm/pull/7455.diff","patch_url":"https://github.com/facebook/hhvm/pull/7455.patch"},"body":"Summary:\r\n\r\nThis commit fixes move and (signal) extensions vasms for PPC64. Some vasms\r\nthat needs to move values less than 64 bits to 64 bits registers.\r\n\r\nThose vasms were tranlated to pairs that mov and sign extend (rlwinm + exts*)\r\nthat are used even when a sign extended are not intended like movz* or\r\nbitwise (xor*, and*) which can lead to a wrong behavior or emit a extra useless\r\nsign extend instruction.\r\n\r\nThis commit fixes that problem, now we only extend sign when it's needed.\r\nTo summarize this fix:\r\n\r\n- Do not consider a movb with r(src) = r(dst) as a trivial nop on PPC64 as\r\nmovb is mapped to a ppc64 instruction (rlwinm) that always zeros upper bits and\r\nis used in different places unlike x64.\r\n- Vasm extrw was implemented by mwillians as a movw that do not sign extend and\r\nused on movzwq instructions. Now movzwq uses a movw instruction and extrw was\r\nchanged to do movw and sign extend.\r\n- When change extrw to use ppc64 instruction extsw got a invalid cast Reg64 to\r\nReg16. This was fixed adding a extra (implicit) constructor on\r\nvasm-reg.h.\r\n- Remove some wierd calculations for mask size when map mov* instructions to\r\n  ppc64 asm.\r\n- Fix extsw, extsh to include rc param even if we don't emit rc (CR record)\r\nversion of those instructions."},"comment":{"url":"https://api.github.com/repos/facebook/hhvm/issues/comments/260931031","html_url":"https://github.com/facebook/hhvm/pull/7455#issuecomment-260931031","issue_url":"https://api.github.com/repos/facebook/hhvm/issues/7455","id":260931031,"user":{"login":"racardoso","id":13421176,"avatar_url":"https://avatars.githubusercontent.com/u/13421176?v=3","gravatar_id":"","url":"https://api.github.com/users/racardoso","html_url":"https://github.com/racardoso","followers_url":"https://api.github.com/users/racardoso/followers","following_url":"https://api.github.com/users/racardoso/following{/other_user}","gists_url":"https://api.github.com/users/racardoso/gists{/gist_id}","starred_url":"https://api.github.com/users/racardoso/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/racardoso/subscriptions","organizations_url":"https://api.github.com/users/racardoso/orgs","repos_url":"https://api.github.com/users/racardoso/repos","events_url":"https://api.github.com/users/racardoso/events{/privacy}","received_events_url":"https://api.github.com/users/racardoso/received_events","type":"User","site_admin":false},"created_at":"2016-11-16T12:10:55Z","updated_at":"2016-11-16T12:10:55Z","body":"Any news on this pull request?"}}
{"actor":{"display_login":"racardoso"}}