my ($KT, $T1, $T2, $T3, $T4, $T5, $T6) = ($t0, $t1, $t2, $t3, $t4, $t5, $t6);
my ($A, $B, $C, $D ,$E ,$F ,$G ,$H) = ($s0, $s1, $s2, $s3, $s4, $s5, $s6, $s7);
+sub strip {
+ my ($str) = @_;
+ $str =~ s/^\s+|\s+$//g;
+ return $str;
+}
+
sub MSGSCHEDULE0 {
my ($index) = @_;
my $code=<<___;
revb.2w $T1, $T1
st.w $T1, $ADDR, 4*$index
___
- return $code;
+ return strip($code);
}
sub MSGSCHEDULE1 {
add.w $T1, $T1, $T4
st.w $T1, $ADDR, ($index&0x0f)*4
___
- return $code;
+ return strip($code);
}
sub sha256_T1 {
xor $T1, $T1, $g
add.w $T1, $T1, $h
___
- return $code;
+ return strip($code);
}
sub sha256_T2 {
xor $T4, $T4, $T3
add.w $T2, $T2, $T4
___
- return $code;
+ return strip($code);
}
sub SHA256ROUND {
add.w $d, $d, $T1
add.w $h, $T2, $T1
___
- return $code;
+ return strip($code);
}
sub SHA256ROUND0 {
@{[MSGSCHEDULE0 $index]}
@{[SHA256ROUND $index, $a, $b, $c, $d, $e, $f, $g, $h]}
___
- return $code;
+ return strip($code);
}
sub SHA256ROUND1 {
@{[MSGSCHEDULE1 $index]}
@{[SHA256ROUND $index, $a, $b, $c, $d, $e, $f, $g, $h]}
___
- return $code;
+ return strip($code);
}
################################################################################
my ($KT, $T1, $T2, $T3, $T4, $T5, $T6) = ($t0, $t1, $t2, $t3, $t4, $t5, $t6);
my ($A, $B, $C, $D ,$E ,$F ,$G ,$H) = ($s0, $s1, $s2, $s3, $s4, $s5, $s6, $s7);
+sub strip {
+ my ($str) = @_;
+ $str =~ s/^\s+|\s+$//g;
+ return $str;
+}
+
sub MSGSCHEDULE0 {
my ($index) = @_;
my $code=<<___;
revb.d $T1, $T1
st.d $T1, $ADDR, 8*$index
___
- return $code;
+ return strip($code);
}
sub MSGSCHEDULE1 {
add.d $T1, $T1, $T4
st.d $T1, $ADDR, 8*($index&0x0f)
___
- return $code;
+ return strip($code);
}
sub sha512_T1 {
xor $T1, $T1, $g
add.d $T1, $T1, $h
___
- return $code;
+ return strip($code);
}
sub sha512_T2 {
xor $T3, $T3, $T5
add.d $T2, $T2, $T3
___
- return $code;
+ return strip($code);
}
sub SHA512ROUND {
add.d $d, $d, $T1
add.d $h, $T2, $T1
___
- return $code;
+ return strip($code);
}
sub SHA512ROUND0 {
@{[MSGSCHEDULE0 $index]}
@{[SHA512ROUND $index, $a, $b, $c, $d, $e, $f, $g, $h]}
___
- return $code;
+ return strip($code);
}
sub SHA512ROUND1 {
@{[MSGSCHEDULE1 $index]}
@{[SHA512ROUND $index, $a, $b, $c, $d, $e, $f, $g, $h]}
___
- return $code;
+ return strip($code);
}
################################################################################