In analyze_atomheader() documentation
I see the following
If return stack is enabled ,
--- If return stack is enabled and decoded instruction is an indirect branch, pop address,
instruction set state and security state off the top of the return stack and update
CurrentState with these values.
— If return stack is enabled and decoded instruction is a branch with link, push return
address, instruction set state and securitystate onto the top of the return stack
During PFT decompression , the decompressor is supposed to maintain its own return stack right ?
Please let me know if my assumption below is correct:
If the decompressor encounters a branch with link, it should store the return address in its local return stack
If the PFT compressor generated an E Atom in lieu of an indirect branch , then the decompressor will find that the Address of the E Atom actually has an indirect branch instruction.
Here is where the decompressor refers to its return stack and gets the target address, since this 'special' E Atom will not have any direct addresses.
Thanks,
Aneeket