diff options
author | Andy Polyakov <appro@openssl.org> | 2004-11-26 15:12:17 +0000 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2004-11-26 15:12:17 +0000 |
commit | bc3e7fabe7f93084d8d93f55bebe20057a0b6970 (patch) | |
tree | 2c55eac5ababd587ea42cd730a50c751554ebb2c /crypto/rc4 | |
parent | d675c74d14f9e7f7046ee7b383e41868782ab5bd (diff) |
Engage RC4 IA-64 assembler module.
Diffstat (limited to 'crypto/rc4')
-rw-r--r-- | crypto/rc4/Makefile.ssl | 3 | ||||
-rw-r--r-- | crypto/rc4/rc4.h | 4 | ||||
-rw-r--r-- | crypto/rc4/rc4_enc.c | 4 | ||||
-rw-r--r-- | crypto/rc4/rc4_skey.c | 4 |
4 files changed, 15 insertions, 0 deletions
diff --git a/crypto/rc4/Makefile.ssl b/crypto/rc4/Makefile.ssl index 5878aecf8f..08e411403d 100644 --- a/crypto/rc4/Makefile.ssl +++ b/crypto/rc4/Makefile.ssl @@ -65,6 +65,9 @@ rx86-out.s: asm/rc4-586.pl ../perlasm/x86asm.pl asm/rc4-amd64.s: asm/rc4-amd64.pl; $(PERL) $< $@ +asm/rc4-ia64.s: asm/rc4-ia64.S + $(CC) $(CFLAGS) -E asm/rc4-ia64.S > $@ + files: $(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO diff --git a/crypto/rc4/rc4.h b/crypto/rc4/rc4.h index 7aec04fe93..c24a5b1281 100644 --- a/crypto/rc4/rc4.h +++ b/crypto/rc4/rc4.h @@ -72,6 +72,10 @@ typedef struct rc4_key_st { RC4_INT x,y; RC4_INT data[256]; +#if defined(__ia64) || defined(__ia64__) || defined(_M_IA64) + /* see crypto/rc4/asm/rc4-ia64.S for further details... */ + RC4_INT pad[512-256-2]; +#endif } RC4_KEY; diff --git a/crypto/rc4/rc4_enc.c b/crypto/rc4/rc4_enc.c index d5f18a3a70..81a97ea3b7 100644 --- a/crypto/rc4/rc4_enc.c +++ b/crypto/rc4/rc4_enc.c @@ -77,6 +77,10 @@ void RC4(RC4_KEY *key, unsigned long len, const unsigned char *indata, x=key->x; y=key->y; d=key->data; +#if defined(__ia64) || defined(__ia64__) || defined(_M_IA64) + /* see crypto/rc4/asm/rc4-ia64.S for further details... */ + d=(RC4_INT *)(((size_t)(d+255))&~(sizeof(key->data)-1)); +#endif #if defined(RC4_CHUNK) /* diff --git a/crypto/rc4/rc4_skey.c b/crypto/rc4/rc4_skey.c index 781ff2d8b9..083b53dfb8 100644 --- a/crypto/rc4/rc4_skey.c +++ b/crypto/rc4/rc4_skey.c @@ -93,6 +93,10 @@ void RC4_set_key(RC4_KEY *key, int len, const unsigned char *data) unsigned int i; d= &(key->data[0]); +#if defined(__ia64) || defined(__ia64__) || defined(_M_IA64) + /* see crypto/rc4/asm/rc4-ia64.S for further details... */ + d=(RC4_INT *)(((size_t)(d+255))&~(sizeof(key->data)-1)); +#endif key->x = 0; key->y = 0; id1=id2=0; |