Tim Northover
4e399f4500
ARM: rework Thumb1 frame index rewriting
...
The previous code had a few problems, motivating the choices here.
1. It could create instructions clobbering CPSR, but the incoming MachineInstr
didn't reflect this. A potential source of corruption. This is why the patch
has a new PseudoInst for before lowering.
2. Similarly, there was some code to handle the incoming instruction not being
ARMCC::AL, but this would have caused massive problems if it was actually
invoked when a complex offset needing more than one instruction was requested.
3. It wasn't designed to handle unaligned pointers (or offsets). These should
probably be minimised anyway, but the code needs to deal with them properly
regardless.
4. It had some rather dubious ad-hoc code to avoid calling
emitThumbRegPlusImmediate, a function which should be designed to do precisely
this job.
We seem to cover the common cases correctly now, and hopefully can enhance
emitThumbRegPlusImmediate to handle any extra optimisations we need to add in
future.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220236 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-20 21:28:41 +00:00
..
2014-07-19 01:29:51 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-14 16:53:50 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-02 21:22:03 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-10-03 20:01:09 +00:00
2014-05-30 10:09:59 +00:00
2014-05-30 10:09:59 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-10-03 20:01:09 +00:00
2014-05-30 08:59:55 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-10-03 20:01:09 +00:00
2014-04-03 16:01:44 +00:00
2014-10-03 20:01:09 +00:00
2014-05-30 10:09:59 +00:00
2014-10-03 20:01:09 +00:00
2014-05-30 10:09:59 +00:00
2014-05-30 08:59:55 +00:00
2014-10-14 22:12:17 +00:00
2014-10-03 20:01:09 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-30 10:09:59 +00:00
2014-05-30 08:59:55 +00:00
2014-04-03 23:47:24 +00:00
2014-05-30 10:09:59 +00:00
2014-04-03 16:01:44 +00:00
2014-05-14 11:13:31 +00:00
2014-07-23 08:39:50 +00:00
2014-08-10 22:20:37 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-08-21 12:50:31 +00:00
2014-05-09 16:20:53 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-08-22 18:05:22 +00:00
2014-07-30 22:51:54 +00:00
2014-04-03 17:35:22 +00:00
2014-08-25 16:56:33 +00:00
2014-10-01 13:13:18 +00:00
2014-05-30 10:09:59 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-06-13 16:45:52 +00:00
2014-06-13 14:24:07 +00:00
2014-08-20 23:38:50 +00:00
2014-09-18 18:56:04 +00:00
2014-10-14 22:12:14 +00:00
2014-06-13 14:24:07 +00:00
2014-04-03 16:01:44 +00:00
2014-04-29 10:13:10 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-13 16:44:30 +00:00
2014-05-12 11:19:20 +00:00
2014-06-23 18:05:53 +00:00
2014-06-16 09:17:30 +00:00
2014-06-01 09:30:52 +00:00
2014-05-14 16:59:44 +00:00
2014-05-14 16:59:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-12 22:13:07 +00:00
2014-10-13 10:22:19 +00:00
2014-03-26 12:52:28 +00:00
2014-05-30 10:09:59 +00:00
2014-04-03 16:01:44 +00:00
2014-09-02 22:45:13 +00:00
2014-04-03 16:01:44 +00:00
2014-06-13 14:24:07 +00:00
2014-06-13 16:45:52 +00:00
2014-10-03 20:01:09 +00:00
2014-04-03 16:01:44 +00:00
2014-10-01 19:21:03 +00:00
2014-04-03 16:01:44 +00:00
2014-05-12 11:19:20 +00:00
2014-08-21 12:50:31 +00:00
2014-05-30 10:09:59 +00:00
2014-08-26 12:47:26 +00:00
2014-04-03 16:01:44 +00:00
2014-10-03 20:01:09 +00:00
2014-10-03 20:01:09 +00:00
2014-10-03 20:01:09 +00:00
2014-10-03 20:01:09 +00:00
2014-10-03 20:01:09 +00:00
2014-10-03 20:01:09 +00:00
2014-10-03 20:01:09 +00:00
2014-10-03 20:01:09 +00:00
2014-10-03 20:01:09 +00:00
2014-10-03 20:01:09 +00:00
2014-10-03 20:01:09 +00:00
2014-08-23 18:29:43 +00:00
2014-05-07 07:49:34 +00:00
2014-04-03 16:01:44 +00:00
2014-05-14 16:38:30 +00:00
2014-05-14 16:37:32 +00:00
2014-05-07 07:49:34 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-08-05 20:16:35 +00:00
2014-04-03 16:01:44 +00:00
2014-08-19 19:05:24 +00:00
2014-08-19 19:05:24 +00:00
2014-07-16 22:20:51 +00:00
2014-08-19 19:05:24 +00:00
2014-08-19 19:05:24 +00:00
2014-08-19 19:05:24 +00:00
2014-08-19 19:05:24 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-08-14 15:15:28 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-08-22 21:59:26 +00:00
2014-04-03 16:01:44 +00:00
2014-08-11 09:12:32 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-30 10:09:59 +00:00
2014-05-18 04:12:52 +00:00
2014-04-03 16:01:44 +00:00
2014-05-08 22:45:07 +00:00
2014-06-11 06:44:53 +00:00
2014-07-18 13:01:19 +00:00
2014-04-03 16:01:44 +00:00
2014-05-09 14:01:47 +00:00
2014-04-25 17:24:24 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-30 10:09:59 +00:00
2014-04-14 16:56:19 +00:00
2014-05-30 10:09:59 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-29 10:06:05 +00:00
2014-04-03 16:01:44 +00:00
2014-05-30 10:09:59 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-07-25 09:55:01 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-08-06 11:13:14 +00:00
2014-07-03 16:00:41 +00:00
2014-05-09 21:52:48 +00:00
2014-04-25 17:51:25 +00:00
2014-04-03 16:01:44 +00:00
2014-06-05 21:40:13 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 15:10:35 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-06-16 18:49:36 +00:00
2014-04-03 15:10:35 +00:00
2014-06-09 22:42:55 +00:00
2014-04-03 16:01:44 +00:00
2014-05-08 14:06:24 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-08 14:06:24 +00:00
2014-04-03 16:01:44 +00:00
2014-05-30 10:09:59 +00:00
2014-04-03 16:01:44 +00:00
2014-05-16 14:24:22 +00:00
2014-06-20 10:08:11 +00:00
2014-06-20 10:08:11 +00:00
2014-06-20 10:08:11 +00:00
2014-05-30 10:09:59 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 17:35:22 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 17:35:22 +00:00
2014-04-03 16:01:44 +00:00
2014-04-12 04:47:04 +00:00
2014-05-06 16:51:25 +00:00
2014-05-06 16:51:25 +00:00
2014-09-09 09:57:59 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-09-18 21:17:50 +00:00
2014-08-06 11:13:06 +00:00
2014-08-06 11:13:14 +00:00
2014-06-20 15:30:38 +00:00
2014-04-02 09:03:43 +00:00
2014-04-03 16:01:44 +00:00
2014-07-15 17:18:41 +00:00
2014-04-03 16:01:44 +00:00
2014-04-12 00:59:48 +00:00
2014-04-03 16:01:44 +00:00
2014-09-02 22:46:18 +00:00
2014-10-14 22:12:17 +00:00
2014-04-03 16:01:44 +00:00
2014-08-20 10:40:20 +00:00
2014-05-30 10:09:59 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 17:35:22 +00:00
2014-04-03 17:35:22 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-07-23 13:59:12 +00:00
2014-05-06 20:43:01 +00:00
2014-05-22 13:03:43 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-07-14 18:21:11 +00:00
2014-04-03 17:35:22 +00:00
2014-04-03 16:01:44 +00:00
2014-10-20 11:30:35 +00:00
2014-05-30 10:09:59 +00:00
2014-08-02 05:40:40 +00:00
2014-04-23 01:09:29 +00:00
2014-05-06 16:51:25 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-30 10:09:59 +00:00
2014-05-08 14:06:24 +00:00
2014-09-23 23:18:01 +00:00
2014-07-23 07:08:53 +00:00
2014-04-03 23:47:24 +00:00
2014-08-18 12:42:15 +00:00
2014-08-07 19:30:13 +00:00
2014-04-03 16:01:44 +00:00
2014-08-22 21:59:26 +00:00
2014-10-20 21:28:41 +00:00
2014-08-11 20:13:25 +00:00
2014-09-11 10:45:50 +00:00
2014-04-15 21:30:06 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-30 10:09:59 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-22 04:46:46 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-30 08:59:55 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-08-22 21:59:26 +00:00
2014-08-22 21:59:26 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-12 11:19:20 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-07-15 17:18:41 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-22 10:10:09 +00:00
2014-10-03 20:01:09 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-10-03 12:20:53 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-19 13:12:38 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-04-03 16:01:44 +00:00
2014-05-30 08:59:55 +00:00
2014-09-10 12:53:28 +00:00
2014-04-01 13:22:02 +00:00
2014-05-14 21:14:37 +00:00