| [ << ] | [ >> ] | [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] | [ ? ] |