typedef void (*inst_t)(void **ip, long *sp, long, long, long, long); //__attribute__((regcall)) void minus00(void **ip, long *sp, long s4, long s3, long s2, long TOS) { sp[1] -= sp[0]; sp++; inst_t next = *ip; ip++; /*__attribute__((musttail))*/ return next(ip,sp, s4, s3, s2, TOS); } void minus11(void **ip, long *sp, long s4, long s3, long s2, long TOS) { TOS = sp[0]-TOS; sp++; inst_t next = *ip; ip++; /*__attribute__((musttail))*/ return next(ip,sp, s4, s3, s2, TOS); } void minus44(void **ip, long *sp, long s4, long s3, long s2, long TOS) { TOS -= s2; s2 = s3; s3 = s4; s4 = sp[0]; sp++; inst_t next = *ip; ip++; /*__attribute__((musttail))*/ return next(ip,sp, s4, s3, s2, TOS); } void minus01(void **ip, long *sp, long s4, long s3, long s2, long s1) { s1 = sp[1]-sp[0]; sp+=2; inst_t next = *ip; ip++; /*__attribute__((musttail))*/ return next(ip,sp, s4, s3, s2, s1); } void minus21(void **ip, long *sp, long s4, long s3, long s2, long s1) { s1 = s1-s2; inst_t next = *ip; ip++; /*__attribute__((musttail))*/ return next(ip,sp, s4, s3, s2, s1); }