Pelles C forum

Assembly language => Assembly discussions => Topic started by: Dickie-Doo on October 27, 2012, 10:46:23 PM

Title: Register use conventions
Post by: Dickie-Doo on October 27, 2012, 10:46:23 PM
I have just started experimenting with POASM subroutines called from Pelle C.  Since I have a Win7 64-bit computer, in-lining is not allowed, but I found it surprisingly easy to get started with a separate *.asm source file.  I now have a question for the experts:

1) Pelle's explanation of the 'fastcall' convention does not cover use of registers other than rcx,rdx,r8,r9 & rax.  I suspect that he follows Microsoft's Visual C++ rules, which state that the above 5 registers plus r10 & r11 are 'volatile' while all others should be preserved, i.e. PUSHed and POPped.  Is this correct?
Title: Re: Register use conventions
Post by: frankie on October 28, 2012, 12:04:50 AM
Yes, the main aim of PellesC is the compatibility with M$ standards.
The whole suite is specialized for WIN OS's, no ports for anything else.