From d2ae46db53df8b5cbdff682451e58e4c3e64b4db Mon Sep 17 00:00:00 2001 From: Michael Schmidt Date: Wed, 13 Dec 2017 17:40:35 +0100 Subject: Export configured architecture to JSON (#38) The architecture which was configured is now exported in a new top-level json field. --- arm/AsmToJSON.ml | 6 +++--- driver/Driver.ml | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/arm/AsmToJSON.ml b/arm/AsmToJSON.ml index 45433064..2627f29b 100644 --- a/arm/AsmToJSON.ml +++ b/arm/AsmToJSON.ml @@ -68,7 +68,7 @@ let pp_single_param_reg pp reg = let pp_shiftreg pp (r, op, n) = pp_jobject_start pp; - pp_jmember ~first:true pp "Register" pp_ireg r; + pp_jmember ~first:true pp "Register" pp_jstring (TargetPrinter.int_reg_name r); pp_jmember pp "Op" pp_jstring op; pp_jmember pp "Amount" pp_z n; pp_jobject_end pp @@ -260,7 +260,7 @@ let pp_instructions pp ic = | Prsc(r1, r2, so) -> instruction pp "Prsc" [Ireg r1; Ireg r2; Shift so] | Psbc(r1, r2, so) -> instruction pp "Psbc" [Ireg r1; Ireg r2; Shift so] | Psbfx(r1, r2, lsb, sz) -> instruction pp "Psbfx" [Ireg r1; Ireg r2; Long lsb; Long sz] - | Psdiv -> instruction pp "Psdiv" [Ireg IR0; Ireg IR1] + | Psdiv -> instruction pp "Psdiv" [Ireg IR0; Ireg IR0; Ireg IR1] | Psmull(r1, r2, r3, r4) -> instruction pp "Psmull" [Ireg r1; Ireg r2; Ireg r3; Ireg r4] | Pstr(r1, r2, so) | Pstr_a(r1, r2, so) -> instruction pp "Pstr" [Ireg r1; Ireg r2; Shift so] | Pstr_p(r1, r2, so) -> instruction pp "Pstr_p" [Ireg r1; Ireg r2; Shift so] @@ -270,7 +270,7 @@ let pp_instructions pp ic = | Pstrh_p(r1, r2, so) -> instruction pp "Pstrh_p" [Ireg r1; Ireg r2; Shift so] | Psub(r1, r2, so) -> instruction pp "Psub" [Ireg r1; Ireg r2; Shift so] | Psubs(r1, r2, so) -> instruction pp "Psubs" [Ireg r1; Ireg r2; Shift so] - | Pudiv -> instruction pp "Pudiv" [Ireg IR0; Ireg IR1] + | Pudiv -> instruction pp "Pudiv" [Ireg IR0; Ireg IR0; Ireg IR1] | Pumull(r1, r2, r3, r4) -> instruction pp "Pumull" [Ireg r1; Ireg r2; Ireg r3; Ireg r4] (* Fixup instructions for calling conventions *) | Pfcpy_fs(r1, r2) -> instruction pp "Pfcpy_fs" [SFreg r1; SPreg r2] diff --git a/driver/Driver.ml b/driver/Driver.ml index 0e01dbb5..21fb0db3 100644 --- a/driver/Driver.ml +++ b/driver/Driver.ml @@ -50,6 +50,12 @@ let dump_jasm asm sourcename destfile = pp_jobject_end pp in pp_jobject_start pp; pp_jmember ~first:true pp "Version" pp_jstring jdump_magic_number; + let json_arch = + match Configuration.arch, !Clflags.option_mthumb with + | "arm", false -> "arm-arm" + | "arm", true -> "arm-thumb" + | a, _ -> a in + pp_jmember pp "Architecture" pp_jstring json_arch; pp_jmember pp "System" pp_jstring Configuration.system; pp_jmember pp "Compile Info" dump_compile_info (); pp_jmember pp "Compilation Unit" pp_jstring sourcename; -- cgit