move strings to .data section

This commit is contained in:
danyabeerzun 2020-02-07 19:41:35 +03:00
parent f978a8e830
commit ab5d8bfd30

View file

@ -669,12 +669,18 @@ let genasm cmd prog =
let globals = let globals =
List.map (fun s -> Meta (Printf.sprintf "\t.globl\t%s" s)) env#publics List.map (fun s -> Meta (Printf.sprintf "\t.globl\t%s" s)) env#publics
in in
let data = [Meta "\t.data"; let data = [Meta "\t.data"] @
Meta "_init:\t.int 0"; (List.map (fun (s, v) -> Meta (Printf.sprintf "%s:\t.string\t\"%s\"" v s)) env#strings) @
[Meta "_init:\t.int 0";
Meta "\t.section custom_data,\"aw\",@progbits"; Meta "\t.section custom_data,\"aw\",@progbits";
Meta (Printf.sprintf "filler:\t.fill\t%d, 4, 1" env#max_locals_size)] @ Meta (Printf.sprintf "filler:\t.fill\t%d, 4, 1" env#max_locals_size)] @
(List.map (fun s -> Meta (Printf.sprintf "%s:\t.int\t1" s)) env#globals) @ (List.map (fun s -> Meta (Printf.sprintf "%s:\t.int\t1" s)) env#globals)
(List.map (fun (s, v) -> Meta (Printf.sprintf "%s:\t.string\t\"%s\"" v s)) env#strings) (* let data = [Meta "\t.data";
* Meta "_init:\t.int 0";
* Meta "\t.section custom_data,\"aw\",@progbits";
* Meta (Printf.sprintf "filler:\t.fill\t%d, 4, 1" env#max_locals_size)] @
* (List.map (fun s -> Meta (Printf.sprintf "%s:\t.int\t1" s)) env#globals) @
* (List.map (fun (s, v) -> Meta (Printf.sprintf "%s:\t.string\t\"%s\"" v s)) env#strings) *)
in in
let asm = Buffer.create 1024 in let asm = Buffer.create 1024 in
List.iter List.iter