> Furthermore,
> something needs to be done about the way you pull addresses to Te/Td
> tables. Normally I'd settle for placing Te in .text segment and then
> 
>       bal     .+8
>       nop
>       $PTR_ADD $x,$31,Te-.
> 
> Unfortunately there is toolchain that does not allow placing data in
> .text segment, MIPSpro to be specific, and for a reason. Therefore we'd
> need to find a unified way to address the tables through $gp, global
> pointer, in position-independent manner.

http://cvs.openssl.org/fileview?f=openssl/crypto/sha/asm/sha512-mips.pl&v=1.1
gives a PIC example. It's "unified" in sense that there are if($flavour)
conditions targeting specific ABIs. It was tested only on IRIX, please
check it on Linux (sync your CVS copy or wait for tomorrow snapshot).

> Also, as far as I understand code position
> independence is problem even in aes-sh4...

SH4 has MOVA that pulls address relative to PC, as well as MOV.L
@(disp,PC),Rn for pulling constants in PIC manner. PIC is a
requirement... A.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [email protected]
Automated List Manager                           [email protected]

Reply via email to