26 lines
450 B
C
26 lines
450 B
C
|
#ifndef RZ_LOCALS_H
|
||
|
#define RZ_LOCALS_H
|
||
|
|
||
|
#include "commons.h"
|
||
|
#include "value.h"
|
||
|
|
||
|
typedef struct {
|
||
|
int id;
|
||
|
int addr;
|
||
|
} local_t;
|
||
|
|
||
|
typedef struct {
|
||
|
size_t size;
|
||
|
size_t cap;
|
||
|
local_t** data;
|
||
|
} locals_t;
|
||
|
|
||
|
void locals_init(locals_t* locals);
|
||
|
locals_t* locals_new_clone(locals_t* locals);
|
||
|
void locals_free(locals_t* locals);
|
||
|
|
||
|
local_t* locals_try_load(locals_t* locals, int id);
|
||
|
void locals_store(locals_t* locals, int id, int addr);
|
||
|
|
||
|
#endif
|