• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: objc-class.h: why is marg_prearg_size = 128
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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.


  • Prev by Date: Re: Make an Application active?
  • Next by Date: Designing a sheet myself with IB?
  • Previous by thread: objc-class.h: why is marg_prearg_size = 128
  • Next by thread: Make an Application active?
  • Index(es):
    • Date
    • Thread