This is an archive of the discontinued LLVM Phabricator instance.

[ARMv8-M] [5/9] Add B.W and CBZ instructions to ARMv8-M Baseline
ClosedPublic

Authored by bsmith on Dec 7 2015, 3:13 AM.

Details

Reviewers
t.p.northover
Summary

This patch forms part of the ARMv8-M Baseline/Mainline support, allowing the use of wide branch and CBZ instructions in ARMv8-M Baseline.

Diff Detail

Repository
rL LLVM

Event Timeline

bsmith updated this revision to Diff 42043.Dec 7 2015, 3:13 AM
bsmith retitled this revision from to [ARMv8-M] [5/9] Add B.W and CBZ instructions to ARMv8-M Baseline.
bsmith updated this object.
bsmith added a reviewer: t.p.northover.
bsmith set the repository for this revision to rL LLVM.
bsmith added a subscriber: llvm-commits.
bsmith updated this revision to Diff 42155.Dec 8 2015, 3:46 AM

Rebase onto changes done in D15275.

bsmith updated this revision to Diff 43879.Jan 4 2016, 6:18 AM

Rebase patch against latest trunk changes.

t.p.northover edited edge metadata.Jan 13 2016, 3:49 PM

One minor comment on the logic here (though I don't think it would ever make a difference in practice):

lib/Target/ARM/ARMSubtarget.cpp
237

Isn't the logic here really "!isThumb() || hasV8MBaselineOps()"? The Feature check part of isThumb1Only seems to be redundant since any T2-capable processor will have 8M baseline.

Or am I misunderstanding?

bsmith updated this revision to Diff 44871.Jan 14 2016, 5:50 AM
bsmith edited edge metadata.

Remove redundancy in condition check !isThumb1Only() && hasV8MBaselineOps(), all Thumb-2 targets will have hasV8MBaselineOps() set, so the first condition can simply be !isThumb().

t.p.northover accepted this revision.Jan 14 2016, 6:24 AM
t.p.northover edited edge metadata.

Thanks Bradley, this looks fine now.

Tim.

This revision is now accepted and ready to land.Jan 14 2016, 6:24 AM
bsmith closed this revision.Jan 15 2016, 2:34 AM

Thanks, committed as r257881.