> 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]
