/* Copyright Per Bothner 1987. Read the file Q-INFO */
/* compilation is done using register long *codePtr == a5 */
#define CompileShort(x) {d0 = x; asm(" movw d0,a5@+");}
#define CompileW(instr) {asm(" .word 0x3AFC");asm(instr);}
	/* *codePtr++ = "instr" */
#define CompileL(instr) {asm(" .word 0x2AFC");asm(instr);}
	/* *codePtr++ = "instr" */
#define CompilePushConst(arg)	/* Compile(movl #arg,sp@-) */ \
    {CompileW(" .word 0x2F3C"); *codePtr++ = (long)(arg);}
#define CompileSaveEnv(env)	/* Compile(movl #env,a1) */ \
    {CompileW(" .word 0x227C"); *codePtr++ = env;}
#define CompileCall(f)		/* Compile(jsr f) */ \
    {CompileW(" .word 0x4EB9"); *codePtr++ = (long)(f);}
#define CompileJump(f)		/* Compile(jmp f) */ \
    {CompileW(" .word 0x4EF9"); *codePtr++ = (long)(f);}
#define CompilePopStack(n)	/* Compile(lea sp@(n),sp) */ \
    {CompileW(" .word 0x4FEF"); CompileShort(n);}
#define CompileReturn CompileW(" rts");
