Since you are more familiar - give me an example of endian dependant code. I'll have
a look, if it looks feasible ai"ll do a
simple modification and then we can test the difference. Without knowing specifically
where the mods need to take place and
what the code looks like, I can't speculate on what the penalty might be.
I do know that I implemented a complete system inculding 1000's of lines of code and
enidan issues were collected in such a
small part of the code that they were basically irrelevant. This may not be the case
here.
So all I'll need are the names of a couple affected functions. If I'm to do more than
just a quick survey of the potential impact, I'll
need the current sourse tree as well - but that can wait and I can do my testing on
the version I presently have.
Thanks.
On Sat, 25 Sep 1999 13:57:33 +0200, Andy Polyakov wrote:
>> 1) I note there is an edian flag but I do not understand at this point
>> why it is present. It is quite trivial for the software to determine
>> the edian order of a CPU and to my way of thinking the user/installer
>> should not be asked for information
>You're not actually asked for it and moreover the flag is optional. If
>you don't like it for any reason you can take it away, it won't break
>the code.
>> that the software can
>> detect for itself at run time.
>All algorithms are endian neutral and few (for the moment it's 32 bit
>block message digests and soon RC4) are endian *aware*. Such awareness
>made it possible to improve performance of algorithms in question under
>certain circumstances. Speed-up factor varies from platform to platform,
>in RISC cases - from 20% to 40%.
>>
>> I would think there might be a very slight performance penatly but I
>> doubt it would be more than 0.1% and probably an order of
>> magnitude less.
>Then you would end-up implementing twise as much code to choose between
>at run-time and covering both endian cases. In order to be excused from
>implementing the second case you will very likely to introduce some CPU
>dependent #ifdef and it won't be any different from #ifdef [BL]_ENDIAN
>anyway. Alternatively you would have to check endianness too often (in
>most cases to guard a *signle* instruction) and would definitely harm
>performance. Also note that some endian-dependent code is written in
>assembler...
>>
>> I will funrish a function to detect the endian order if requested.
>int is_bigendian() { static int i=1; return (int)(*(char *)&i); }
>
>In either case "roadmap" for [BL]_ENDIAN is to move it to the code
>portion of the ./Configure script so that it will be determined
>automatically. On the second thought ./config might be better place if
>we want to let people run ./Configure on none-target computer (at least
>I did so once myself)...
>
>Andy.
>______________________________________________________________________
>OpenSSL Project http://www.openssl.org
>Development Mailing List [EMAIL PROTECTED]
>Automated List Manager [EMAIL PROTECTED]
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]