asm: assembler: implement label creation and resolution
This commit is contained in:
@@ -13,6 +13,7 @@ typedef uint32_t ivy_extended_data_key;
|
||||
|
||||
struct ivy_selector;
|
||||
struct ivy_instr;
|
||||
struct ivy_asm_token;
|
||||
|
||||
struct ivy_assembler;
|
||||
|
||||
@@ -62,6 +63,7 @@ typedef unsigned long long ivy_assembler_attrib_table[__IVY_ASM_ATTRIB_COUNT];
|
||||
|
||||
IVY_API enum ivy_status ivy_assembler_create(FILE *out, struct ivy_assembler **as);
|
||||
IVY_API enum ivy_status ivy_assembler_finish(struct ivy_assembler *as);
|
||||
IVY_API size_t ivy_assembler_get_ptr(const struct ivy_assembler *as);
|
||||
|
||||
IVY_API enum ivy_status ivy_assembler_begin_scope(
|
||||
struct ivy_assembler *as, enum ivy_assembler_scope_type type,
|
||||
@@ -77,4 +79,11 @@ IVY_API enum ivy_status ivy_assembler_put_xval(
|
||||
IVY_API enum ivy_status ivy_assembler_put_instr(
|
||||
struct ivy_assembler *as, const struct ivy_instr *i);
|
||||
|
||||
IVY_API enum ivy_status ivy_assembler_put_label(
|
||||
struct ivy_assembler *as, const struct ivy_asm_token *label_name,
|
||||
size_t label_offset);
|
||||
IVY_API enum ivy_status ivy_assembler_put_label_ref(
|
||||
struct ivy_assembler *as, const struct ivy_asm_token *label_name,
|
||||
size_t ref_offset);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user