{"action":"created","issue":{"url":"https://api.github.com/repos/hercules-390/hyperion/issues/33","repository_url":"https://api.github.com/repos/hercules-390/hyperion","labels_url":"https://api.github.com/repos/hercules-390/hyperion/issues/33/labels{/name}","comments_url":"https://api.github.com/repos/hercules-390/hyperion/issues/33/comments","events_url":"https://api.github.com/repos/hercules-390/hyperion/issues/33/events","html_url":"https://github.com/hercules-390/hyperion/issues/33","id":40952904,"number":33,"title":"Improve Softfloat implementation","user":{"login":"dfortner","id":4025756,"avatar_url":"https://avatars.githubusercontent.com/u/4025756?v=3","gravatar_id":"","url":"https://api.github.com/users/dfortner","html_url":"https://github.com/dfortner","followers_url":"https://api.github.com/users/dfortner/followers","following_url":"https://api.github.com/users/dfortner/following{/other_user}","gists_url":"https://api.github.com/users/dfortner/gists{/gist_id}","starred_url":"https://api.github.com/users/dfortner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dfortner/subscriptions","organizations_url":"https://api.github.com/users/dfortner/orgs","repos_url":"https://api.github.com/users/dfortner/repos","events_url":"https://api.github.com/users/dfortner/events{/privacy}","received_events_url":"https://api.github.com/users/dfortner/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/hercules-390/hyperion/labels/Enhancement","name":"Enhancement","color":"0099FF"},{"url":"https://api.github.com/repos/hercules-390/hyperion/labels/HAS%20DEPENDENCIES","name":"HAS DEPENDENCIES","color":"FF5555"},{"url":"https://api.github.com/repos/hercules-390/hyperion/labels/Researching...","name":"Researching...","color":"FFCC99"}],"state":"open","locked":false,"assignee":{"login":"srorso","id":17149494,"avatar_url":"https://avatars.githubusercontent.com/u/17149494?v=3","gravatar_id":"","url":"https://api.github.com/users/srorso","html_url":"https://github.com/srorso","followers_url":"https://api.github.com/users/srorso/followers","following_url":"https://api.github.com/users/srorso/following{/other_user}","gists_url":"https://api.github.com/users/srorso/gists{/gist_id}","starred_url":"https://api.github.com/users/srorso/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/srorso/subscriptions","organizations_url":"https://api.github.com/users/srorso/orgs","repos_url":"https://api.github.com/users/srorso/repos","events_url":"https://api.github.com/users/srorso/events{/privacy}","received_events_url":"https://api.github.com/users/srorso/received_events","type":"User","site_admin":false},"milestone":null,"comments":2,"created_at":"2014-08-22T21:39:45Z","updated_at":"2016-05-06T19:58:08Z","closed_at":null,"body":"Roger appears to have integrated the softfloat package into his spinhawk in a different manner than the way I originally implemented it into Hyperion.\r\n\r\nMy implementation modified every softfloat function to pass along a \"ctx\" context variable whereas his implementation does not and thus appears to be much cleaner and more straightforward and therefore prefer his implementation over mine.\r\n\r\nThe difference in the implementations also makes it more difficult to port fixes to existing floating point instructions as well as introducing (or finishing) new floating point functionality such as the Floating Point Extension Facility (which has not been fully implemented yet in Hyperion (it appears to only be half finished!) whereas it appears to have been fully implemented in Roger's spinhawk).\r\n\r\nThis GitHub issue has therefore been created to address the need to bring Hyperion's softfloat implementation into alignment with spinhawk's to make it easier to address other dependent floating point issues that currently exist and may arise in the future.\r\n"},"comment":{"url":"https://api.github.com/repos/hercules-390/hyperion/issues/comments/217543567","html_url":"https://github.com/hercules-390/hyperion/issues/33#issuecomment-217543567","issue_url":"https://api.github.com/repos/hercules-390/hyperion/issues/33","id":217543567,"user":{"login":"srorso","id":17149494,"avatar_url":"https://avatars.githubusercontent.com/u/17149494?v=3","gravatar_id":"","url":"https://api.github.com/users/srorso","html_url":"https://github.com/srorso","followers_url":"https://api.github.com/users/srorso/followers","following_url":"https://api.github.com/users/srorso/following{/other_user}","gists_url":"https://api.github.com/users/srorso/gists{/gist_id}","starred_url":"https://api.github.com/users/srorso/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/srorso/subscriptions","organizations_url":"https://api.github.com/users/srorso/orgs","repos_url":"https://api.github.com/users/srorso/repos","events_url":"https://api.github.com/users/srorso/events{/privacy}","received_events_url":"https://api.github.com/users/srorso/received_events","type":"User","site_admin":false},"created_at":"2016-05-06T19:58:08Z","updated_at":"2016-05-06T19:58:08Z","body":"It is tempting to approach this issue by transporting code from Spinhawk into Hyperion.  \r\n\r\nSpinhawk's code avoids the call-backs and context passing by using thread-instantiated variables, and that would be relatively easy to migrate into Hyperion's Softfloat implementation.  \r\n\r\nBut the Spinhawk ieee.c also seems to include support for nearly all of the Floating Point Extension Facility (PFPO is not implemented, although a pfpo.c shell exists).  In particular, it includes RRF-e instruction decode, includes code for all of the \"A\" floating point instructions (_e.g._, LEXBRA). and supports the additional rounding modes that were added somewhere between z/Arch POP -7 and -10.  \r\n\r\nThis approach would also address #34, and would simplify future cross-ports of fixes.  "}}