Expose some statements functions needed for code gen.
This commit is contained in:
parent
c43a8331cf
commit
802e1981bb
|
@ -83,9 +83,13 @@ typedef struct sblock_s {
|
||||||
} sblock_t;
|
} sblock_t;
|
||||||
|
|
||||||
struct expr_s;
|
struct expr_s;
|
||||||
|
struct type_s;
|
||||||
|
|
||||||
|
operand_t *temp_operand (struct type_s *type);
|
||||||
|
sblock_t *new_sblock (void);
|
||||||
int find_operands (statement_t *s, operand_t **x, operand_t **y, operand_t **z,
|
int find_operands (statement_t *s, operand_t **x, operand_t **y, operand_t **z,
|
||||||
operand_t **w);
|
operand_t **w);
|
||||||
|
void sblock_add_statement (sblock_t *sblock, statement_t *statement);
|
||||||
sblock_t *make_statements (struct expr_s *expr);
|
sblock_t *make_statements (struct expr_s *expr);
|
||||||
void print_statement (statement_t *s);
|
void print_statement (statement_t *s);
|
||||||
void dump_dot_sblock (void *data, const char *fname);
|
void dump_dot_sblock (void *data, const char *fname);
|
||||||
|
|
|
@ -265,7 +265,7 @@ static sblock_t *free_sblocks;
|
||||||
static statement_t *free_statements;
|
static statement_t *free_statements;
|
||||||
static operand_t *free_operands;
|
static operand_t *free_operands;
|
||||||
|
|
||||||
static sblock_t *
|
sblock_t *
|
||||||
new_sblock (void)
|
new_sblock (void)
|
||||||
{
|
{
|
||||||
sblock_t *sblock;
|
sblock_t *sblock;
|
||||||
|
@ -274,7 +274,7 @@ new_sblock (void)
|
||||||
return sblock;
|
return sblock;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
void
|
||||||
sblock_add_statement (sblock_t *sblock, statement_t *statement)
|
sblock_add_statement (sblock_t *sblock, statement_t *statement)
|
||||||
{
|
{
|
||||||
// this should normally be null, but might be inserting
|
// this should normally be null, but might be inserting
|
||||||
|
@ -342,7 +342,7 @@ free_sblock (sblock_t *sblock)
|
||||||
free_sblocks = sblock;
|
free_sblocks = sblock;
|
||||||
}
|
}
|
||||||
|
|
||||||
static operand_t *
|
operand_t *
|
||||||
temp_operand (type_t *type)
|
temp_operand (type_t *type)
|
||||||
{
|
{
|
||||||
operand_t *op = new_operand (op_temp);
|
operand_t *op = new_operand (op_temp);
|
||||||
|
|
Loading…
Reference in New Issue