diff options
| author | 2023-06-06 15:08:46 +0200 | |
|---|---|---|
| committer | 2023-06-06 15:08:46 +0200 | |
| commit | 86625b1166bd39e28b4dd4995ed6cd88c0bdde7e (patch) | |
| tree | 2bfd67ddc7e3b4bb4c4a3d951dfc80fac7c4bad3 /ir.h | |
| parent | 3388975ee3a0814e9c95863035ab0d122174c549 (diff) | |
codegen skeleton
Diffstat (limited to 'ir.h')
| -rw-r--r-- | ir.h | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -87,6 +87,7 @@ enum op { #define oiscmp(o) in_range(o, Oequ, Oulte) #define oisalloca(o) in_range(o, Oalloca1, Oalloca16) #define oisstore(o) in_range(o, Ostore1, Ostore8) +#define oisload(o) in_range(o, Oloads1, Oloadf8) enum intrin { INxxx, @@ -153,8 +154,12 @@ struct mctarg { * if passed by pointer cls[0] == KPTR, r[0] contains integer register or -1 if stack */ int (*abiarg)(short r[2], uchar cls[2], int *ni, int *nf, int *ns, union irtype); + + void (*emit)(struct function *); }; +enum { MAXINSTR = 1<<14 }; + extern uchar type2cls[]; extern uchar cls2siz[]; extern const uchar siz2intcls[]; |