Team,
Do we have any details about the CRET instruction that the compiler is gernating? It seems to be a pseudo instruction which results in a branch (b) instruction. But I couldn't find any description about CRET. A customer of mine is doing a safety certification and they need to document/certify all generated code. For this it's important to know if CRET is really always resulting in a branch.
As example, for following C code, the compiler generates assembly code which is using CRET to call some_func_...:
void f(void) { if(glob_var_1_boolean) { some_func_1(); } else { some_func_2(); } }
Customer is using TI ARM C/C++ Compiler v20.2.1.LTS with these options:
--abi=eabi --arm_vmrs_si_workaround=off --code_state=16 --diag_wrap=off --embedded_constants=on --endian=big --float_support=VFPv3D16 --hll_source=on --object_format=elf --silicon_version=7R5 --symdebug:dwarf --symdebug:dwarf_version=3 --unaligned_access=on
Thanks,
Robert