From 8c10b6dcbddc58b488e399690e8ddefb4bafb816 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 5 Apr 2017 00:19:06 -0400 Subject: ability to use zig as an assembler see #243 --- src/codegen.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/codegen.cpp') diff --git a/src/codegen.cpp b/src/codegen.cpp index 83b7e01614..28a8243aca 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -4535,6 +4535,22 @@ void codegen_add_root_code(CodeGen *g, Buf *src_dir, Buf *src_basename, Buf *sou do_code_gen(g); } +void codegen_add_root_assembly(CodeGen *g, Buf *src_dir, Buf *src_basename, Buf *source_code) { + Buf source_path = BUF_INIT; + os_path_join(src_dir, src_basename, &source_path); + + init(g, &source_path); + + assert(g->root_out_name); + assert(g->out_type != OutTypeUnknown); + + buf_init_from_str(&g->global_asm, ".intel_syntax noprefix\n"); + buf_append_buf(&g->global_asm, source_code); + + do_code_gen(g); +} + + static const char *c_int_type_names[] = { [CIntTypeShort] = "short", [CIntTypeUShort] = "unsigned short", -- cgit v1.2.3