I am trying to understand some disassembled code, and encounter instances of ?C?LSTKXDATA. Apparently, that function expects 4 bytes of data following the call instruction. And thus must adjust the stack accordingly before RETurn.
https://github.com/NationalSecurityAgency/ghidra/issues/1177
I've seen the arm.com doc page that comes up when searching for this function: http://www.keil.com/support/docs/1964.htm But that page describes passing arguments only in registers.
Looking at the disassembly, ti does indeed look like ?C?LSTKXDATA starts by popping the return address into DPTR, and then using that pointer to access data, and then uses the incremented address to JMP "return".
But it would be nice to see actual docs on what ?C?LSTKXDATA does, how to call it, and others in that family of functions that have similar call conventions.
Thanks.