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