diff --git a/source/compiler/sc1.c b/source/compiler/sc1.c index 054c313..8017276 100644 --- a/source/compiler/sc1.c +++ b/source/compiler/sc1.c @@ -134,6 +134,56 @@ static int doswitch(void); static void docase(int isdefault); static int dogoto(void); static void dolabel(void); +static void emit_invalid_token(int expected_token,int found_token); +static regid emit_findreg(char *opname); +static int emit_getlval(int *identptr,emit_outval *p,int *islocal, + regid reg,int allow_char,int allow_const, + int store_pri,int store_alt,int *ispushed); +static int emit_getrval(int *identptr,cell *val); +static int emit_param_any_internal(emit_outval *p,int expected_tok, + int allow_nonint,int allow_expr); +static void emit_param_any(emit_outval *p); +static void emit_param_integer(emit_outval *p); +static void emit_param_index(emit_outval *p,int isrange, + const cell *valid_values,int numvalues); +static void emit_param_nonneg(emit_outval *p); +static void emit_param_shift(emit_outval *p); +static void emit_param_data(emit_outval *p); +static void emit_param_local(emit_outval *p,int allow_ref); +static void emit_param_label(emit_outval *p); +static void emit_param_function(emit_outval *p,int isnative); +static void emit_noop(char *name); +static void emit_parm0(char *name); +static void emit_parm1_any(char *name); +static void emit_parm1_integer(char *name); +static void emit_parm1_nonneg(char *name); +static void emit_parm1_shift(char *name); +static void emit_parm1_data(char *name); +static void emit_parm1_local(char *name); +static void emit_parm1_local_noref(char *name); +static void emit_parm1_label(char *name); +static void emit_do_casetbl(char *name); +static void emit_do_case(char *name); +static void emit_do_lodb_strb(char *name); +static void emit_do_align(char *name); +static void emit_do_call(char *name); +static void emit_do_sysreq_c(char *name); +static void emit_do_sysreq_n(char *name); +static void emit_do_const(char *name); +static void emit_do_const_s(char *name); +static void emit_do_load_both(char *name); +static void emit_do_load_s_both(char *name); +static void emit_do_pushn_c(char *name); +static void emit_do_pushn(char *name); +static void emit_do_pushn_s_adr(char *name); +static void emit_do_load_u_pri_alt(char *name); +static void emit_do_stor_u_pri_alt(char *name); +static void emit_do_addr_u_pri_alt(char *name); +static void emit_do_push_u(char *name); +static void emit_do_push_u_adr(char *name); +static void emit_do_zero_u(char *name); +static void emit_do_inc_dec_u(char *name); +static int emit_findopcode(const char *instr); static int isterminal(int tok); static void doreturn(void); static void dobreak(void);