FFmpeg/libavcodec
Martin Storsjö 9dde6ab06c arm: Fix SIGBUS on ARM when compiled with binutils 2.29
In binutils 2.29, the behavior of the ADR instruction changed so that 1 is
added to the address of a Thumb function (previously nothing was added). This
allows the loaded address to be passed to a BLX instruction and the correct
mode change will occur.

See: https://sourceware.org/bugzilla/show_bug.cgi?id=21458

By using adr with a label that isn't annotated as a thumb function,
we avoid the new behaviour in binutils 2.29 and get the same behaviour
as in prior releases, and as in other assemblers (ms armasm.exe,
clang's built in assembler) - an idea that Janne Grunau came up with.

Signed-off-by: Martin Storsjö <martin@martin.st>
2017-09-02 22:18:20 +03:00
..
2016-11-13 18:44:00 +01:00
2016-06-07 13:09:57 +02:00
2017-07-28 14:12:56 +02:00
2017-07-05 15:06:41 +02:00
2017-08-12 22:17:20 +01:00
2017-02-07 18:27:21 +01:00
2017-03-09 18:37:29 +01:00
2017-03-09 18:37:29 +01:00
2017-07-05 13:05:54 +02:00
2017-04-25 15:39:10 +02:00
2017-07-26 23:24:34 +02:00
2017-07-28 14:12:56 +02:00
2017-07-28 14:12:56 +02:00
2017-07-26 23:24:34 +02:00
2016-06-07 13:09:57 +02:00
2016-11-18 10:35:04 +01:00
2016-08-17 12:16:42 +02:00
2016-06-08 18:51:57 +02:00
2017-01-31 17:54:10 +01:00
2017-04-13 12:35:35 +02:00
2017-02-07 18:27:21 +01:00
2017-04-13 13:37:10 +02:00
2016-06-08 18:51:56 +02:00
2017-07-28 14:12:56 +02:00
2017-03-27 22:56:23 +03:00
2017-03-27 22:56:23 +03:00
2017-02-07 18:27:21 +01:00
2016-08-17 12:16:42 +02:00
2016-06-28 14:17:43 +03:00
2016-06-28 14:17:43 +03:00
2016-11-13 18:44:01 +01:00
2016-11-07 22:42:00 +01:00
2016-11-30 13:44:05 +01:00
2016-06-07 13:09:57 +02:00
2016-12-14 09:06:44 +01:00
2017-06-24 12:35:52 +00:00
2017-02-07 18:27:21 +01:00
2017-08-21 09:23:44 +02:00
2016-06-12 20:27:53 +02:00
2016-11-14 19:38:20 +00:00
2016-07-22 19:08:13 +02:00
2016-06-29 15:25:42 -04:00
2016-06-29 15:25:42 -04:00
2016-10-02 15:42:03 -04:00
2017-06-01 14:22:01 +02:00
2017-02-25 09:57:43 +01:00
2017-01-25 11:06:58 +01:00
2017-01-25 11:06:58 +01:00
2016-09-28 10:01:52 +02:00
2017-02-07 18:27:21 +01:00
2017-04-13 14:09:07 +02:00
2016-12-19 08:13:08 +01:00
2016-09-08 21:58:22 +01:00
2016-08-11 10:54:44 +02:00
2017-02-18 19:53:20 +00:00
2017-02-06 15:13:34 +01:00
2017-02-07 18:27:21 +01:00
2017-08-13 19:58:40 +02:00
2016-06-07 13:09:57 +02:00
2017-01-19 09:52:10 +01:00