{"action":"created","issue":{"url":"https://api.github.com/repos/radare/radare2/issues/2420","labels_url":"https://api.github.com/repos/radare/radare2/issues/2420/labels{/name}","comments_url":"https://api.github.com/repos/radare/radare2/issues/2420/comments","events_url":"https://api.github.com/repos/radare/radare2/issues/2420/events","html_url":"https://github.com/radare/radare2/issues/2420","id":70170993,"number":2420,"title":"Feature request: Add a memory reference type to ESIL","user":{"login":"dkreuter","id":15789,"avatar_url":"https://avatars.githubusercontent.com/u/15789?v=3","gravatar_id":"","url":"https://api.github.com/users/dkreuter","html_url":"https://github.com/dkreuter","followers_url":"https://api.github.com/users/dkreuter/followers","following_url":"https://api.github.com/users/dkreuter/following{/other_user}","gists_url":"https://api.github.com/users/dkreuter/gists{/gist_id}","starred_url":"https://api.github.com/users/dkreuter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dkreuter/subscriptions","organizations_url":"https://api.github.com/users/dkreuter/orgs","repos_url":"https://api.github.com/users/dkreuter/repos","events_url":"https://api.github.com/users/dkreuter/events{/privacy}","received_events_url":"https://api.github.com/users/dkreuter/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/radare/radare2/labels/esil","name":"esil","color":"bfe5bf"},{"url":"https://api.github.com/repos/radare/radare2/labels/question","name":"question","color":"cc317c"},{"url":"https://api.github.com/repos/radare/radare2/labels/refactor","name":"refactor","color":"009800"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/radare/radare2/milestones/4","html_url":"https://github.com/radare/radare2/milestones/1.0.0","labels_url":"https://api.github.com/repos/radare/radare2/milestones/4/labels","id":430858,"number":4,"title":"1.0.0","description":"","creator":{"login":"XVilka","id":203261,"avatar_url":"https://avatars.githubusercontent.com/u/203261?v=3","gravatar_id":"","url":"https://api.github.com/users/XVilka","html_url":"https://github.com/XVilka","followers_url":"https://api.github.com/users/XVilka/followers","following_url":"https://api.github.com/users/XVilka/following{/other_user}","gists_url":"https://api.github.com/users/XVilka/gists{/gist_id}","starred_url":"https://api.github.com/users/XVilka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/XVilka/subscriptions","organizations_url":"https://api.github.com/users/XVilka/orgs","repos_url":"https://api.github.com/users/XVilka/repos","events_url":"https://api.github.com/users/XVilka/events{/privacy}","received_events_url":"https://api.github.com/users/XVilka/received_events","type":"User","site_admin":false},"open_issues":97,"closed_issues":4,"state":"open","created_at":"2013-09-18T15:40:16Z","updated_at":"2015-04-22T16:20:50Z","due_on":null,"closed_at":null},"comments":2,"created_at":"2015-04-22T16:14:44Z","updated_at":"2015-04-22T17:09:27Z","closed_at":null,"body":"I propose a new ESIL type and corresponding instructions. What used what used to be\r\n\r\n    a, b, +=[2]\r\n\r\nshall become\r\n\r\n    a, b, ref[2], +=\r\n\r\nIt would simplify generation, analysis and interpretation. Two open questions:\r\n* The names for the instructions turning addresses into lvalues. Suggestions: \"ref[2]\", \"\\*(ut16*)\", …\r\n* The on-stack representation of the value. Suggestions: \"[2]0xffff\", \"\\*(ut16*)0xffff\", \"\\*2:0xffff\" …\r\nMaybe prefix normal numbers with some bytes so they can be turned into memory references by changing the prefix.\r\n\r\nPinging for feedback/approval: @radare @condret @crowell @jpenalbae"},"comment":{"url":"https://api.github.com/repos/radare/radare2/issues/comments/95267126","html_url":"https://github.com/radare/radare2/issues/2420#issuecomment-95267126","issue_url":"https://api.github.com/repos/radare/radare2/issues/2420","id":95267126,"user":{"login":"dkreuter","id":15789,"avatar_url":"https://avatars.githubusercontent.com/u/15789?v=3","gravatar_id":"","url":"https://api.github.com/users/dkreuter","html_url":"https://github.com/dkreuter","followers_url":"https://api.github.com/users/dkreuter/followers","following_url":"https://api.github.com/users/dkreuter/following{/other_user}","gists_url":"https://api.github.com/users/dkreuter/gists{/gist_id}","starred_url":"https://api.github.com/users/dkreuter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dkreuter/subscriptions","organizations_url":"https://api.github.com/users/dkreuter/orgs","repos_url":"https://api.github.com/users/dkreuter/repos","events_url":"https://api.github.com/users/dkreuter/events{/privacy}","received_events_url":"https://api.github.com/users/dkreuter/received_events","type":"User","site_admin":false},"created_at":"2015-04-22T17:09:27Z","updated_at":"2015-04-22T17:09:27Z","body":"@crowell += would still only pop 2 elements\r\nref[2] pops 'b', evaluates it (let's say b is '10'), then pushes \"*10\"\r\n+= would then pop two elements: \"*10\" and \"a\""}}