Re: Register/Function Parm Mapping for 64-bit Was: isTemporaryID unrecognized selector…
Re: Register/Function Parm Mapping for 64-bit Was: isTemporaryID unrecognized selector…
- Subject: Re: Register/Function Parm Mapping for 64-bit Was: isTemporaryID unrecognized selector…
- From: Nick Zitzmann <email@hidden>
- Date: Sat, 4 Sep 2010 14:23:31 -0600
On Sep 4, 2010, at 1:50 PM, Jerry Krinock wrote:
> So did you ever find out the mapping between function parameters and registers on the 64-bit Intel architecture, or did you just poke around blindly in all the registers?
Read this: <http://www.x86-64.org/documentation/abi-0.99.pdf>
Basically, on Intel 64, arguments are placed in registers instead of on the stack as they are in Intel 32, unless you pass a function a data structure that is larger than 256 bits or has unaligned fields. The order of the registers is on page 20 of that PDF.
> Can anyone confirm that the *(int *)($esp+4), *(int *)($esp+8) incantations given in Apple's TN2124 are only true on the 32-bit Intel architecture?
Yes, $esp is an Intel 32 register that is not available on Intel 64.
Nick Zitzmann
<http://www.chronosnet.com/>
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden