Make sure only NEON enabled devices save/restore D16+ registers
llvm-svn: 221532
This commit is contained in:
parent
13437e8414
commit
083eb00d9d
|
|
@ -390,7 +390,7 @@ DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9libunwind13Registers_arm19restoreVFPWithFL
|
||||||
.p2align 2
|
.p2align 2
|
||||||
DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9libunwind13Registers_arm12restoreVFPv3EPy)
|
DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9libunwind13Registers_arm12restoreVFPv3EPy)
|
||||||
#if defined(__ARM_FP)
|
#if defined(__ARM_FP)
|
||||||
#if __ARM_ARCH < 7
|
#ifndef __ARM_NEON
|
||||||
ldcl p11, cr0, [r0], {0x20} @ vldm r0, {d16-d31}
|
ldcl p11, cr0, [r0], {0x20} @ vldm r0, {d16-d31}
|
||||||
#else
|
#else
|
||||||
vldmia r0, {d16-d31}
|
vldmia r0, {d16-d31}
|
||||||
|
|
|
||||||
|
|
@ -369,7 +369,7 @@ DEFINE_LIBUNWIND_PRIVATE_FUNCTION(_ZN9libunwind13Registers_arm9saveVFPv3EPy)
|
||||||
@ these registers implies they are, actually, available on the target, so
|
@ these registers implies they are, actually, available on the target, so
|
||||||
@ it's ok to execute.
|
@ it's ok to execute.
|
||||||
@ So, generate the instructions using the corresponding coprocessor mnemonic.
|
@ So, generate the instructions using the corresponding coprocessor mnemonic.
|
||||||
#if __ARM_ARCH < 7
|
#ifndef __ARM_NEON
|
||||||
stcl p11, cr0, [r0], {0x20} @ vstm r0, {d16-d31}
|
stcl p11, cr0, [r0], {0x20} @ vstm r0, {d16-d31}
|
||||||
#else
|
#else
|
||||||
vstmia r0, {d16-d31}
|
vstmia r0, {d16-d31}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue