[[ blog 이사 과정에서 정확한 posting날짜가 분실됨. 년도와 분기 정도는 맞지 않을까? ]]

"indirect branch" means "branching into value of register". Usual branching jumps to the address computed from argument value and PC - PC relative address. So, there is offset limitation. But, 'indirect jump' can go to anywhere within supported address - usually, register size == instruction domain size == supporting memory size.

Here ARM example.

BX LR,
LDR PC, XX,
ADD PC, XX, XX

Then, which case can be interpreted to 'indirect branch' in C/C++ - Yes, it's totally dependent on compiler. We just assume general case?

* Return from function call. (BX LR)
* Function call by "function pointer" (LDR PC, XX)
    - using function pointer explicitly.
    - using virtual function pointer table of class.
... anything else???

+ Recent posts