This is an archive of the discontinued LLVM Phabricator instance.

[Builtin][ARM] Add Thumb1 support for aeabi_c{f,d}cmp.S and dcmp.S
ClosedPublic

Authored by weimingz on Jan 21 2017, 4:33 PM.

Diff Detail

Repository
rL LLVM

Event Timeline

weimingz created this revision.Jan 21 2017, 4:33 PM
rengolin edited edge metadata.Jan 24 2017, 3:08 AM

Hi Weiming,

We have here the same problem as we had in the other patch: MRS/MSR is only available in ARMv6M. We'll have to find another way.

cheers,
--renato

lib/builtins/arm/aeabi_cdcmp.S
43 ↗(On Diff #85253)

MSR is not available in Thumb1.

weimingz updated this revision to Diff 85869.Jan 26 2017, 1:11 AM

using lsls to indirectly set PSR flags

I run the tests under compiler-rt/test/builtins/Unit/arm

rengolin accepted this revision.Jan 26 2017, 8:53 AM

Hi Weiming, this looks reasonable to me. Just use the same encoding for LSLS and feel free to commit.

Thanks!
--renato

lib/builtins/arm/aeabi_cdcmp.S
80 ↗(On Diff #85869)

Use LSLS one-reg or two-reg encoding (A8.8.94 T1), but not both.

This revision is now accepted and ready to land.Jan 26 2017, 8:53 AM
This revision was automatically updated to reflect the committed changes.