> seems this alpha assembly was tested with a toolchain other than the GNU one 
> (meaning the GNU assembler or "gas"), and it was tested on a host other than 
> Linux or glibc.

That is correct. It was tested with Tru64 assembler only. Sorry, my
Alpha Linux machine broke a looooooooooooooooooong time ago:-)

> ...
> 
> finally, we're left with one warning:
> <stdin>:36: Warning: operand out of range (0xfffffffffffff000 is not between 
> 0x0000000000000000 and 0x00000000000000ff)
> which is due to this insn:
>  mov -4096,$at
> i dont know the correct fix here, so i imagine the original author will need 
> to chime in.

Well, 'mov' is not real Alpha instruction and assembler is expected to
replace it with equivalent real one. There is a number of ways it can be
realized, and proper replacement for 'mov -4096,$n' is 'lda
$n,-4096(zero)'. Apparently gas isn't bright enough and real instruction
has to be explicitly coded. Did gas-compiled code work by the way? I
mean it could have generated code that would SEGV...

> at any rate, the attached patch fixes all the errors on alpha/Linux systems 
> and i cant see it breaking any others ... it's against CVS head, but it should
> apply cleanly to the 1.0.0 branch as well.  both places need it.

But HEAD branch has two more assembler modules, sha1-alpha.pl and
ghash-alpha.pl, which couldn't have worked. At least because of missing
#include. I've applied http://cvs.openssl.org/chngview?cn=19894. Could
you test the HEAD branch? Once you confirm that it works (or some other
issues are addressed), I'll propagate it to 1.0.

Thanks for report. A.


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [email protected]

Reply via email to