{"action":"created","comment":{"url":"https://api.github.com/repos/trailofbits/manticore/pulls/comments/225918892","pull_request_review_id":165618152,"id":225918892,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyNTkxODg5Mg==","diff_hunk":"@@ -4594,6 +4594,17 @@ def PMINUB(cpu, dest, src):\n             result |= Operators.ITEBV(dest.size, itema < itemb, itema, itemb) << pos\n         dest.write(result)\n \n+    @instruction\n+    def PMAXUB(cpu, dest, src):\n+        dest_value = dest.read()","path":"manticore/core/cpu/x86.py","position":6,"original_position":6,"commit_id":"926873931e351436842dd03519f379b8d8bf8944","original_commit_id":"926873931e351436842dd03519f379b8d8bf8944","user":{"login":"disconnect3d","id":10009354,"node_id":"MDQ6VXNlcjEwMDA5MzU0","avatar_url":"https://avatars2.githubusercontent.com/u/10009354?v=4","gravatar_id":"","url":"https://api.github.com/users/disconnect3d","html_url":"https://github.com/disconnect3d","followers_url":"https://api.github.com/users/disconnect3d/followers","following_url":"https://api.github.com/users/disconnect3d/following{/other_user}","gists_url":"https://api.github.com/users/disconnect3d/gists{/gist_id}","starred_url":"https://api.github.com/users/disconnect3d/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/disconnect3d/subscriptions","organizations_url":"https://api.github.com/users/disconnect3d/orgs","repos_url":"https://api.github.com/users/disconnect3d/repos","events_url":"https://api.github.com/users/disconnect3d/events{/privacy}","received_events_url":"https://api.github.com/users/disconnect3d/received_events","type":"User","site_admin":false},"body":"Can we add some example to docstring? E.g.:\r\n\r\n```\r\n$xmm1.v16_int8 = {0xe9, 0x44, 0x11, 0x0, 0xee, 0xe2, 0xe2, 0xff, 0xd8, 0xd7, 0xd6, 0xd5, 0xd4, 0xd3, 0xd2, 0xd1}\r\n$xmm2.v16_int8 = {0xe8, 0xe7, 0xe6, 0xe5, 0xe4, 0xe3, 0xe2, 0xe1, 0xf8, 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1}\r\n\r\n# executes pmauxb xmm1, xmm2\r\n$xmm1.v16_int8 = {0xe9, 0xe7, 0xe6, 0xe5, 0xee, 0xe3, 0xe2, 0xff, 0xf8, 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2, 0xf1}\r\n```\r\n\r\nJFYI I tested the instruction using gdb+pwndbg and pwntools. I made such Python script:\r\n```python\r\nfrom pwn import *\r\n\r\nr = debug_assembly('''\r\n    mov rax, 0xFFE2E2EE001144E9\r\n    movq [rsp], rax\r\n    mov rax, 0xD1D2D3D4D5D6D7D8\r\n    movq [rsp+8], rax\r\n    mov rax, 0xE1E2E3E4E5E6E7E8\r\n    movq [rsp+16], rax\r\n    mov rax, 0xF1F2F3F4F5F6F7F8\r\n    movq [rsp+24], rax\r\n    movdqu xmm1, [rsp]\r\n    movdqu xmm2, [rsp+16]\r\n    nop\r\n    pmaxub xmm1, xmm2\r\n''', arch='amd64')\r\nr.interactive()\r\n```\r\n\r\nlaunched it (under tmux so it opened another console with gdb that also loaded pwndbg) and then went through insrtructions by `si`, made `set print elements 0` and printed the values by e.g. `p/x $xmm1.v16_int8`.","created_at":"2018-10-17T13:06:07Z","updated_at":"2018-10-17T13:06:08Z","html_url":"https://github.com/trailofbits/manticore/pull/1120#discussion_r225918892","pull_request_url":"https://api.github.com/repos/trailofbits/manticore/pulls/1120","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/trailofbits/manticore/pulls/comments/225918892"},"html":{"href":"https://github.com/trailofbits/manticore/pull/1120#discussion_r225918892"},"pull_request":{"href":"https://api.github.com/repos/trailofbits/manticore/pulls/1120"}},"in_reply_to_id":225896495},"pull_request":{"url":"https://api.github.com/repos/trailofbits/manticore/pulls/1120","id":213022257,"node_id":"MDExOlB1bGxSZXF1ZXN0MjEzMDIyMjU3","html_url":"https://github.com/trailofbits/manticore/pull/1120","diff_url":"https://github.com/trailofbits/manticore/pull/1120.diff","patch_url":"https://github.com/trailofbits/manticore/pull/1120.patch","issue_url":"https://api.github.com/repos/trailofbits/manticore/issues/1120","number":1120,"state":"open","locked":false,"title":"Implements some missing X86 XMM instructions","user":{"login":"catenacyber","id":35799796,"node_id":"MDQ6VXNlcjM1Nzk5Nzk2","avatar_url":"https://avatars1.githubusercontent.com/u/35799796?v=4","gravatar_id":"","url":"https://api.github.com/users/catenacyber","html_url":"https://github.com/catenacyber","followers_url":"https://api.github.com/users/catenacyber/followers","following_url":"https://api.github.com/users/catenacyber/following{/other_user}","gists_url":"https://api.github.com/users/catenacyber/gists{/gist_id}","starred_url":"https://api.github.com/users/catenacyber/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/catenacyber/subscriptions","organizations_url":"https://api.github.com/users/catenacyber/orgs","repos_url":"https://api.github.com/users/catenacyber/repos","events_url":"https://api.github.com/users/catenacyber/events{/privacy}","received_events_url":"https://api.github.com/users/catenacyber/received_events","type":"User","site_admin":false},"body":"I hope that fixes #973 \r\nIt's been running for a while and I do not get the crash anymore (so the bug was probably in unicorn)\r\n\r\n+ one commit to raise the verbosity of unimplemented instructions...\n\n<!-- Reviewable:start -->\n---\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/trailofbits/manticore/1120)\n<!-- Reviewable:end -->\n","created_at":"2018-09-04T15:43:57Z","updated_at":"2018-10-17T13:06:08Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8ef4493dc55b0a21cdec20ca9c6ecb689587f700","assignee":{"login":"disconnect3d","id":10009354,"node_id":"MDQ6VXNlcjEwMDA5MzU0","avatar_url":"https://avatars2.githubusercontent.com/u/10009354?v=4","gravatar_id":"","url":"https://api.github.com/users/disconnect3d","html_url":"https://github.com/disconnect3d","followers_url":"https://api.github.com/users/disconnect3d/followers","following_url":"https://api.github.com/users/disconnect3d/following{/other_user}","gists_url":"https://api.github.com/users/disconnect3d/gists{/gist_id}","starred_url":"https://api.github.com/users/disconnect3d/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/disconnect3d/subscriptions","organizations_url":"https://api.github.com/users/disconnect3d/orgs","repos_url":"https://api.github.com/users/disconnect3d/repos","events_url":"https://api.github.com/users/disconnect3d/events{/privacy}","received_events_url":"https://api.github.com/users/disconnect3d/received_events","type":"User","site_admin":false},"assignees":[{"login":"disconnect3d","id":10009354,"node_id":"MDQ6VXNlcjEwMDA5MzU0","avatar_url":"https://avatars2.githubusercontent.com/u/10009354?v=4","gravatar_id":"","url":"https://api.github.com/users/disconnect3d","html_url":"https://github.com/disconnect3d","followers_url":"https://api.github.com/users/disconnect3d/followers","following_url":"https://api.github.com/users/disconnect3d/following{/other_user}","gists_url":"https://api.github.com/users/disconnect3d/gists{/gist_id}","starred_url":"https://api.github.com/users/disconnect3d/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/disconnect3d/subscriptions","organizations_url":"https://api.github.com/users/disconnect3d/orgs","repos_url":"https://api.github.com/users/disconnect3d/repos","events_url":"https://api.github.com/users/disconnect3d/events{/privacy}","received_events_url":"https://api.github.com/users/disconnect3d/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/trailofbits/manticore/pulls/1120/commits","review_comments_url":"https://api.github.com/repos/trailofbits/manticore/pulls/1120/comments","review_comment_url":"https://api.github.com/repos/trailofbits/manticore/pulls/comments{/number}","comments_url":"https://api.github.com/repos/trailofbits/manticore/issues/1120/comments","statuses_url":"https://api.github.com/repos/trailofbits/manticore/statuses/926873931e351436842dd03519f379b8d8bf8944","head":{"label":"catenacyber:x86xmm","ref":"x86xmm","sha":"926873931e351436842dd03519f379b8d8bf8944","user":{"login":"catenacyber","id":35799796,"node_id":"MDQ6VXNlcjM1Nzk5Nzk2","avatar_url":"https://avatars1.githubusercontent.com/u/35799796?v=4","gravatar_id":"","url":"https://api.github.com/users/catenacyber","html_url":"https://github.com/catenacyber","followers_url":"https://api.github.com/users/catenacyber/followers","following_url":"https://api.github.com/users/catenacyber/following{/other_user}","gists_url":"https://api.github.com/users/catenacyber/gists{/gist_id}","starred_url":"https://api.github.com/users/catenacyber/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/catenacyber/subscriptions","organizations_url":"https://api.github.com/users/catenacyber/orgs","repos_url":"https://api.github.com/users/catenacyber/repos","events_url":"https://api.github.com/users/catenacyber/events{/privacy}","received_events_url":"https://api.github.com/users/catenacyber/received_events","type":"User","site_admin":false},"repo":{"id":123420098,"node_id":"MDEwOlJlcG9zaXRvcnkxMjM0MjAwOTg=","name":"manticore","full_name":"catenacyber/manticore","private":false,"owner":{"login":"catenacyber","id":35799796,"node_id":"MDQ6VXNlcjM1Nzk5Nzk2","avatar_url":"https://avatars1.githubusercontent.com/u/35799796?v=4","gravatar_id":"","url":"https://api.github.com/users/catenacyber","html_url":"https://github.com/catenacyber","followers_url":"https://api.github.com/users/catenacyber/followers","following_url":"https://api.github.com/users/catenacyber/following{/other_user}","gists_url":"https://api.github.com/users/catenacyber/gists{/gist_id}","starred_url":"https://api.github.com/users/catenacyber/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/catenacyber/subscriptions","organizations_url":"https://api.github.com/users/catenacyber/orgs","repos_url":"https://api.github.com/users/catenacyber/repos","events_url":"https://api.github.com/users/catenacyber/events{/privacy}","received_events_url":"https://api.github.com/users/catenacyber/received_events","type":"User","site_admin":false},"html_url":"https://github.com/catenacyber/manticore","description":"Symbolic execution tool","fork":true,"url":"https://api.github.com/repos/catenacyber/manticore","forks_url":"https://api.github.com/repos/catenacyber/manticore/forks","keys_url":"https://api.github.com/repos/catenacyber/manticore/keys{/key_id}","collaborators_url":"https://api.github.com/repos/catenacyber/manticore/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/catenacyber/manticore/teams","hooks_url":"https://api.github.com/repos/catenacyber/manticore/hooks","issue_events_url":"https://api.github.com/repos/catenacyber/manticore/issues/events{/number}","events_url":"https://api.github.com/repos/catenacyber/manticore/events","assignees_url":"https://api.github.com/repos/catenacyber/manticore/assignees{/user}","branches_url":"https://api.github.com/repos/catenacyber/manticore/branches{/branch}","tags_url":"https://api.github.com/repos/catenacyber/manticore/tags","blobs_url":"https://api.github.com/repos/catenacyber/manticore/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/catenacyber/manticore/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/catenacyber/manticore/git/refs{/sha}","trees_url":"https://api.github.com/repos/catenacyber/manticore/git/trees{/sha}","statuses_url":"https://api.github.com/repos/catenacyber/manticore/statuses/{sha}","languages_url":"https://api.github.com/repos/catenacyber/manticore/languages","stargazers_url":"https://api.github.com/repos/catenacyber/manticore/stargazers","contributors_url":"https://api.github.com/repos/catenacyber/manticore/contributors","subscribers_url":"https://api.github.com/repos/catenacyber/manticore/subscribers","subscription_url":"https://api.github.com/repos/catenacyber/manticore/subscription","commits_url":"https://api.github.com/repos/catenacyber/manticore/commits{/sha}","git_commits_url":"https://api.github.com/repos/catenacyber/manticore/git/commits{/sha}","comments_url":"https://api.github.com/repos/catenacyber/manticore/comments{/number}","issue_comment_url":"https://api.github.com/repos/catenacyber/manticore/issues/comments{/number}","contents_url":"https://api.github.com/repos/catenacyber/manticore/contents/{+path}","compare_url":"https://api.github.com/repos/catenacyber/manticore/compare/{base}...{head}","merges_url":"https://api.github.com/repos/catenacyber/manticore/merges","archive_url":"https://api.github.com/repos/catenacyber/manticore/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/catenacyber/manticore/downloads","issues_url":"https://api.github.com/repos/catenacyber/manticore/issues{/number}","pulls_url":"https://api.github.com/repos/catenacyber/manticore/pulls{/number}","milestones_url":"https://api.github.com/repos/catenacyber/manticore/milestones{/number}","notifications_url":"https://api.github.com/repos/catenacyber/manticore/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/catenacyber/manticore/labels{/name}","releases_url":"https://api.github.com/repos/catenacyber/manticore/releases{/id}","deployments_url":"https://api.github.com/repos/catenacyber/manticore/deployments","created_at":"2018-03-01T10:31:02Z","updated_at":"2018-09-04T15:41:40Z","pushed_at":"2018-10-10T07:22:16Z","git_url":"git://github.com/catenacyber/manticore.git","ssh_url":"git@github.com:catenacyber/manticore.git","clone_url":"https://github.com/catenacyber/manticore.git","svn_url":"https://github.com/catenacyber/manticore","homepage":"https://blog.trailofbits.com/2017/04/27/manticore-symbolic-execution-for-humans/","size":14559,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"agpl-3.0","name":"GNU Affero General Public License v3.0","spdx_id":"AGPL-3.0","url":"https://api.github.com/licenses/agpl-3.0","node_id":"MDc6TGljZW5zZTE="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"trailofbits:master","ref":"master","sha":"09e646d68701555900fa950e484fd09da16a6106","user":{"login":"trailofbits","id":2314423,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIzMTQ0MjM=","avatar_url":"https://avatars0.githubusercontent.com/u/2314423?v=4","gravatar_id":"","url":"https://api.github.com/users/trailofbits","html_url":"https://github.com/trailofbits","followers_url":"https://api.github.com/users/trailofbits/followers","following_url":"https://api.github.com/users/trailofbits/following{/other_user}","gists_url":"https://api.github.com/users/trailofbits/gists{/gist_id}","starred_url":"https://api.github.com/users/trailofbits/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/trailofbits/subscriptions","organizations_url":"https://api.github.com/users/trailofbits/orgs","repos_url":"https://api.github.com/users/trailofbits/repos","events_url":"https://api.github.com/users/trailofbits/events{/privacy}","received_events_url":"https://api.github.com/users/trailofbits/received_events","type":"Organization","site_admin":false},"repo":{"id":81612762,"node_id":"MDEwOlJlcG9zaXRvcnk4MTYxMjc2Mg==","name":"manticore","full_name":"trailofbits/manticore","private":false,"owner":{"login":"trailofbits","id":2314423,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIzMTQ0MjM=","avatar_url":"https://avatars0.githubusercontent.com/u/2314423?v=4","gravatar_id":"","url":"https://api.github.com/users/trailofbits","html_url":"https://github.com/trailofbits","followers_url":"https://api.github.com/users/trailofbits/followers","following_url":"https://api.github.com/users/trailofbits/following{/other_user}","gists_url":"https://api.github.com/users/trailofbits/gists{/gist_id}","starred_url":"https://api.github.com/users/trailofbits/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/trailofbits/subscriptions","organizations_url":"https://api.github.com/users/trailofbits/orgs","repos_url":"https://api.github.com/users/trailofbits/repos","events_url":"https://api.github.com/users/trailofbits/events{/privacy}","received_events_url":"https://api.github.com/users/trailofbits/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/trailofbits/manticore","description":"Symbolic execution tool","fork":false,"url":"https://api.github.com/repos/trailofbits/manticore","forks_url":"https://api.github.com/repos/trailofbits/manticore/forks","keys_url":"https://api.github.com/repos/trailofbits/manticore/keys{/key_id}","collaborators_url":"https://api.github.com/repos/trailofbits/manticore/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/trailofbits/manticore/teams","hooks_url":"https://api.github.com/repos/trailofbits/manticore/hooks","issue_events_url":"https://api.github.com/repos/trailofbits/manticore/issues/events{/number}","events_url":"https://api.github.com/repos/trailofbits/manticore/events","assignees_url":"https://api.github.com/repos/trailofbits/manticore/assignees{/user}","branches_url":"https://api.github.com/repos/trailofbits/manticore/branches{/branch}","tags_url":"https://api.github.com/repos/trailofbits/manticore/tags","blobs_url":"https://api.github.com/repos/trailofbits/manticore/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/trailofbits/manticore/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/trailofbits/manticore/git/refs{/sha}","trees_url":"https://api.github.com/repos/trailofbits/manticore/git/trees{/sha}","statuses_url":"https://api.github.com/repos/trailofbits/manticore/statuses/{sha}","languages_url":"https://api.github.com/repos/trailofbits/manticore/languages","stargazers_url":"https://api.github.com/repos/trailofbits/manticore/stargazers","contributors_url":"https://api.github.com/repos/trailofbits/manticore/contributors","subscribers_url":"https://api.github.com/repos/trailofbits/manticore/subscribers","subscription_url":"https://api.github.com/repos/trailofbits/manticore/subscription","commits_url":"https://api.github.com/repos/trailofbits/manticore/commits{/sha}","git_commits_url":"https://api.github.com/repos/trailofbits/manticore/git/commits{/sha}","comments_url":"https://api.github.com/repos/trailofbits/manticore/comments{/number}","issue_comment_url":"https://api.github.com/repos/trailofbits/manticore/issues/comments{/number}","contents_url":"https://api.github.com/repos/trailofbits/manticore/contents/{+path}","compare_url":"https://api.github.com/repos/trailofbits/manticore/compare/{base}...{head}","merges_url":"https://api.github.com/repos/trailofbits/manticore/merges","archive_url":"https://api.github.com/repos/trailofbits/manticore/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/trailofbits/manticore/downloads","issues_url":"https://api.github.com/repos/trailofbits/manticore/issues{/number}","pulls_url":"https://api.github.com/repos/trailofbits/manticore/pulls{/number}","milestones_url":"https://api.github.com/repos/trailofbits/manticore/milestones{/number}","notifications_url":"https://api.github.com/repos/trailofbits/manticore/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/trailofbits/manticore/labels{/name}","releases_url":"https://api.github.com/repos/trailofbits/manticore/releases{/id}","deployments_url":"https://api.github.com/repos/trailofbits/manticore/deployments","created_at":"2017-02-10T22:28:34Z","updated_at":"2018-10-17T00:58:54Z","pushed_at":"2018-10-17T08:53:46Z","git_url":"git://github.com/trailofbits/manticore.git","ssh_url":"git@github.com:trailofbits/manticore.git","clone_url":"https://github.com/trailofbits/manticore.git","svn_url":"https://github.com/trailofbits/manticore","homepage":"https://blog.trailofbits.com/2017/04/27/manticore-symbolic-execution-for-humans/","size":18817,"stargazers_count":1348,"watchers_count":1348,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":203,"mirror_url":null,"archived":false,"open_issues_count":151,"license":{"key":"agpl-3.0","name":"GNU Affero General Public License v3.0","spdx_id":"AGPL-3.0","url":"https://api.github.com/licenses/agpl-3.0","node_id":"MDc6TGljZW5zZTE="},"forks":203,"open_issues":151,"watchers":1348,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/trailofbits/manticore/pulls/1120"},"html":{"href":"https://github.com/trailofbits/manticore/pull/1120"},"issue":{"href":"https://api.github.com/repos/trailofbits/manticore/issues/1120"},"comments":{"href":"https://api.github.com/repos/trailofbits/manticore/issues/1120/comments"},"review_comments":{"href":"https://api.github.com/repos/trailofbits/manticore/pulls/1120/comments"},"review_comment":{"href":"https://api.github.com/repos/trailofbits/manticore/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/trailofbits/manticore/pulls/1120/commits"},"statuses":{"href":"https://api.github.com/repos/trailofbits/manticore/statuses/926873931e351436842dd03519f379b8d8bf8944"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"disconnect3d"}}