diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-05-02 09:45:55 +0200 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-05-02 09:45:55 +0200 |
commit | 8058d6a89fe0cfda16f685ef5a96793b95cc4156 (patch) | |
tree | be0be3400453ad64313432b0c580234114788846 /mppa_k1c/TargetPrinter.ml | |
parent | 7962808d192f2b4d88e8ff1135e3f6e75cf8dea9 (diff) | |
parent | 98206d8c97cf9ecdff8d892ecafb9a9fa8455f74 (diff) | |
download | compcert-kvx-8058d6a89fe0cfda16f685ef5a96793b95cc4156.tar.gz compcert-kvx-8058d6a89fe0cfda16f685ef5a96793b95cc4156.zip |
Merge branch 'mppa-xsaddr' into mppa-work
Diffstat (limited to 'mppa_k1c/TargetPrinter.ml')
-rw-r--r-- | mppa_k1c/TargetPrinter.ml | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/mppa_k1c/TargetPrinter.ml b/mppa_k1c/TargetPrinter.ml index 506faa1c..62b02f58 100644 --- a/mppa_k1c/TargetPrinter.ml +++ b/mppa_k1c/TargetPrinter.ml @@ -166,7 +166,11 @@ module Target (*: TARGET*) = let addressing oc = function | AOff ofs -> offset oc ofs - | AReg ro -> ireg oc ro + | AReg ro | ARegXS ro -> ireg oc ro + + let xscale oc = function + | ARegXS _ -> fprintf oc ".xs" + | _ -> () let icond_name = let open Asmvliw in function | ITne | ITneu -> "ne" @@ -342,26 +346,26 @@ module Target (*: TARGET*) = (* Load/Store instructions *) | Plb(rd, ra, adr) -> - fprintf oc " lbs %a = %a[%a]\n" ireg rd addressing adr ireg ra + fprintf oc " lbs%a %a = %a[%a]\n" xscale adr ireg rd addressing adr ireg ra | Plbu(rd, ra, adr) -> - fprintf oc " lbz %a = %a[%a]\n" ireg rd addressing adr ireg ra + fprintf oc " lbz%a %a = %a[%a]\n" xscale adr ireg rd addressing adr ireg ra | Plh(rd, ra, adr) -> - fprintf oc " lhs %a = %a[%a]\n" ireg rd addressing adr ireg ra + fprintf oc " lhs%a %a = %a[%a]\n" xscale adr ireg rd addressing adr ireg ra | Plhu(rd, ra, adr) -> - fprintf oc " lhz %a = %a[%a]\n" ireg rd addressing adr ireg ra + fprintf oc " lhz%a %a = %a[%a]\n" xscale adr ireg rd addressing adr ireg ra | Plw(rd, ra, adr) | Plw_a(rd, ra, adr) | Pfls(rd, ra, adr) -> - fprintf oc " lws %a = %a[%a]\n" ireg rd addressing adr ireg ra + fprintf oc " lws%a %a = %a[%a]\n" xscale adr ireg rd addressing adr ireg ra | Pld(rd, ra, adr) | Pfld(rd, ra, adr) | Pld_a(rd, ra, adr) -> assert Archi.ptr64; - fprintf oc " ld %a = %a[%a]\n" ireg rd addressing adr ireg ra + fprintf oc " ld%a %a = %a[%a]\n" xscale adr ireg rd addressing adr ireg ra | Psb(rd, ra, adr) -> - fprintf oc " sb %a[%a] = %a\n" addressing adr ireg ra ireg rd + fprintf oc " sb%a %a[%a] = %a\n" xscale adr addressing adr ireg ra ireg rd | Psh(rd, ra, adr) -> - fprintf oc " sh %a[%a] = %a\n" addressing adr ireg ra ireg rd + fprintf oc " sh%a %a[%a] = %a\n" xscale adr addressing adr ireg ra ireg rd | Psw(rd, ra, adr) | Psw_a(rd, ra, adr) | Pfss(rd, ra, adr) -> - fprintf oc " sw %a[%a] = %a\n" addressing adr ireg ra ireg rd + fprintf oc " sw%a %a[%a] = %a\n" xscale adr addressing adr ireg ra ireg rd | Psd(rd, ra, adr) | Psd_a(rd, ra, adr) | Pfsd(rd, ra, adr) -> assert Archi.ptr64; - fprintf oc " sd %a[%a] = %a\n" addressing adr ireg ra ireg rd + fprintf oc " sd%a %a[%a] = %a\n" xscale adr addressing adr ireg ra ireg rd (* Arith R instructions *) |