Thank you for giving me suggestions of things to try. I have tried pushing and popping r8,r9,r10,r11,rcx, and rdx. However, this did not change the behavior of the program.
I looked at the documentation you mentioned and they seem to say that r10/r11 should be considered volatile (ie, destroyed by function calls). Here is the link to msdn: http://msdn.microsoft.com/en-us/library/6t169e9c%28v=vs.80%29.aspx And here is what it says on that page: -------------------------------------------------------------- The registers RAX, RCX, RDX, R8, R9, R10, R11 are considered volatile and must be considered destroyed on function calls (unless otherwise safety-provable by analysis such as whole program optimization). The registers RBX, RBP, RDI, RSI, R12, R13, R14, and R15 are considered nonvolatile and must be saved and restored by a function that uses them. -------------------------------------------------------------- R12-15 are not used by the program and RBX, RBP, RDI, RSI are already saved. Can you, or anyone else, see what else might be going wrong? Thanks again for your time. -David C. On 2/22/2012 1:59 AM, Kai Tietz wrote: > Thanks for the link. The issue you see is caused by > register-clobbering of r10/r11 etc. Those are callee saved-registers. > So you need to save them too. > > Your problem should be gone. Please see as reference about registers > and their save-state either msdn x64 ABI documentation, or see the x64 > calling-convention page on our Wiki. > > Regards, > Kai ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
