Deutsch English Français Italiano |
<vm9bca$1ns0$1@gal.iecc.com> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!weretis.net!feeder9.news.weretis.net!news.misty.com!news.iecc.com!.POSTED.news.iecc.com!not-for-mail From: John Levine <johnl@taugh.com> Newsgroups: comp.arch Subject: Re: Calling conventions (particularly 32-bit ARM) Date: Wed, 15 Jan 2025 22:03:54 -0000 (UTC) Organization: Taughannock Networks Message-ID: <vm9bca$1ns0$1@gal.iecc.com> References: <vlgngv$1ks4a$1@dont-email.me> <c7d39917db81f33fd90a8b57e7d0f85d@www.novabbs.org> <vm7a73$qm2$1@gal.iecc.com> <4c878826966f3f8d5f3241250b544473@www.novabbs.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Date: Wed, 15 Jan 2025 22:03:54 -0000 (UTC) Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="57216"; mail-complaints-to="abuse@iecc.com" In-Reply-To: <vlgngv$1ks4a$1@dont-email.me> <c7d39917db81f33fd90a8b57e7d0f85d@www.novabbs.org> <vm7a73$qm2$1@gal.iecc.com> <4c878826966f3f8d5f3241250b544473@www.novabbs.org> Cleverness: some X-Newsreader: trn 4.0-test77 (Sep 1, 2010) Originator: johnl@iecc.com (John Levine) Bytes: 2580 Lines: 34 According to MitchAlsup1 <mitchalsup@aol.com>: >On Wed, 15 Jan 2025 3:31:47 +0000, John Levine wrote: > >> According to MitchAlsup1 <mitchalsup@aol.com>: >>>Pass by COMMON block was even faster. >> >> Sometimes. On machines that don't have direct addressing, such as >> S/360, >> the code needs to load a pointer to the data either way so it's a wash. >> >> Even when you do have direct addressing, if code is compiled to be >> position indepedent, the common block wouldn't be in the same module >> as the code that references it so it still needs to load a pointer >> from the GOT or whatever its equivalent is. > >Pass by COMMON block allows one to pass hundreds of data values in a >single call. > >You are treating the common block as if it had but one data container. If I were that kind of programmer, I could use EQUIVALENCE to glue a bunch of local variables and arrays together and pass that as a subroutine argument. Also remember that on machines without direct addressing there's extra code if the size of a block of whatever size is more than the offset size in an instruction, 12 bits on S/360 and usually 16 on z. It's really a matter of taste and programming style more than efficiency. R's, John -- Regards, John Levine, johnl@taugh.com, Primary Perpetrator of "The Internet for Dummies", Please consider the environment before reading this e-mail. https://jl.ly