[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Note that this backend is not done!
This backend provides the following additional options:
The current version generates assembly output for use with the GNU assembler using the non-banked model.
This backend supports the following registers:
d
for the accumulator (also used for byte, i.e. a
)
x
for index register x
y
for index register y
sp
for the stack-pointer
All registers are scratch (i.e. caller-save).
The first function arguments which has integer or pointer types
is passed in the accumulator d
or the register pair d/x
.
The
remaining arguments are passed on the stack.
Integers and pointers are returned in d
or d/x
.
All other types are returned by passing the function the address
of the result as a hidden argument - so when you call such a function
without a proper declaration in scope you can expect a crash.
The elementary data types are represented like:
type size in bits alignment in bytes char 8 1 short 16 2 int 16 2 long currently not supported near pointers 16 2 far pointers currently not supported huge pointers currently not supported float currently not supported double currently not supported |
__interrupt
rfi
rather than blr
.
__section("name","attr")
This backend defines the following macros:
__HC12__
If the `-stack-check' option is used, every function-prologue will
call the function __stack_check
with the stacksize needed by this
function in register y
. This function has to consider its own
stacksize and must restore all registers.
To be written...
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |