home *** CD-ROM | disk | FTP | other *** search
- Stack frames are non-ansi. On the m68k a pointer to arguments is
- passed in A0; the compiler puts the arguments on the stack but assembly
- language code may put parameters anywhere. On the 386 EBP is used
- as a general purpose register; arguments and local variables are
- indexed directly off the stack. The stack depth is monitored at all
- times and addresses are adjusted accordingly.
-
- On the 68K, three codegen options are available. The first allows
- 68020 code to be generated for bit fields, muls, divs, and addressing
- modes. The second allows data to be of arbitrary size. In the absence
- of either of these, 68K code based on a 32k memory model will be
- generated.
-
- 386 code is fairly straightforward except for the use of the stack
- pointer to get arguments. It is a little more complex than need be
- because of the need to use special function registers for some
- operations like multiplies and shifts. 386 Code will be a little bulky
- because of this need.
-
- 68K code is position-independent. All global data is accessed off of
- register A5; function arguments are indexed off of A6; and the stack is
- indexed off A7. String constants are indexed off the PC. Because of
- this, the total data size may only be 32K unless either the /2 or the
- /L options are used.