Fix unwind directives in IA-64 assembler modules. This helps symbolic

debugging and doesn't affect functionality.

Submitted by: David Mosberger

Obtained from: http://www.hpl.hp.com/research/linux/crypto/
This commit is contained in:
Andy Polyakov 2005-07-18 09:54:14 +00:00
parent afbe674edb
commit ef428d5681
5 changed files with 16 additions and 33 deletions

View File

@ -179,11 +179,10 @@ _ia64_AES_encrypt:
.skip 16 .skip 16
AES_encrypt: AES_encrypt:
.prologue .prologue
.fframe 0
.save ar.pfs,r2 .save ar.pfs,r2
.save ar.lc,r3
{ .mmi; alloc r2=ar.pfs,3,0,12,0 { .mmi; alloc r2=ar.pfs,3,0,12,0
addl out8=@ltoff(AES_Te#),gp addl out8=@ltoff(AES_Te#),gp
.save ar.lc,r3
mov r3=ar.lc } mov r3=ar.lc }
{ .mmi; and out0=3,in0 { .mmi; and out0=3,in0
ADDP in0=0,in0 ADDP in0=0,in0
@ -472,11 +471,10 @@ _ia64_AES_decrypt:
.skip 16 .skip 16
AES_decrypt: AES_decrypt:
.prologue .prologue
.fframe 0
.save ar.pfs,r2 .save ar.pfs,r2
.save ar.lc,r3
{ .mmi; alloc r2=ar.pfs,3,0,12,0 { .mmi; alloc r2=ar.pfs,3,0,12,0
addl out8=@ltoff(AES_Td#),gp addl out8=@ltoff(AES_Td#),gp
.save ar.lc,r3
mov r3=ar.lc } mov r3=ar.lc }
{ .mmi; and out0=3,in0 { .mmi; and out0=3,in0
ADDP in0=0,in0 ADDP in0=0,in0

View File

@ -171,15 +171,14 @@
.skip 32 // makes the loop body aligned at 64-byte boundary .skip 32 // makes the loop body aligned at 64-byte boundary
bn_add_words: bn_add_words:
.prologue .prologue
.fframe 0
.save ar.pfs,r2 .save ar.pfs,r2
{ .mii; alloc r2=ar.pfs,4,12,0,16 { .mii; alloc r2=ar.pfs,4,12,0,16
cmp4.le p6,p0=r35,r0 };; cmp4.le p6,p0=r35,r0 };;
{ .mfb; mov r8=r0 // return value { .mfb; mov r8=r0 // return value
(p6) br.ret.spnt.many b0 };; (p6) br.ret.spnt.many b0 };;
.save ar.lc,r3
{ .mib; sub r10=r35,r0,1 { .mib; sub r10=r35,r0,1
.save ar.lc,r3
mov r3=ar.lc mov r3=ar.lc
brp.loop.imp .L_bn_add_words_ctop,.L_bn_add_words_cend-16 brp.loop.imp .L_bn_add_words_ctop,.L_bn_add_words_cend-16
} }
@ -224,15 +223,14 @@ bn_add_words:
.skip 32 // makes the loop body aligned at 64-byte boundary .skip 32 // makes the loop body aligned at 64-byte boundary
bn_sub_words: bn_sub_words:
.prologue .prologue
.fframe 0
.save ar.pfs,r2 .save ar.pfs,r2
{ .mii; alloc r2=ar.pfs,4,12,0,16 { .mii; alloc r2=ar.pfs,4,12,0,16
cmp4.le p6,p0=r35,r0 };; cmp4.le p6,p0=r35,r0 };;
{ .mfb; mov r8=r0 // return value { .mfb; mov r8=r0 // return value
(p6) br.ret.spnt.many b0 };; (p6) br.ret.spnt.many b0 };;
.save ar.lc,r3
{ .mib; sub r10=r35,r0,1 { .mib; sub r10=r35,r0,1
.save ar.lc,r3
mov r3=ar.lc mov r3=ar.lc
brp.loop.imp .L_bn_sub_words_ctop,.L_bn_sub_words_cend-16 brp.loop.imp .L_bn_sub_words_ctop,.L_bn_sub_words_cend-16
} }
@ -283,7 +281,6 @@ bn_sub_words:
.skip 32 // makes the loop body aligned at 64-byte boundary .skip 32 // makes the loop body aligned at 64-byte boundary
bn_mul_words: bn_mul_words:
.prologue .prologue
.fframe 0
.save ar.pfs,r2 .save ar.pfs,r2
#ifdef XMA_TEMPTATION #ifdef XMA_TEMPTATION
{ .mfi; alloc r2=ar.pfs,4,0,0,0 };; { .mfi; alloc r2=ar.pfs,4,0,0,0 };;
@ -294,8 +291,8 @@ bn_mul_words:
cmp4.le p6,p0=r34,r0 cmp4.le p6,p0=r34,r0
(p6) br.ret.spnt.many b0 };; (p6) br.ret.spnt.many b0 };;
.save ar.lc,r3
{ .mii; sub r10=r34,r0,1 { .mii; sub r10=r34,r0,1
.save ar.lc,r3
mov r3=ar.lc mov r3=ar.lc
mov r9=pr };; mov r9=pr };;
@ -397,12 +394,10 @@ bn_mul_words:
.skip 48 // makes the loop body aligned at 64-byte boundary .skip 48 // makes the loop body aligned at 64-byte boundary
bn_mul_add_words: bn_mul_add_words:
.prologue .prologue
.fframe 0
.save ar.pfs,r2 .save ar.pfs,r2
.save ar.lc,r3
.save pr,r9
{ .mmi; alloc r2=ar.pfs,4,4,0,8 { .mmi; alloc r2=ar.pfs,4,4,0,8
cmp4.le p6,p0=r34,r0 cmp4.le p6,p0=r34,r0
.save ar.lc,r3
mov r3=ar.lc };; mov r3=ar.lc };;
{ .mib; mov r8=r0 // return value { .mib; mov r8=r0 // return value
sub r10=r34,r0,1 sub r10=r34,r0,1
@ -410,6 +405,7 @@ bn_mul_add_words:
.body .body
{ .mib; setf.sig f8=r35 // w { .mib; setf.sig f8=r35 // w
.save pr,r9
mov r9=pr mov r9=pr
brp.loop.imp .L_bn_mul_add_words_ctop,.L_bn_mul_add_words_cend-16 brp.loop.imp .L_bn_mul_add_words_ctop,.L_bn_mul_add_words_cend-16
} }
@ -466,7 +462,6 @@ bn_mul_add_words:
.skip 32 // makes the loop body aligned at 64-byte boundary .skip 32 // makes the loop body aligned at 64-byte boundary
bn_sqr_words: bn_sqr_words:
.prologue .prologue
.fframe 0
.save ar.pfs,r2 .save ar.pfs,r2
{ .mii; alloc r2=ar.pfs,3,0,0,0 { .mii; alloc r2=ar.pfs,3,0,0,0
sxt4 r34=r34 };; sxt4 r34=r34 };;
@ -476,9 +471,10 @@ bn_sqr_words:
nop.f 0x0 nop.f 0x0
(p6) br.ret.spnt.many b0 };; (p6) br.ret.spnt.many b0 };;
.save ar.lc,r3
{ .mii; sub r10=r34,r0,1 { .mii; sub r10=r34,r0,1
.save ar.lc,r3
mov r3=ar.lc mov r3=ar.lc
.save pr,r9
mov r9=pr };; mov r9=pr };;
.body .body
@ -545,7 +541,6 @@ bn_sqr_words:
.align 64 .align 64
bn_sqr_comba8: bn_sqr_comba8:
.prologue .prologue
.fframe 0
.save ar.pfs,r2 .save ar.pfs,r2
#if defined(_HPUX_SOURCE) && !defined(_LP64) #if defined(_HPUX_SOURCE) && !defined(_LP64)
{ .mii; alloc r2=ar.pfs,2,1,0,0 { .mii; alloc r2=ar.pfs,2,1,0,0
@ -617,7 +612,6 @@ bn_sqr_comba8:
.align 64 .align 64
bn_mul_comba8: bn_mul_comba8:
.prologue .prologue
.fframe 0
.save ar.pfs,r2 .save ar.pfs,r2
#if defined(_HPUX_SOURCE) && !defined(_LP64) #if defined(_HPUX_SOURCE) && !defined(_LP64)
{ .mii; alloc r2=ar.pfs,3,0,0,0 { .mii; alloc r2=ar.pfs,3,0,0,0
@ -1175,7 +1169,6 @@ bn_mul_comba8:
.align 64 .align 64
bn_sqr_comba4: bn_sqr_comba4:
.prologue .prologue
.fframe 0
.save ar.pfs,r2 .save ar.pfs,r2
#if defined(_HPUX_SOURCE) && !defined(_LP64) #if defined(_HPUX_SOURCE) && !defined(_LP64)
{ .mii; alloc r2=ar.pfs,2,1,0,0 { .mii; alloc r2=ar.pfs,2,1,0,0
@ -1208,7 +1201,6 @@ bn_sqr_comba4:
.align 64 .align 64
bn_mul_comba4: bn_mul_comba4:
.prologue .prologue
.fframe 0
.save ar.pfs,r2 .save ar.pfs,r2
#if defined(_HPUX_SOURCE) && !defined(_LP64) #if defined(_HPUX_SOURCE) && !defined(_LP64)
{ .mii; alloc r2=ar.pfs,3,0,0,0 { .mii; alloc r2=ar.pfs,3,0,0,0
@ -1411,10 +1403,9 @@ equ=p24
.align 64 .align 64
bn_div_words: bn_div_words:
.prologue .prologue
.fframe 0
.save ar.pfs,r2 .save ar.pfs,r2
.save b0,r3
{ .mii; alloc r2=ar.pfs,3,5,0,8 { .mii; alloc r2=ar.pfs,3,5,0,8
.save b0,r3
mov r3=b0 mov r3=b0
mov r10=pr };; mov r10=pr };;
{ .mmb; cmp.eq p6,p0=r34,r0 { .mmb; cmp.eq p6,p0=r34,r0

View File

@ -75,14 +75,13 @@ yy=r31;
.skip 16 .skip 16
RC4: RC4:
.prologue .prologue
.fframe 0
.save ar.pfs,r2 .save ar.pfs,r2
.save ar.lc,r3
.save pr,prsave
{ .mii; alloc r2=ar.pfs,4,12,0,16 { .mii; alloc r2=ar.pfs,4,12,0,16
.save pr,prsave
mov prsave=pr mov prsave=pr
ADDP key=0,in0 };; ADDP key=0,in0 };;
{ .mib; cmp.eq p6,p0=0,in1 // len==0? { .mib; cmp.eq p6,p0=0,in1 // len==0?
.save ar.lc,r3
mov r3=ar.lc mov r3=ar.lc
(p6) br.ret.spnt.many b0 };; // emergency exit (p6) br.ret.spnt.many b0 };; // emergency exit

View File

@ -251,11 +251,9 @@ inp=r33; // in1
.align 32 .align 32
sha1_block_asm_host_order: sha1_block_asm_host_order:
.prologue .prologue
.fframe 0
.save ar.pfs,r0
.save ar.lc,r3
{ .mmi; alloc tmp1=ar.pfs,3,15,0,0 { .mmi; alloc tmp1=ar.pfs,3,15,0,0
$ADDP tmp0=4,ctx $ADDP tmp0=4,ctx
.save ar.lc,r3
mov r3=ar.lc } mov r3=ar.lc }
{ .mmi; $ADDP ctx=0,ctx { .mmi; $ADDP ctx=0,ctx
$ADDP inp=0,inp $ADDP inp=0,inp
@ -406,11 +404,9 @@ $code.=<<___ if ($big_endian);
___ ___
$code.=<<___; $code.=<<___;
.prologue .prologue
.fframe 0
.save ar.pfs,r0
.save ar.lc,r3
{ .mmi; alloc tmp1=ar.pfs,3,15,0,0 { .mmi; alloc tmp1=ar.pfs,3,15,0,0
$ADDP tmp0=4,ctx $ADDP tmp0=4,ctx
.save ar.lc,r3
mov r3=ar.lc } mov r3=ar.lc }
{ .mmi; $ADDP ctx=0,ctx { .mmi; $ADDP ctx=0,ctx
$ADDP inp=0,inp $ADDP inp=0,inp

View File

@ -128,15 +128,14 @@ sgm0=r50; sgm1=r51; // small constants
.align 32 .align 32
$func: $func:
.prologue .prologue
.fframe 0
.save ar.pfs,r2 .save ar.pfs,r2
.save ar.lc,r3
.save pr,prsave
{ .mmi; alloc r2=ar.pfs,3,17,0,16 { .mmi; alloc r2=ar.pfs,3,17,0,16
$ADDP ctx=0,r32 // 1st arg $ADDP ctx=0,r32 // 1st arg
.save ar.lc,r3
mov r3=ar.lc } mov r3=ar.lc }
{ .mmi; $ADDP input=0,r33 // 2nd arg { .mmi; $ADDP input=0,r33 // 2nd arg
addl Ktbl=\@ltoff($TABLE#),gp addl Ktbl=\@ltoff($TABLE#),gp
.save pr,prsave
mov prsave=pr };; mov prsave=pr };;
.body .body