summaryrefslogtreecommitdiff
path: root/celt/arm
diff options
context:
space:
mode:
authorMark Harris <mark.hsj@gmail.com>2017-02-04 16:57:41 -0800
committerMark Harris <mark.hsj@gmail.com>2017-02-04 17:23:46 -0800
commitc5a84df8fdaaeb383401362f3ae57224d10ce300 (patch)
treee6a4681b97e9b22bb7ab8bcf8fa1ce48e8d1cfe4 /celt/arm
parentfeabcdc6a4e81baedbf94b06cd07bf356b3c8486 (diff)
downloadopus-c5a84df8fdaaeb383401362f3ae57224d10ce300.tar.gz
arm2gnu.pl: Fix GNU ARM .type directive
Broken by 76e831d. Without the .type directive, SIGILL may be produced if the C code is compiled in Thumb mode, because the compiler may assume that the asm symbol is also Thumb and call it using a BL instruction.
Diffstat (limited to 'celt/arm')
-rwxr-xr-xcelt/arm/arm2gnu.pl4
1 files changed, 2 insertions, 2 deletions
diff --git a/celt/arm/arm2gnu.pl b/celt/arm/arm2gnu.pl
index 6c922ac8..a2895f74 100755
--- a/celt/arm/arm2gnu.pl
+++ b/celt/arm/arm2gnu.pl
@@ -164,11 +164,11 @@ while (<>) {
$prefix = "";
if ($proc)
{
- $prefix = $prefix.sprintf("\t.type\t%s, %%function; ",$proc) unless ($apple);
+ $prefix = $prefix.sprintf("\t.type\t%s, %%function", $proc) unless ($apple);
# Make sure we $prefix isn't empty here (for the $apple case).
# We handle mangling the label here, make sure it doesn't match
# the label handling below (if $prefix would be empty).
- $prefix = "; ";
+ $prefix = $prefix."; ";
push(@proc_stack, $proc);
s/^[A-Za-z_\.]\w+/$symprefix$&:/;
}