From: Andy Polyakov Date: Sat, 4 Jan 2003 14:41:09 +0000 (+0000) Subject: Another GAS fix-up and some commentary... X-Git-Tag: OpenSSL_0_9_7a~86^2~21 X-Git-Url: https://git.openssl.org/?p=openssl.git;a=commitdiff_plain;h=19a97a1df04964406688feeb84a1622313c0558b Another GAS fix-up and some commentary... --- diff --git a/crypto/des/asm/des_enc.m4 b/crypto/des/asm/des_enc.m4 index fce6d6b9e3..83603261fe 100644 --- a/crypto/des/asm/des_enc.m4 +++ b/crypto/des/asm/des_enc.m4 @@ -1433,14 +1433,30 @@ DES_decrypt3: add out0,%o7,out0 ! pointer to .PIC.me.up #ifdef OPENSSL_PIC + ! In case anybody wonders why this code is same for both ABI. + ! To start with it's not. Do note LDPTR below. But of course + ! you must be wondering why the rest of it doesn't contain + ! things like %hh, %hm and %lm. Well, those are needed only + ! if OpenSSL library *itself* will become larger than 4GB, + ! which is not going to happen any time soon. sethi %hi(DES_SPtrans),global1 or global1,%lo(DES_SPtrans),global1 sethi %hi(_GLOBAL_OFFSET_TABLE_-(.PIC.me.up-.)),out2 add global1,out0,global1 add out2,%lo(_GLOBAL_OFFSET_TABLE_-(.PIC.me.up-.)),out2 LDPTR [out2+global1],global1 -#else +#elif 0 setn DES_SPtrans,out2,global1 ! synthetic instruction ! +#elif defined(ABI64) + sethi %hh(DES_SPtrans),out2 + or out2,%hm(DES_SPtrans),out2 + sethi %lm(DES_SPtrans),global1 + or global1,%lo(DES_SPtrans),global1 + sllx out2,32,out2 + or out2,global1,global1 +#else + sethi %hi(DES_SPtrans),global1 + or global1,%lo(DES_SPtrans),global1 #endif retl