My understanding is that for the cortex M4, the address register for BX and BLX must have bit(0) set to 1. I am confused how this works with regards to the BLX instruction, does the address inserted into the LR register after execution BLX instruction have bit(0) set to 1? Do I need to manually change it to 1 prior to executing a return using the BX instruction?
The other option is to use: MOV PC, LR but it seems like that is defeating the purpose of the branch instructions.