{"action":"created","issue":{"url":"https://api.github.com/repos/Microsoft/PQCrypto-SIDH/issues/3","repository_url":"https://api.github.com/repos/Microsoft/PQCrypto-SIDH","labels_url":"https://api.github.com/repos/Microsoft/PQCrypto-SIDH/issues/3/labels{/name}","comments_url":"https://api.github.com/repos/Microsoft/PQCrypto-SIDH/issues/3/comments","events_url":"https://api.github.com/repos/Microsoft/PQCrypto-SIDH/issues/3/events","html_url":"https://github.com/Microsoft/PQCrypto-SIDH/issues/3","id":233105155,"number":3,"title":"ARM64 code for Apple iOS devices supporting ARM64 ","user":{"login":"wernerd","id":516497,"avatar_url":"https://avatars3.githubusercontent.com/u/516497?v=3","gravatar_id":"","url":"https://api.github.com/users/wernerd","html_url":"https://github.com/wernerd","followers_url":"https://api.github.com/users/wernerd/followers","following_url":"https://api.github.com/users/wernerd/following{/other_user}","gists_url":"https://api.github.com/users/wernerd/gists{/gist_id}","starred_url":"https://api.github.com/users/wernerd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wernerd/subscriptions","organizations_url":"https://api.github.com/users/wernerd/orgs","repos_url":"https://api.github.com/users/wernerd/repos","events_url":"https://api.github.com/users/wernerd/events{/privacy}","received_events_url":"https://api.github.com/users/wernerd/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2017-06-02T07:58:03Z","updated_at":"2017-06-02T17:01:47Z","closed_at":null,"body":"The Apple A7 - A10 processors are ARM64 compatible and run iOS. I know that the SIDH code was designed for Linux/Windows,  however it should not be a big issue to make it ready for iOS based ARM64 systems ;-)  . I did a quick check (no testing yet) about the iOS requirements for ARM64 assembler code and found one issue regarding usage of register x18:\r\nhttps://developer.apple.com/library/content/documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARM64FunctionCallingConventions.html\r\n\r\nCurrently the ARM64 assembler code uses x18 which is reserved if the code runs on iOS. Maybe the code can use some other register? Maybe not a high priority issue yet :-) ."},"comment":{"url":"https://api.github.com/repos/Microsoft/PQCrypto-SIDH/issues/comments/305852174","html_url":"https://github.com/Microsoft/PQCrypto-SIDH/issues/3#issuecomment-305852174","issue_url":"https://api.github.com/repos/Microsoft/PQCrypto-SIDH/issues/3","id":305852174,"user":{"login":"dburbani","id":29131546,"avatar_url":"https://avatars1.githubusercontent.com/u/29131546?v=3","gravatar_id":"","url":"https://api.github.com/users/dburbani","html_url":"https://github.com/dburbani","followers_url":"https://api.github.com/users/dburbani/followers","following_url":"https://api.github.com/users/dburbani/following{/other_user}","gists_url":"https://api.github.com/users/dburbani/gists{/gist_id}","starred_url":"https://api.github.com/users/dburbani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dburbani/subscriptions","organizations_url":"https://api.github.com/users/dburbani/orgs","repos_url":"https://api.github.com/users/dburbani/repos","events_url":"https://api.github.com/users/dburbani/events{/privacy}","received_events_url":"https://api.github.com/users/dburbani/received_events","type":"User","site_admin":false},"created_at":"2017-06-02T17:01:47Z","updated_at":"2017-06-02T17:01:47Z","body":"> Maybe it's just OK to save the register and restore it when entering/leaving the function.\r\n\r\nI doubt it, otherwise it would simply be classified as callee-save like x19-x28. For instance, from page 15 of [1] we have: \r\n\r\n> Software developers creating platform-independent code are advised to avoid using r18 if at all possible. Most compilers provide a mechanism to prevent specific registers from being used for general allocation; portable hand-coded assembler should avoid it entirely. It should not be assumed that treating the register as callee-saved will be sufficient to satisfy the requirements of the platform.\r\n\r\n\r\n1. http://infocenter.arm.com/help/topic/com.arm.doc.ihi0055b/IHI0055B_aapcs64.pdf"}}
{"actor":{"display_login":"dburbani"}}