Okay, so let's say you have this untrusted block of code:
L0:
move r0, #0
move r1, #0
load.w r2, [r0]
add r1, r1, r2
store.w [r0], #0
add r0, #wordSize
bz r0, #0, L0
move r0, 42
ret
which tries to calculate a silly hash of all the memory it can reach via indirect loads and then to zero whatever memory it can reach via indirect stores (which is usually just the whole of the process's memory on modern systems in both cases). What mechanisms do you propose that would allow one to blindly run this code without erasing all kinds of precious information in the memory, ideally still returning 42 in r0 to the caller in the end but without leaking any sensitive information via r1?