The document
http://infocenter.arm.com/help/topic/com.arm.doc.ecm0359818/ECM0359818_armv8m_security_extensions_reqs_on_dev_tools_1_0.…
on page 8 says the least significant bit of the PC is used to distinguish between secure and non-secure state - and as far as I can make out non-secure state has the bit unset and secure state has it set. Surely that is rather incompatible with the current use where it always has to be 1 and I would say most of the code would be counted as insecure? Why is the bit required anyway?