comparison gen.h @ 1298:d5a47597b61f

Prevent blowing past our native translated instruction size of 255 bytes when translating movem with a large register list. Fixes bug in which Fantastic Dizzy was completely broken on 32-bit builds
author Michael Pavone <pavone@retrodev.com>
date Sat, 25 Mar 2017 00:21:32 -0700
parents 2ec5e6eaf81d
children
comparison
equal deleted inserted replaced
1297:71b1a080b30c 1298:d5a47597b61f
22 22
23 void init_code_info(code_info *code); 23 void init_code_info(code_info *code);
24 void call(code_info *code, code_ptr fun); 24 void call(code_info *code, code_ptr fun);
25 void jmp(code_info *code, code_ptr dest); 25 void jmp(code_info *code, code_ptr dest);
26 void jmp_r(code_info *code, uint8_t dst); 26 void jmp_r(code_info *code, uint8_t dst);
27 //standard return from subroutine instruction
28 void rts(code_info *code);
27 //call a function and put the arguments in the appropriate place according to the host ABI 29 //call a function and put the arguments in the appropriate place according to the host ABI
28 void call_args(code_info *code, code_ptr fun, uint32_t num_args, ...); 30 void call_args(code_info *code, code_ptr fun, uint32_t num_args, ...);
29 //like the above, but call a function pointer stored in a register 31 //like the above, but call a function pointer stored in a register
30 void call_args_r(code_info *code, uint8_t fun_reg, uint32_t num_args, ...); 32 void call_args_r(code_info *code, uint8_t fun_reg, uint32_t num_args, ...);
31 //like the above, but follows other aspects of the ABI like stack alignment 33 //like the above, but follows other aspects of the ABI like stack alignment