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
..
2014-05-29 06:41:15 -07:00
2014-05-29 06:41:15 -07:00
2014-04-29 14:49:42 +02:00
2014-06-22 06:20:15 -07:00
2014-06-22 06:20:15 -07:00
2016-09-22 09:47:52 +02:00
2016-09-22 09:47:52 +02:00
2016-09-22 09:47:52 +02:00
2016-09-22 09:47:52 +02:00
2016-09-22 09:47:52 +02:00
2014-06-18 14:07:23 -07:00
2015-12-24 13:58:18 +01:00
2015-12-24 13:58:18 +01:00
2016-03-01 10:18:28 +01:00
2014-12-09 11:43:25 +02:00
2016-03-01 10:18:28 +01:00
2014-12-09 11:43:25 +02:00
2014-12-09 11:43:25 +02:00
2015-12-14 16:45:02 +01:00
2015-12-14 16:45:02 +01:00
2015-02-15 22:47:21 +02:00
2015-02-15 22:47:21 +02:00
2016-09-29 14:48:04 +02:00
2016-09-29 14:48:04 +02:00
2014-08-04 22:22:54 +02:00
2017-09-02 22:18:20 +03:00
2015-07-18 00:28:49 +02:00
2014-07-25 02:52:54 -07:00
2017-05-04 14:08:39 +02:00
2017-05-04 14:08:39 +02:00
2016-09-29 14:48:03 +02:00
2016-09-29 14:48:03 +02:00
2014-06-30 07:58:46 -07:00
2016-09-29 14:48:03 +02:00
2014-06-30 07:58:46 -07:00
2016-09-29 14:48:03 +02:00
2014-07-20 13:02:17 -07:00
2016-09-29 14:48:03 +02:00
2014-07-20 13:02:17 -07:00
2014-06-30 07:58:46 -07:00
2014-05-29 06:41:15 -07:00
2017-03-28 11:36:01 +03:00
2016-03-01 10:18:28 +01:00
2016-03-01 10:18:28 +01:00
2014-07-18 01:34:08 +03:00
2014-07-17 09:07:10 -07:00
2014-11-24 01:30:10 +00:00
2014-12-09 22:00:08 +01:00
2016-05-04 18:16:21 +02:00
2014-08-15 01:26:33 -07:00
2014-08-15 01:26:33 -07:00
2016-05-04 18:16:21 +02:00
2014-07-06 14:26:53 -07:00
2014-07-06 14:26:53 -07:00
2016-09-28 10:01:52 +02:00
2014-07-09 08:05:26 -07:00
2016-09-14 14:12:36 +02:00
2016-02-26 14:34:58 +01:00
2014-07-25 02:52:54 -07:00
2016-05-04 18:16:21 +02:00
2016-08-17 12:21:54 +02:00
2016-09-29 14:48:03 +02:00
2016-09-29 14:48:03 +02:00
2014-08-04 22:22:54 +02:00
2014-08-04 22:22:54 +02:00
2014-07-18 11:17:40 +03:00
2014-08-04 22:22:54 +02:00
2017-05-15 09:52:18 +03:00
2017-05-15 09:52:18 +03:00
2015-07-20 23:10:29 +02:00
2016-08-26 11:36:26 +02:00
2016-08-26 11:50:22 +02:00
2014-04-04 10:39:29 +02:00
2016-08-26 11:36:53 +02:00
2014-04-04 04:00:11 +02:00
2014-04-04 04:00:11 +02:00
2014-04-04 04:00:11 +02:00
2016-07-06 22:58:51 +03:00
2014-04-04 04:00:11 +02:00
2017-02-24 00:03:09 +02:00
2017-03-16 23:09:00 +02:00
2017-03-16 23:09:00 +02:00
2017-02-11 00:08:37 +02:00