summaryrefslogtreecommitdiff
path: root/set.h
blob: 1908c86d5d8e61430e609394a9fd06178b638dc3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#ifndef set_H
#define set_H

#include "cgen.h"
#include "lex.h"
#include "parse.h"
#include "prv.h"
#include "storage.h"
#include <stddef.h>

struct setdst
{
    const struct stentry *entry;
};

struct set
{
    enum {MV_VAL, MV_VAR, MV_ADDR, MV_IMB} type;
    const struct stentry *off, *src;
    unsigned long long srcv;
    struct setdst *dsts;
    size_t ndsts;
};

int set(const struct lex *l, struct prv *p);
int set_cgen(const struct set *m, struct cgen *c);
void set_free(struct set *m);

#endif