提交 a2859927 编写于 作者: A Andy Polyakov

ARMv4 assembly pack: allow Thumb2 even in iOS build,

and engage it in most modules.
Reviewed-by: NTim Hudson <tjh@openssl.org>
上级 d231a401
......@@ -75,6 +75,7 @@ $code=<<___;
.thumb
#else
.code 32
#undef __thumb2__
#endif
.type AES_Te,%object
......
......@@ -731,6 +731,7 @@ $code.=<<___;
.thumb
#else
.code 32
# undef __thumb2__
#endif
.type _bsaes_decrypt8,%function
......
......@@ -51,7 +51,7 @@ $code=<<___;
#include "arm_arch.h"
.text
#if defined(__thumb2__) && !defined(__APPLE__)
#if defined(__thumb2__)
.syntax unified
.thumb
#else
......
......@@ -91,7 +91,7 @@ $code=<<___;
#include "arm_arch.h"
.text
#if defined(__thumb2__) && !defined(__APPLE__)
#if defined(__thumb2__)
.syntax unified
.thumb
#else
......
......@@ -45,7 +45,7 @@ $code.=<<___;
#include "arm_arch.h"
.text
#if defined(__thumb2__) && !defined(__APPLE__)
#if defined(__thumb2__)
.syntax unified
.thumb
#else
......
......@@ -136,7 +136,7 @@ $code=<<___;
#include "arm_arch.h"
.text
#if defined(__thumb2__) && !defined(__APPLE__)
#if defined(__thumb2__)
.syntax unified
.thumb
#else
......
......@@ -66,6 +66,12 @@ my $extern = sub {
};
my $type = sub {
if ($flavour =~ /linux/) { ".type\t".join(',',@_); }
elsif ($flavour =~ /ios32/) { if (join(',',@_) =~ /(\w+),%function/) {
"#ifdef __thumb2__\n".
".thumb_func $1\n".
"#endif";
}
}
else { ""; }
};
my $size = sub {
......
......@@ -181,7 +181,7 @@ $code=<<___;
#include "arm_arch.h"
.text
#if defined(__thumb2__) && !defined(__APPLE__)
#if defined(__thumb2__)
.syntax unified
.thumb
#else
......@@ -222,7 +222,7 @@ for($i=0;$i<5;$i++) {
&BODY_00_15(@V); unshift(@V,pop(@V));
}
$code.=<<___;
#if defined(__thumb2__) && !defined(__APPLE__)
#if defined(__thumb2__)
mov $t3,sp
teq $Xi,$t3
#else
......@@ -246,7 +246,7 @@ for($i=0;$i<5;$i++) {
&BODY_20_39(@V); unshift(@V,pop(@V));
}
$code.=<<___;
#if defined(__thumb2__) && !defined(__APPLE__)
#if defined(__thumb2__)
mov $t3,sp
teq $Xi,$t3
#else
......@@ -263,7 +263,7 @@ for($i=0;$i<5;$i++) {
&BODY_40_59(@V); unshift(@V,pop(@V));
}
$code.=<<___;
#if defined(__thumb2__) && !defined(__APPLE__)
#if defined(__thumb2__)
mov $t3,sp
teq $Xi,$t3
#else
......@@ -610,7 +610,7 @@ my ($W0,$W1,$ABCD_SAVE)=map("q$_",(12..14));
$code.=<<___;
#if __ARM_MAX_ARCH__>=7
# if defined(__thumb2__) && !defined(__APPLE__)
# if defined(__thumb2__)
# define INST(a,b,c,d) .byte c,d|0xf,a,b
# else
# define INST(a,b,c,d) .byte a,b,c,d|0x10
......
......@@ -175,7 +175,7 @@ $code=<<___;
#endif
.text
#if defined(__thumb2__) && !defined(__APPLE__)
#if defined(__thumb2__)
.syntax unified
.thumb
# define adrl adr
......@@ -595,7 +595,7 @@ my $Ktbl="r3";
$code.=<<___;
#if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__)
# if defined(__thumb2__) && !defined(__APPLE__)
# if defined(__thumb2__)
# define INST(a,b,c,d) .byte c,d|0xc,a,b
# else
# define INST(a,b,c,d) .byte a,b,c,d
......
......@@ -212,7 +212,7 @@ $code=<<___;
#endif
.text
#if defined(__thumb2__) && !defined(__APPLE__)
#if defined(__thumb2__)
.syntax unified
.thumb
# define adrl adr
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册