aboutsummaryrefslogtreecommitdiffstats
path: root/powerpc/AsmToJSON.ml
diff options
context:
space:
mode:
authorBernhard Schommer <bernhardschommer@gmail.com>2015-10-29 18:38:48 +0100
committerBernhard Schommer <bernhardschommer@gmail.com>2015-10-29 18:38:48 +0100
commitfe73ed58ef80da7c53c124302a608948fb190229 (patch)
tree517b7867c30bf9cf8b9363c92922ded61c46c252 /powerpc/AsmToJSON.ml
parent3e08c54778b590c5965966c9f4a1e10467c5a7f1 (diff)
downloadcompcert-kvx-fe73ed58ef80da7c53c124302a608948fb190229.tar.gz
compcert-kvx-fe73ed58ef80da7c53c124302a608948fb190229.zip
Few simple rewrite for the AsmToJSON printer.
In a first step all the print commands for the names are replaced by a more safe variant that avoids missing \". Bug 17328
Diffstat (limited to 'powerpc/AsmToJSON.ml')
-rw-r--r--powerpc/AsmToJSON.ml302
1 files changed, 147 insertions, 155 deletions
diff --git a/powerpc/AsmToJSON.ml b/powerpc/AsmToJSON.ml
index fa8adfe2..21473f6f 100644
--- a/powerpc/AsmToJSON.ml
+++ b/powerpc/AsmToJSON.ml
@@ -20,6 +20,8 @@ open Camlcoq
open Printf
open Sections
+let p_jstring oc s = fprintf oc "\"%s\"" s
+
let p_ireg oc = function
| GPR0 -> fprintf oc "{\"Register\":\"r0\"}"
| GPR1 -> fprintf oc "{\"Register\":\"r1\"}"
@@ -144,181 +146,171 @@ let p_list_cont elem oc l =
let p_instruction oc ic =
output_string oc "\n";
+ let inst_name oc s = fprintf oc"%a:%a" p_jstring "Instruction Name" p_jstring s in
match ic with
- | Padd (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Padd\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Paddc (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Paddc\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Padde (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Padde\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Paddi (ir1,ir2,c) -> fprintf oc "{\"Instruction Name\":\"Paddi\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_constant c
- | Paddic (ir1,ir2,c) -> fprintf oc "{\"Instruction Name\":\"Paddic\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_constant c
- | Paddis (ir1,ir2,c) -> fprintf oc "{\"Instruction Name\":\"Paddis\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_constant c
- | Paddze (ir1,ir2) -> fprintf oc "{\"Instruction Name\":\"Paddze\",\"Args\":[%a,%a]}" p_ireg ir1 p_ireg ir2
+ | Padd (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Padd" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Paddc (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Paddc" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Padde (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Padde" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Paddi (ir1,ir2,c) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Paddi" p_ireg ir1 p_ireg ir2 p_constant c
+ | Paddic (ir1,ir2,c) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Paddic" p_ireg ir1 p_ireg ir2 p_constant c
+ | Paddis (ir1,ir2,c) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Paddis" p_ireg ir1 p_ireg ir2 p_constant c
+ | Paddze (ir1,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Paddze" p_ireg ir1 p_ireg ir2
| Pallocframe (c,i,r) -> assert false(* Should not occur *)
- | Pand_ (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Pand_\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Pandc (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Pandc\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Pandi_ (ir1,ir2,c) -> fprintf oc "{\"Instruction Name\":\"Pandi_\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_constant c
- | Pandis_ (ir1,ir2,c) -> fprintf oc "{\"Instruction Name\":\"Pandis_\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_constant c
- | Pb l -> fprintf oc "{\"Instruction Name\":\"Pb\",\"Args\":[%a]}" p_label l
- | Pbctr s -> fprintf oc "{\"Instruction Name\":\"Pbctr\",\"Args\":[]}"
- | Pbctrl s -> fprintf oc "{\"Instruction Name\":\"Pbctrl\",\"Args\":[]}"
- | Pbdnz l -> fprintf oc "{\"Instruction Name\":\"Pbdnz\",\"Args\":[%a]}" p_label l
- | Pbf (c,l) -> fprintf oc "{\"Instruction Name\":\"Pbf\",\"Args\":[%a,%a]}" p_crbit c p_label l
- | Pbl (i,s) -> fprintf oc "{\"Instruction Name\":\"Pbl\",\"Args\":[%a]}" p_atom_constant i
- | Pbs (i,s) -> fprintf oc "{\"Instruction Name\":\"Pbs\",\"Args\":[%a]}" p_atom_constant i
- | Pblr -> fprintf oc "{\"Instruction Name\":\"Pblr\",\"Args\":[]}"
- | Pbt (cr,l) -> fprintf oc "{\"Instruction Name\":\"Pbt\",\"Args\":[%a,%a]}" p_crbit cr p_label l
- | Pbtbl (i,lb) -> fprintf oc "{\"Instruction Name\":\"Pbtl\",\"Args\":[%a%a]}" p_ireg i (p_list_cont p_label) lb
- | Pcmpb (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Pcmpb\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Pcmplw (ir1,ir2) -> fprintf oc "{\"Instruction Name\":\"Pcmplw\",\"Args\":[%a,%a]}" p_ireg ir1 p_ireg ir2
- | Pcmplwi (ir,c) -> fprintf oc "{\"Instruction Name\":\"Pcmplwi\",\"Args\":[%a,%a]}" p_ireg ir p_constant c
- | Pcmpw (ir1,ir2) -> fprintf oc "{\"Instruction Name\":\"Pcmpw\",\"Args\":[%a,%a]}" p_ireg ir1 p_ireg ir2
- | Pcmpwi (ir,c) -> fprintf oc "{\"Instruction Name\":\"Pcmpwi\",\"Args\":[%a,%a]}" p_ireg ir p_constant c
- | Pcntlzw (ir1,ir2) -> fprintf oc "{\"Instruction Name\":\"Pcntlzw\",\"Args\":[%a,%a]}" p_ireg ir1 p_ireg ir2
- | Pcreqv (cr1,cr2,cr3) -> fprintf oc "{\"Instruction Name\":\"Pcreqv\",\"Args\":[%a,%a,%a]}" p_crbit cr1 p_crbit cr2 p_crbit cr3
- | Pcror (cr1,cr2,cr3) -> fprintf oc "{\"Instruction Name\":\"Pcror\",\"Args\":[%a,%a,%a]}" p_crbit cr1 p_crbit cr2 p_crbit cr3
- | Pcrxor (cr1,cr2,cr3) -> fprintf oc "{\"Instruction Name\":\"Pcrxor\",\"Args\":[%a,%a,%a]}" p_crbit cr1 p_crbit cr2 p_crbit cr3
- | Pdcbf (ir1,ir2) -> fprintf oc "{\"Instruction Name\":\"Pdcbf\",\"Args\":[%a,%a]}" p_ireg ir1 p_ireg ir2
- | Pdcbi (ir1,ir2) -> fprintf oc "{\"Instruction Name\":\"Pdcbi\",\"Args\":[%a,%a]}" p_ireg ir1 p_ireg ir2
- | Pdcbt (n,ir1,ir2) -> fprintf oc "{\"Instruction Name\":\"Pdcbt\",\"Args\":[%a,%a,%a]}" p_int_constant n p_ireg ir1 p_ireg ir2
- | Pdcbtst (n,ir1,ir2) -> fprintf oc "{\"Instruction Name\":\"Pdcbtst\",\"Args\":[%a,%a,%a]}" p_int_constant n p_ireg ir1 p_ireg ir2
- | Pdcbtls (n,ir1,ir2) -> fprintf oc "{\"Instruction Name\":\"Pdcbtls\",\"Args\":[%a,%a,%a]}" p_int_constant n p_ireg ir1 p_ireg ir2
- | Pdcbz (ir1,ir2) -> fprintf oc "{\"Instruction Name\":\"Pdcbz\",\"Args\":[%a,%a]}" p_ireg ir1 p_ireg ir2
- | Pdivw (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Pdivw\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Pdivwu (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Pdivwu\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Peieio -> fprintf oc "{\"Instruction Name\":\"Peieio,\"Args\":[]}"
- | Peqv (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Peqv\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Pextsb (ir1,ir2) -> fprintf oc "{\"Instruction Name\":\"Pextsb\",\"Args\":[%a,%a]}" p_ireg ir1 p_ireg ir2
- | Pextsh (ir1,ir2) -> fprintf oc "{\"Instruction Name\":\"Pextsh\",\"Args\":[%a,%a]}" p_ireg ir1 p_ireg ir2
- | Pextsw (ir1,ir2) -> fprintf oc "{\"Instruction Name\":\"Pextsw\",\"Args\":[%a,%a]}" p_ireg ir1 p_ireg ir2
+ | Pand_ (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pand_" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Pandc (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pandc" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Pandi_ (ir1,ir2,c) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pandi_" p_ireg ir1 p_ireg ir2 p_constant c
+ | Pandis_ (ir1,ir2,c) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pandis_" p_ireg ir1 p_ireg ir2 p_constant c
+ | Pb l -> fprintf oc "{%a,\"Args\":[%a]}" inst_name "Pb" p_label l
+ | Pbctr s -> fprintf oc "{%a,\"Args\":[]}" inst_name "Pbctr"
+ | Pbctrl s -> fprintf oc "{%a,\"Args\":[]}" inst_name "Pbctrl"
+ | Pbdnz l -> fprintf oc "{%a,\"Args\":[%a]}" inst_name "Pbdnz" p_label l
+ | Pbf (c,l) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pbf" p_crbit c p_label l
+ | Pbl (i,s) -> fprintf oc "{%a,\"Args\":[%a]}" inst_name "Pbl" p_atom_constant i
+ | Pbs (i,s) -> fprintf oc "{%a,\"Args\":[%a]}" inst_name "Pbs" p_atom_constant i
+ | Pblr -> fprintf oc "{%a,\"Args\":[]}" inst_name "Pblr"
+ | Pbt (cr,l) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pbt" p_crbit cr p_label l
+ | Pbtbl (i,lb) -> fprintf oc "{%a,\"Args\":[%a%a]}" inst_name "Pbtl" p_ireg i (p_list_cont p_label) lb
+ | Pcmpb (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pcmpb" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Pcmplw (ir1,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pcmplw" p_ireg ir1 p_ireg ir2
+ | Pcmplwi (ir,c) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pcmplwi" p_ireg ir p_constant c
+ | Pcmpw (ir1,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pcmpw" p_ireg ir1 p_ireg ir2
+ | Pcmpwi (ir,c) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pcmpwi" p_ireg ir p_constant c
+ | Pcntlzw (ir1,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pcntlzw" p_ireg ir1 p_ireg ir2
+ | Pcreqv (cr1,cr2,cr3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pcreqv" p_crbit cr1 p_crbit cr2 p_crbit cr3
+ | Pcror (cr1,cr2,cr3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pcror" p_crbit cr1 p_crbit cr2 p_crbit cr3
+ | Pcrxor (cr1,cr2,cr3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pcrxor" p_crbit cr1 p_crbit cr2 p_crbit cr3
+ | Pdcbf (ir1,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pdcbf" p_ireg ir1 p_ireg ir2
+ | Pdcbi (ir1,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pdcbi" p_ireg ir1 p_ireg ir2
+ | Pdcbt (n,ir1,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pdcbt" p_int_constant n p_ireg ir1 p_ireg ir2
+ | Pdcbtst (n,ir1,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pdcbtst" p_int_constant n p_ireg ir1 p_ireg ir2
+ | Pdcbtls (n,ir1,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pdcbtls" p_int_constant n p_ireg ir1 p_ireg ir2
+ | Pdcbz (ir1,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pdcbz" p_ireg ir1 p_ireg ir2
+ | Pdivw (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pdivw" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Pdivwu (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pdivwu" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Peieio -> fprintf oc "{%a,\"Args\":[]}" inst_name "Peieio"
+ | Peqv (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Peqv" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Pextsb (ir1,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pextsb" p_ireg ir1 p_ireg ir2
+ | Pextsh (ir1,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pextsh" p_ireg ir1 p_ireg ir2
+ | Pextsw (ir1,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pextsw" p_ireg ir1 p_ireg ir2
| Pfreeframe (c,i) -> assert false (* Should not occur *)
| Pfabs (fr1,fr2)
- | Pfabss (fr1,fr2) -> fprintf oc "{\"Instruction Name\":\"Pfabs\",\"Args\":[%a,%a]}" p_freg fr1 p_freg fr2
- | Pfadd (fr1,fr2,fr3) -> fprintf oc "{\"Instruction Name\":\"Pfadd\",\"Args\":[%a,%a,%a]}" p_freg fr1 p_freg fr2 p_freg fr3
- | Pfadds (fr1,fr2,fr3) -> fprintf oc "{\"Instruction Name\":\"Pfadds\",\"Args\":[%a,%a,%a]}" p_freg fr1 p_freg fr2 p_freg fr3
- | Pfcmpu (fr1,fr2) -> fprintf oc "{\"Instruction Name\":\"Pfcmpu\",\"Args\":[%a,%a]}" p_freg fr1 p_freg fr2
+ | Pfabss (fr1,fr2) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pfabs" p_freg fr1 p_freg fr2
+ | Pfadd (fr1,fr2,fr3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pfadd" p_freg fr1 p_freg fr2 p_freg fr3
+ | Pfadds (fr1,fr2,fr3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pfadds" p_freg fr1 p_freg fr2 p_freg fr3
+ | Pfcmpu (fr1,fr2) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pfcmpu" p_freg fr1 p_freg fr2
| Pfcfi (ir,fr) -> assert false (* Should not occur *)
- | Pfcfid (fr1,fr2) -> fprintf oc "{\"Instruction Name\":\"Pfcfid\",\"Args\":[%a,%a]}" p_freg fr1 p_freg fr2
+ | Pfcfid (fr1,fr2) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pfcfid" p_freg fr1 p_freg fr2
| Pfcfiu (ir,fr) -> assert false (* Should not occur *)
| Pfcti (ir,fr) -> assert false (* Should not occur *)
| Pfctiu (ir,fr) -> assert false (* Should not occur *)
- | Pfctidz (fr1,fr2) -> fprintf oc "{\"Instruction Name\":\"Pfctidz\",\"Args\":[%a,%a]}" p_freg fr1 p_freg fr2
- | Pfctiw (fr1,fr2) -> fprintf oc "{\"Instruction Name\":\"Pfctiw\",\"Args\":[%a,%a]}" p_freg fr1 p_freg fr2
- | Pfctiwz (fr1,fr2) -> fprintf oc "{\"Instruction Name\":\"Pfctiwz\",\"Args\":[%a,%a]}" p_freg fr1 p_freg fr2
- | Pfdiv (fr1,fr2,fr3) -> fprintf oc "{\"Instruction Name\":\"Pfdiv\",\"Args\":[%a,%a,%a]}" p_freg fr1 p_freg fr2 p_freg fr3
- | Pfdivs (fr1,fr2,fr3) -> fprintf oc "{\"Instruction Name\":\"Pfdivs\",\"Args\":[%a,%a,%a]}" p_freg fr1 p_freg fr2 p_freg fr3
+ | Pfctidz (fr1,fr2) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pfctidz" p_freg fr1 p_freg fr2
+ | Pfctiw (fr1,fr2) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pfctiw" p_freg fr1 p_freg fr2
+ | Pfctiwz (fr1,fr2) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pfctiwz" p_freg fr1 p_freg fr2
+ | Pfdiv (fr1,fr2,fr3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pfdiv" p_freg fr1 p_freg fr2 p_freg fr3
+ | Pfdivs (fr1,fr2,fr3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pfdivs" p_freg fr1 p_freg fr2 p_freg fr3
| Pfmake (fr,ir1,ir2) -> assert false (* Should not occur *)
- | Pfmr (fr1,fr2) -> fprintf oc "{\"Instruction Name\":\"Pfmr\",\"Args\":[%a,%a]}" p_freg fr1 p_freg fr2
- | Pfmul (fr1,fr2,fr3) -> fprintf oc "{\"Instruction Name\":\"Pfmul\",\"Args\":[%a,%a,%a]}" p_freg fr1 p_freg fr2 p_freg fr3
- | Pfmuls(fr1,fr2,fr3) -> fprintf oc "{\"Instruction Name\":\"Pfmuls\",\"Args\":[%a,%a,%a]}" p_freg fr1 p_freg fr2 p_freg fr3
+ | Pfmr (fr1,fr2) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pfmr" p_freg fr1 p_freg fr2
+ | Pfmul (fr1,fr2,fr3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pfmul" p_freg fr1 p_freg fr2 p_freg fr3
+ | Pfmuls(fr1,fr2,fr3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pfmuls" p_freg fr1 p_freg fr2 p_freg fr3
| Pfneg (fr1,fr2)
- | Pfnegs (fr1,fr2) -> fprintf oc "{\"Instruction Name\":\"Pfneg\",\"Args\":[%a,%a]}" p_freg fr1 p_freg fr2
- | Pfrsp (fr1,fr2) -> fprintf oc "{\"Instruction Name\":\"Pfrsp\",\"Args\":[%a,%a]}" p_freg fr1 p_freg fr2
+ | Pfnegs (fr1,fr2) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pfneg" p_freg fr1 p_freg fr2
+ | Pfrsp (fr1,fr2) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pfrsp" p_freg fr1 p_freg fr2
| Pfxdp (fr1,fr2) -> assert false (* Should not occur *)
- | Pfsub (fr1,fr2,fr3) -> fprintf oc "{\"Instruction Name\":\"Pfsub\",\"Args\":[%a,%a,%a]}" p_freg fr1 p_freg fr2 p_freg fr3
- | Pfsubs (fr1,fr2,fr3) -> fprintf oc "{\"Instruction Name\":\"Pfsubs\",\"Args\":[%a,%a,%a]}" p_freg fr1 p_freg fr2 p_freg fr3
- | Pfmadd (fr1,fr2,fr3,fr4) -> fprintf oc "{\"Instruction Name\":\"Pfmadd\",\"Args\":[%a,%a,%a,%a]}" p_freg fr1 p_freg fr2 p_freg fr3 p_freg fr4
- | Pfmsub (fr1,fr2,fr3,fr4) -> fprintf oc "{\"Instruction Name\":\"Pfmsub\",\"Args\":[%a,%a,%a,%a]}" p_freg fr1 p_freg fr2 p_freg fr3 p_freg fr4
- | Pfnmadd (fr1,fr2,fr3,fr4) -> fprintf oc "{\"Instruction Name\":\"Pfnmadd\",\"Args\":[%a,%a,%a,%a]}" p_freg fr1 p_freg fr2 p_freg fr3 p_freg fr4
- | Pfnmsub (fr1,fr2,fr3,fr4) -> fprintf oc "{\"Instruction Name\":\"Pfnmsub\",\"Args\":[%a,%a,%a,%a]}" p_freg fr1 p_freg fr2 p_freg fr3 p_freg fr4
- | Pfsqrt (fr1,fr2) -> fprintf oc "{\"Instruction Name\":\"Pfsqrt\",\"Args\":[%a,%a]}" p_freg fr1 p_freg fr2
- | Pfrsqrte (fr1,fr2) -> fprintf oc "{\"Instruction Name\":\"Pfrsqrte\",\"Args\":[%a,%a]}" p_freg fr1 p_freg fr2
- | Pfres (fr1,fr2) -> fprintf oc "{\"Instruction Name\":\"Pfres\",\"Args\":[%a,%a]}" p_freg fr1 p_freg fr2
- | Pfsel (fr1,fr2,fr3,fr4) -> fprintf oc "{\"Instruction Name\":\"Pfsel\",\"Args\":[%a,%a,%a,%a]}" p_freg fr1 p_freg fr2 p_freg fr3 p_freg fr4
- | Pisel (ir1,ir2,ir3,cr) -> fprintf oc "{\"Instruction Name\":\"Pisel\",\"Args\":[%a,%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3 p_crbit cr
- | Picbi (ir1,ir2) -> fprintf oc "{\"Instruction Name\":\"Picbi\",\"Args\":[%a,%a]}" p_ireg ir1 p_ireg ir2
- | Picbtls (n,ir1,ir2) -> fprintf oc "{\"Instruction Name\":\"Picbtls\",\"Args\":[%a,%a,%a]}" p_int_constant n p_ireg ir1 p_ireg ir2
- | Pisync -> fprintf oc "{\"Instruction Name\":\"Pisync\",\"Args\":[]}"
- | Plwsync -> fprintf oc "{\"Instruction Name\":\"Plwsync\",\"Args\":[]}"
- | Plbz (ir1,c,ir2) -> fprintf oc "{\"Instruction Name\":\"Plbz\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_constant c p_ireg ir2
- | Plbzx (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Plbzx\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Pfsub (fr1,fr2,fr3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pfsub" p_freg fr1 p_freg fr2 p_freg fr3
+ | Pfsubs (fr1,fr2,fr3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pfsubs" p_freg fr1 p_freg fr2 p_freg fr3
+ | Pfmadd (fr1,fr2,fr3,fr4) -> fprintf oc "{%a,\"Args\":[%a,%a,%a,%a]}" inst_name "Pfmadd" p_freg fr1 p_freg fr2 p_freg fr3 p_freg fr4
+ | Pfmsub (fr1,fr2,fr3,fr4) -> fprintf oc "{%a,\"Args\":[%a,%a,%a,%a]}" inst_name "Pfmsub" p_freg fr1 p_freg fr2 p_freg fr3 p_freg fr4
+ | Pfnmadd (fr1,fr2,fr3,fr4) -> fprintf oc "{%a,\"Args\":[%a,%a,%a,%a]}" inst_name "Pfnmadd" p_freg fr1 p_freg fr2 p_freg fr3 p_freg fr4
+ | Pfnmsub (fr1,fr2,fr3,fr4) -> fprintf oc "{%a,\"Args\":[%a,%a,%a,%a]}" inst_name "Pfnmsub" p_freg fr1 p_freg fr2 p_freg fr3 p_freg fr4
+ | Pfsqrt (fr1,fr2) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pfsqrt" p_freg fr1 p_freg fr2
+ | Pfrsqrte (fr1,fr2) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pfrsqrte" p_freg fr1 p_freg fr2
+ | Pfres (fr1,fr2) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pfres" p_freg fr1 p_freg fr2
+ | Pfsel (fr1,fr2,fr3,fr4) -> fprintf oc "{%a,\"Args\":[%a,%a,%a,%a]}" inst_name "Pfsel" p_freg fr1 p_freg fr2 p_freg fr3 p_freg fr4
+ | Pisel (ir1,ir2,ir3,cr) -> fprintf oc "{%a,\"Args\":[%a,%a,%a,%a]}" inst_name "Pisel" p_ireg ir1 p_ireg ir2 p_ireg ir3 p_crbit cr
+ | Picbi (ir1,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Picbi" p_ireg ir1 p_ireg ir2
+ | Picbtls (n,ir1,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Picbtls" p_int_constant n p_ireg ir1 p_ireg ir2
+ | Pisync -> fprintf oc "{%a,\"Args\":[]}" inst_name "Pisync"
+ | Plwsync -> fprintf oc "{%a,\"Args\":[]}" inst_name "Plwsync"
+ | Plbz (ir1,c,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Plbz" p_ireg ir1 p_constant c p_ireg ir2
+ | Plbzx (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Plbzx" p_ireg ir1 p_ireg ir2 p_ireg ir3
| Plfd (fr,c,ir)
- | Plfd_a (fr,c,ir) -> fprintf oc "{\"Instruction Name\":\"Plfd\",\"Args\":[%a,%a,%a]}" p_freg fr p_constant c p_ireg ir
+ | Plfd_a (fr,c,ir) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Plfd" p_freg fr p_constant c p_ireg ir
| Plfdx (fr,ir1,ir2)
- | Plfdx_a (fr,ir1,ir2) -> fprintf oc "{\"Instruction Name\":\"Plfdx\",\"Args\":[%a,%a,%a]}" p_freg fr p_ireg ir1 p_ireg ir2
- | Plfs (fr,c,ir) -> fprintf oc "{\"Instruction Name\":\"Plfs\",\"Args\":[%a,%a,%a]}" p_freg fr p_constant c p_ireg ir
- | Plfsx (fr,ir1,ir2) -> fprintf oc "{\"Instruction Name\":\"Plfsx\",\"Args\":[%a,%a,%a]}" p_freg fr p_ireg ir1 p_ireg ir2
- | Plha (ir1,c,ir2) -> fprintf oc "{\"Instruction Name\":\"Plha\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_constant c p_ireg ir2
- | Plhax (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Plhax\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Plhbrx (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Plhbrx\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Plhz (ir1,c,ir2) -> fprintf oc "{\"Instruction Name\":\"Plhz\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_constant c p_ireg ir2
- | Plhzx (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Plhzx\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Plfi (fr,fc) -> fprintf oc "{\"Instruction Name\":\"Plfi\",\"Args\":[%a,%a]}" p_freg fr p_float64_constant fc
- | Plfis (fr,fc) -> fprintf oc "{\"Instruction Name\":\"Plfis\",\"Args\":[%a,%a]}" p_freg fr p_float32_constant fc
- | Plwz (ir1,ic,ir2) -> fprintf oc "{\"Instruction Name\":\"Plwz\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_constant ic p_ireg ir2
- | Plwz_a (ir1,c,ir2) -> fprintf oc "{\"Instruction Name\":\"Plwz\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_constant c p_ireg ir2
- | Plwzu (ir1,c,ir2) -> fprintf oc "{\"Instruction Name\":\"Plwzu\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_constant c p_ireg ir2
+ | Plfdx_a (fr,ir1,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Plfdx" p_freg fr p_ireg ir1 p_ireg ir2
+ | Plfs (fr,c,ir) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Plfs" p_freg fr p_constant c p_ireg ir
+ | Plfsx (fr,ir1,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Plfsx" p_freg fr p_ireg ir1 p_ireg ir2
+ | Plha (ir1,c,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Plha" p_ireg ir1 p_constant c p_ireg ir2
+ | Plhax (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Plhax" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Plhbrx (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Plhbrx" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Plhz (ir1,c,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Plhz" p_ireg ir1 p_constant c p_ireg ir2
+ | Plhzx (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Plhzx" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Plfi (fr,fc) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Plfi" p_freg fr p_float64_constant fc
+ | Plfis (fr,fc) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Plfis" p_freg fr p_float32_constant fc
+ | Plwz (ir1,c,ir2)
+ | Plwz_a (ir1,c,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Plwz" p_ireg ir1 p_constant c p_ireg ir2
+ | Plwzu (ir1,c,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Plwzu" p_ireg ir1 p_constant c p_ireg ir2
| Plwzx (ir1,ir2,ir3)
- | Plwzx_a (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Plwzx\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Plwarx (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Plwarx\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Plwbrx (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Plwbrx\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Pmbar c -> fprintf oc "{\"Instruction Name\":\"Pmbar\",\"Args\":[%a]}" p_int_constant c
- | Pmfcr ir -> fprintf oc "{\"Instruction Name\":\"Pmfcr\",\"Args\":[%a]}" p_ireg ir
+ | Plwzx_a (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Plwzx" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Plwarx (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Plwarx" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Plwbrx (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Plwbrx" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Pmbar c -> fprintf oc "{%a,\"Args\":[%a]}" inst_name "Pmbar" p_int_constant c
+ | Pmfcr ir -> fprintf oc "{%a,\"Args\":[%a]}" inst_name "Pmfcr" p_ireg ir
| Pmfcrbit (ir,crb) -> assert false (* Should not occur *)
- | Pmflr ir -> fprintf oc "{\"Instruction Name\":\"Pmflr\",\"Args\":[%a]}" p_ireg ir
- | Pmr (ir1,ir2) -> fprintf oc "{\"Instruction Name\":\"Pmr\",\"Args\":[%a,%a]}" p_ireg ir1 p_ireg ir2
- | Pmtctr ir -> fprintf oc "{\"Instruction Name\":\"Pmtctr\",\"Args\":[%a]}" p_ireg ir
- | Pmtlr ir -> fprintf oc "{\"Instruction Name\":\"Pmtlr\",\"Args\":[%a]}" p_ireg ir
- | Pmfspr(ir, n) -> fprintf oc "{\"Instruction Name\":\"Pmfspr\",\"Args\":[%a,%a]}" p_ireg ir p_int_constant n
- | Pmtspr(n, ir) -> fprintf oc "{\"Instruction Name\":\"Pmtspr\",\"Args\":[%a,%a]}" p_int_constant n p_ireg ir
- | Pmulli (ir1,ir2,c) -> fprintf oc "{\"Instruction Name\":\"Pmulli\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_constant c
- | Pmullw (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Pmullw\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Pmulhw (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Pmulhw\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Pmulhwu (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Pmulhwu\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Pnand (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Pnand\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Pnor (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Pnor\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Por (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Por\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Porc (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Porc\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Pori (ir1,ir2,c) -> fprintf oc "{\"Instruction Name\":\"Pori\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_constant c
- | Poris (ir1,ir2,c) -> fprintf oc "{\"Instruction Name\":\"Poris\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_constant c
- | Prldicl (ir1,ir2,ic1,ic2) -> fprintf oc "{\"Instruction Name\":\"Prldicl\",\"Args\":[%a,%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_int_constant ic1 p_int_constant ic2
- | Prlwinm (ir1,ir2,ic1,ic2) -> fprintf oc "{\"Instruction Name\":\"Prlwinm\",\"Args\":[%a,%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_int_constant ic1 p_int_constant ic2
- | Prlwimi (ir1,ir2,ic1,ic2) -> fprintf oc "{\"Instruction Name\":\"Prlwimi\",\"Args\":[%a,%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_int_constant ic1 p_int_constant ic2
- | Pslw (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Pslw\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Psraw (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Psraw\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Psrawi (ir1,ir2,ic) -> fprintf oc "{\"Instruction Name\":\"Psrawi\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_int_constant ic
- | Psrw (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Psrw\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Pstb (ir1,c,ir2) -> fprintf oc "{\"Instruction Name\":\"Pstb\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_constant c p_ireg ir2
- | Pstbx (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Pstbx\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Pstdu (ir1,c,ir2) -> fprintf oc "{\"Instruction Name\":\"Pstdu\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_constant c p_ireg ir2
+ | Pmflr ir -> fprintf oc "{%a,\"Args\":[%a]}" inst_name "Pmflr" p_ireg ir
+ | Pmr (ir1,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pmr" p_ireg ir1 p_ireg ir2
+ | Pmtctr ir -> fprintf oc "{%a,\"Args\":[%a]}" inst_name "Pmtctr" p_ireg ir
+ | Pmtlr ir -> fprintf oc "{%a,\"Args\":[%a]}" inst_name "Pmtlr" p_ireg ir
+ | Pmfspr(ir, n) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pmfspr" p_ireg ir p_int_constant n
+ | Pmtspr(n, ir) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Pmtspr" p_int_constant n p_ireg ir
+ | Pmulli (ir1,ir2,c) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pmulli" p_ireg ir1 p_ireg ir2 p_constant c
+ | Pmullw (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pmullw" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Pmulhw (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pmulhw" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Pmulhwu (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pmulhwu" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Pnand (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pnand" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Pnor (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pnor" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Por (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Por" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Porc (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Porc" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Pori (ir1,ir2,c) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pori" p_ireg ir1 p_ireg ir2 p_constant c
+ | Poris (ir1,ir2,c) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Poris" p_ireg ir1 p_ireg ir2 p_constant c
+ | Prldicl (ir1,ir2,ic1,ic2) -> fprintf oc "{%a,\"Args\":[%a,%a,%a,%a]}" inst_name "Prldicl" p_ireg ir1 p_ireg ir2 p_int_constant ic1 p_int_constant ic2
+ | Prlwinm (ir1,ir2,ic1,ic2) -> fprintf oc "{%a,\"Args\":[%a,%a,%a,%a]}" inst_name "Prlwinm" p_ireg ir1 p_ireg ir2 p_int_constant ic1 p_int_constant ic2
+ | Prlwimi (ir1,ir2,ic1,ic2) -> fprintf oc "{%a,\"Args\":[%a,%a,%a,%a]}" inst_name "Prlwimi" p_ireg ir1 p_ireg ir2 p_int_constant ic1 p_int_constant ic2
+ | Pslw (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pslw" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Psraw (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Psraw" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Psrawi (ir1,ir2,ic) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Psrawi" p_ireg ir1 p_ireg ir2 p_int_constant ic
+ | Psrw (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Psrw" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Pstb (ir1,c,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pstb" p_ireg ir1 p_constant c p_ireg ir2
+ | Pstbx (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pstbx" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Pstdu (ir1,c,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pstdu" p_ireg ir1 p_constant c p_ireg ir2
| Pstfd (fr,c,ir)
- | Pstfd_a (fr,c,ir) -> fprintf oc "{\"Instruction Name\":\"Pstfd\",\"Args\":[%a,%a,%a]}" p_freg fr p_constant c p_ireg ir
- | Pstfdu (fr,c,ir) -> fprintf oc "{\"Instruction Name\":\"Pstfdu\",\"Args\":[%a,%a,%a]}" p_freg fr p_constant c p_ireg ir
+ | Pstfd_a (fr,c,ir) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pstfd" p_freg fr p_constant c p_ireg ir
+ | Pstfdu (fr,c,ir) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pstfdu" p_freg fr p_constant c p_ireg ir
| Pstfdx (fr,ir1,ir2)
- | Pstfdx_a (fr,ir1,ir2) -> fprintf oc "{\"Instruction Name\":\"Pstfdx\",\"Args\":[%a,%a,%a]}" p_freg fr p_ireg ir1 p_ireg ir2
- | Pstfs (fr,c,ir) -> fprintf oc "{\"Instruction Name\":\"Pstfs\",\"Args\":[%a,%a,%a]}" p_freg fr p_constant c p_ireg ir
- | Pstfsx (fr,ir1,ir2) -> fprintf oc "{\"Instruction Name\":\"Pstfsx\",\"Args\":[%a,%a,%a]}" p_freg fr p_ireg ir1 p_ireg ir2
- | Psth (ir1,c,ir2) -> fprintf oc "{\"Instruction Name\":\"Psth\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_constant c p_ireg ir2
- | Psthx (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Psthx\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Psthbrx (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Psthbrx\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Pstfdx_a (fr,ir1,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pstfdx" p_freg fr p_ireg ir1 p_ireg ir2
+ | Pstfs (fr,c,ir) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pstfs" p_freg fr p_constant c p_ireg ir
+ | Pstfsx (fr,ir1,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pstfsx" p_freg fr p_ireg ir1 p_ireg ir2
+ | Psth (ir1,c,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Psth" p_ireg ir1 p_constant c p_ireg ir2
+ | Psthx (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Psthx" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Psthbrx (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Psthbrx" p_ireg ir1 p_ireg ir2 p_ireg ir3
| Pstw (ir1,c,ir2)
- | Pstw_a (ir1,c,ir2) -> fprintf oc "{\"Instruction Name\":\"Pstw\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_constant c p_ireg ir2
- | Pstwu (ir1,c,ir2) -> fprintf oc "{\"Instruction Name\":\"Pstwu\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_constant c p_ireg ir2
+ | Pstw_a (ir1,c,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pstw" p_ireg ir1 p_constant c p_ireg ir2
+ | Pstwu (ir1,c,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pstwu" p_ireg ir1 p_constant c p_ireg ir2
| Pstwx (ir1,ir2,ir3)
- | Pstwx_a (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Pstwx\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Pstwux (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Pstwux\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Pstwbrx (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Pstwbrx\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Pstwcx_ (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Pstwcx_\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Psubfc (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Psubfc\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Psubfe (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Psubfe\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Psubfze (ir1,ir2) -> fprintf oc "{\"Instruction Name\":\"Psubfze\",\"Args\":[%a,%a]}" p_ireg ir1 p_ireg ir2
- | Psubfic (ir1,ir2,c) -> fprintf oc "{\"Instruction Name\":\"Psubfic\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_constant c
- | Psync -> fprintf oc "{\"Instruction Name\":\"Psync\",\"Args\":[]}"
- | Ptrap -> fprintf oc "{\"Instruction Name\":\"Ptrap\",\"Args\":[]}"
- | Pxor (ir1,ir2,ir3) -> fprintf oc "{\"Instruction Name\":\"Pxor\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_ireg ir3
- | Pxori (ir1,ir2,c) -> fprintf oc "{\"Instruction Name\":\"Pxori\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_constant c
- | Pxoris (ir1,ir2,c) -> fprintf oc "{\"Instruction Name\":\"Pxoris\",\"Args\":[%a,%a,%a]}" p_ireg ir1 p_ireg ir2 p_constant c
- | Plabel l -> fprintf oc "{\"Instruction Name\":\"Plabel\",\"Args\":[%a]}" p_label l
+ | Pstwx_a (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pstwx" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Pstwux (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pstwux" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Pstwbrx (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pstwbrx" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Pstwcx_ (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pstwcx_" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Psubfc (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Psubfc" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Psubfe (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Psubfe" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Psubfze (ir1,ir2) -> fprintf oc "{%a,\"Args\":[%a,%a]}" inst_name "Psubfze" p_ireg ir1 p_ireg ir2
+ | Psubfic (ir1,ir2,c) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Psubfic" p_ireg ir1 p_ireg ir2 p_constant c
+ | Psync -> fprintf oc "{%a,\"Args\":[]}" inst_name "Psync"
+ | Ptrap -> fprintf oc "{%a,\"Args\":[]}" inst_name "Ptrap"
+ | Pxor (ir1,ir2,ir3) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pxor" p_ireg ir1 p_ireg ir2 p_ireg ir3
+ | Pxori (ir1,ir2,c) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pxori" p_ireg ir1 p_ireg ir2 p_constant c
+ | Pxoris (ir1,ir2,c) -> fprintf oc "{%a,\"Args\":[%a,%a,%a]}" inst_name "Pxoris" p_ireg ir1 p_ireg ir2 p_constant c
+ | Plabel l -> fprintf oc "{%a,\"Args\":[%a]}" inst_name "Plabel" p_label l
| Pbuiltin (ef,args1,args2) -> ()
-(* FIXME *)
-(*
- begin match ef with
- | EF_inline_asm (i,s,il) ->
- fprintf oc "{\"Instruction Name\":\"Inline_asm\",\"Args\":[%a%a%a%a]}" p_atom_constant i (p_list_cont p_char_list) il
- (p_list_cont p_preg) args1 (p_list_cont p_preg) args2
- | _ -> (* Should all be folded away *)
- assert false
- end
-*)
-(* END FIXME *)
| Pcfi_adjust _ (* Only debug relevant *)
| Pcfi_rel_offset _ -> () (* Only debug relevant *)