🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.atari.st
Article #33066

Re: MWC & large arrays -- help!

#33066
From: Leo de Wit
Date: Fri, 01 Jul 1988 08:36
18 lines
1540 bytes
In article <5327@batcomputer.tn.cornell.edu> braner@tcgould.tn.cornell.edu (braner) writes (amongst other things):
>I think the original question was _not_ naive:  why would one need
>a _structure_ (rather than an array) that is more than 32K in size?
>That's what many 68000 compilers cannot handle:  structure fields
>that are offset more than 32K from the beginning of the structure.
>That's because a field in a structure is accessed by adding an offset
>(a constant calculated at compile time) to the base address.  On the
>68000, the obvious, compact, efficient method is to use the indexed
>addressing mode, but that limits you to an offset of +-32K.

Maybe it is good to mention that exactly the same goes for actual
parameters and automatic variables; most compilers use a frame pointer
register (link register , typically A6) to index from. The link
instruction itself also takes a offset of +-32K. So if you can avoid it,
don't put big arrays or other variables on the stack (there's an other
danger with huge stacks: it can run into your heap).

         Leo.
Technical Details
Message-ID: <541@philmds.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!mcvax!philmds!leo
References: <734@cacilj.UUCP> <46700008@hcx2> <411@brambo.UUCP> <767@lakesys.UUCP> <2921@tekig5.TEK.COM> <5327@batcomputer.tn.cornell.edu>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!mcvax!philmds!leo
From: leo@philmds.UUCP (Leo de Wit)
Newsgroups: comp.sys.atari.st
Subject: Re: MWC & large arrays -- help!
Message-ID: <541@philmds.UUCP>
Date: 1 Jul 88 08:36:42 GMT
References: <734@cacilj.UUCP> <46700008@hcx2> <411@brambo.UUCP> <767@lakesys.UUCP> <2921@tekig5.TEK.COM> <5327@batcomputer.tn.cornell.edu>
Reply-To: leo@philmds.UUCP (Leo de Wit)
Organization: Philips I&E DTS Eindhoven
Lines: 18