Re: objc-class.h: why is marg_prearg_size = 128
Re: objc-class.h: why is marg_prearg_size = 128
- Subject: Re: objc-class.h: why is marg_prearg_size = 128
- From: Greg Parker <email@hidden>
- Date: Mon, 14 Jun 2004 15:49:51 -0700
I've been asked why marg_prearg_size is defined to be 128 on ppc in
objc-class.h. I don't have an answer but thought someone here might...
From objc.class.h
typedef void *marg_list;
#if defined(__ppc__) || defined(ppc)
#define marg_prearg_size 128
#else
#define marg_prearg_size 0
#endif
On PPC, the prearg area is used to store the 13 floating-point
parameter registers, which may contain method parameters that need to
be restored when the marg_list is used. The i386 function call ABI has
no additional registers to be saved, so its prearg area is empty. The
implementations of _objc_msgForward() and objc_msgSendv() in objc4's
objc-msg-ppc.s contain more details that may be useful to you.
In general, you probably want to avoid marg_list and objc_msgSendv().
Together they are primarily an implementation detail of forward:: .
--
Greg Parker email@hidden Runtime Wrangler
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.