{"push_id":1292729300,"size":3,"distinct_size":3,"ref":"refs/heads/Cog","head":"ddf2aa41f18c578a3bc8edda5cd74dd42e5890e3","before":"92e9af6566efb0843f49213d3ff54aad33c470a3","commits":[{"sha":"aaa8d30f31e8e3fa5b1f81729089b322605578d1","author":{"name":"nicolas-cellier-aka-nice","email":"0a40543678508682481077f4730981df78e83e46@gmail.com"},"message":"Retrieve float register parameters of callback thunk for Win64\n\nNote: the float registers are retrieved via a function saveFloatRegsWin64 which must lie into another file\notherwise C Compiler will detect the parameter mismatch and bark, or worse, optimize the call away.\n\nPreviously, we did copy the integer param registers into the floating point param registers.\nThis was wrong, the caller has no such hack.","distinct":true,"url":"https://api.github.com/repos/OpenSmalltalk/opensmalltalk-vm/commits/aaa8d30f31e8e3fa5b1f81729089b322605578d1"},{"sha":"5b17a270a99e8e71bbc1310e1098501b083d1662","author":{"name":"nicolas-cellier-aka-nice","email":"0a40543678508682481077f4730981df78e83e46@gmail.com"},"message":"thunkEntry type should be long long on Win64","distinct":true,"url":"https://api.github.com/repos/OpenSmalltalk/opensmalltalk-vm/commits/5b17a270a99e8e71bbc1310e1098501b083d1662"},{"sha":"ddf2aa41f18c578a3bc8edda5cd74dd42e5890e3","author":{"name":"nicolas-cellier-aka-nice","email":"0a40543678508682481077f4730981df78e83e46@gmail.com"},"message":"Fix thunk return value in case of int64 or double for Win64\n\nNote:\nWin64 X64 uses registry rax for 1,2,4,8 bytes long int or struct return value\nit uses xmm0 for float (single) or double floating point values\nit uses a pointer passed as hidden first parameter (rcx) for anything else returned by value and copy the pointer to rax.\n\nTo pass a double back we use a call to a function taking double & returning double (fakeReturnDouble)\nAny of these actions (passing 1 double or returning 1 double) would load xmm0, and we're done.\nExcept the function is no-op and could be entirely eliminated by aggressive optimizer.\nIt's thus vital to lay the function into another file and avoid any sort of link time optimization.\n\nTO DO: This code currently does nothing for passing a short struct back by value in rax...\nIf the structure is long or odd sized, its address is expected as (hidden) first parameter (rcx), rather than on stack.\nSo the code does not look quite right yet wrt Win64 X64 ABI.\n\nTO DO: the same kind of changes should be applied to X64 system V ABI","distinct":true,"url":"https://api.github.com/repos/OpenSmalltalk/opensmalltalk-vm/commits/ddf2aa41f18c578a3bc8edda5cd74dd42e5890e3"}]}
{"actor":{"display_login":"nicolas-cellier-aka-nice"}}