Contents|Index|Previous|Next

Calling conventions for Hitachi H8/300

The Hitachi H8/300 passes the first three words of arguments in registers R0 through R2. All remaining arguments are pushed onto the stack, last to first, so that the lowest numbered argument not passed in a register is at the lowest address in the stack. The registers are always filled, so a double word argument starting in R2 would have the most significant word in R2 and the least significant word on the stack. Function return values are stored in R0 and R1. Registers R0 through R2 can be used for temporary values. When a function is compiled with the default options, it must return with registers R3 through R6 unchanged.

Note:
Functions compiled with different calling conventions cannot be run together without some care.