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

Reply via email to