Just an update. I did discover how the pass functions call back into the target-specific code, it's generated from gcc/config/i386/i386.md. So thread_prologue_and_epilogue_insns() --> gen_prologue() --> ix86_expand_prologue(), which is implemented in i386.c. So that problem is solved, but still working on the rest. Currently, I'm guessing that I'll look through the clobber list to see if all of the regs in the array x86_64_ms_sysv_extra_clobbered_registers are present and if so, replace those with the ms_abi_push_regs, figure out how to let everybody know the new state of the stack and then allow any other clobbered regs to get pushed/moved after that.

Daniel

Reply via email to