aboutsummaryrefslogtreecommitdiffstats
path: root/riscV/PrintOp.ml
diff options
context:
space:
mode:
authorLéo Gourdin <leo.gourdin@univ-grenoble-alpes.fr>2021-03-01 23:16:02 +0100
committerLéo Gourdin <leo.gourdin@univ-grenoble-alpes.fr>2021-03-01 23:16:02 +0100
commitfd1a0395e540ee9fcd91d8f09161b34a22d9c51e (patch)
treed5a02963ff833d1a98f5078ce457aca724735112 /riscV/PrintOp.ml
parentdae202e121342b691585a78caaec8f4100c3123d (diff)
downloadcompcert-kvx-fd1a0395e540ee9fcd91d8f09161b34a22d9c51e.tar.gz
compcert-kvx-fd1a0395e540ee9fcd91d8f09161b34a22d9c51e.zip
Try to save values in virtual registers during expansion
Diffstat (limited to 'riscV/PrintOp.ml')
-rw-r--r--riscV/PrintOp.ml22
1 files changed, 17 insertions, 5 deletions
diff --git a/riscV/PrintOp.ml b/riscV/PrintOp.ml
index 2738e16d..e11dd530 100644
--- a/riscV/PrintOp.ml
+++ b/riscV/PrintOp.ml
@@ -64,6 +64,10 @@ let print_condition reg pp = function
fprintf pp "CEbeqw"; (get_optR0_s Ceq reg pp r1 r2 optR0)
| (CEbnew optR0, [r1;r2]) ->
fprintf pp "CEbnew"; (get_optR0_s Cne reg pp r1 r2 optR0)
+ | (CEbequw optR0, [r1;r2]) ->
+ fprintf pp "CEbequw"; (get_optR0_s Ceq reg pp r1 r2 optR0)
+ | (CEbneuw optR0, [r1;r2]) ->
+ fprintf pp "CEbneuw"; (get_optR0_s Cne reg pp r1 r2 optR0)
| (CEbltw optR0, [r1;r2]) ->
fprintf pp "CEbltw"; (get_optR0_s Clt reg pp r1 r2 optR0)
| (CEbltuw optR0, [r1;r2]) ->
@@ -76,6 +80,10 @@ let print_condition reg pp = function
fprintf pp "CEbeql"; (get_optR0_s Ceq reg pp r1 r2 optR0)
| (CEbnel optR0, [r1;r2]) ->
fprintf pp "CEbnel"; (get_optR0_s Cne reg pp r1 r2 optR0)
+ | (CEbequl optR0, [r1;r2]) ->
+ fprintf pp "CEbequl"; (get_optR0_s Ceq reg pp r1 r2 optR0)
+ | (CEbneul optR0, [r1;r2]) ->
+ fprintf pp "CEbneul"; (get_optR0_s Cne reg pp r1 r2 optR0)
| (CEbltl optR0, [r1;r2]) ->
fprintf pp "CEbltl"; (get_optR0_s Clt reg pp r1 r2 optR0)
| (CEbltul optR0, [r1;r2]) ->
@@ -187,23 +195,27 @@ let print_operation reg pp = function
| Ocmp c, args -> print_condition reg pp (c, args)
| OEseqw optR0, [r1;r2] -> fprintf pp "OEseqw"; (get_optR0_s Ceq reg pp r1 r2 optR0)
| OEsnew optR0, [r1;r2] -> fprintf pp "OEsnew"; (get_optR0_s Cne reg pp r1 r2 optR0)
+ | OEsequw optR0, [r1;r2] -> fprintf pp "OEsequw"; (get_optR0_s Ceq reg pp r1 r2 optR0)
+ | OEsneuw optR0, [r1;r2] -> fprintf pp "OEsneuw"; (get_optR0_s Cne reg pp r1 r2 optR0)
| OEsltw optR0, [r1;r2] -> fprintf pp "OEsltw"; (get_optR0_s Clt reg pp r1 r2 optR0)
| OEsltuw optR0, [r1;r2] -> fprintf pp "OEsltuw"; (get_optR0_s Clt reg pp r1 r2 optR0)
| OEsltiw n, [r1] -> fprintf pp "OEsltiw(%a,%ld)" reg r1 (camlint_of_coqint n)
| OEsltiuw n, [r1] -> fprintf pp "OEsltiuw(%a,%ld)" reg r1 (camlint_of_coqint n)
| OExoriw n, [r1] -> fprintf pp "OExoriw(%a,%ld)" reg r1 (camlint_of_coqint n)
- | OEluiw (n, _), [] -> fprintf pp "OEluiw(%ld)" (camlint_of_coqint n)
- | OEaddiwr0 (n, _), [] -> fprintf pp "OEaddiwr0(%ld,X0)" (camlint_of_coqint n)
+ | OEluiw (n, _), _ -> fprintf pp "OEluiw(%ld)" (camlint_of_coqint n)
+ | OEaddiwr0 (n, _), _ -> fprintf pp "OEaddiwr0(%ld,X0)" (camlint_of_coqint n)
| OEseql optR0, [r1;r2] -> fprintf pp "OEseql"; (get_optR0_s Ceq reg pp r1 r2 optR0)
| OEsnel optR0, [r1;r2] -> fprintf pp "OEsnel"; (get_optR0_s Cne reg pp r1 r2 optR0)
+ | OEsequl optR0, [r1;r2] -> fprintf pp "OEsequl"; (get_optR0_s Ceq reg pp r1 r2 optR0)
+ | OEsneul optR0, [r1;r2] -> fprintf pp "OEsneul"; (get_optR0_s Cne reg pp r1 r2 optR0)
| OEsltl optR0, [r1;r2] -> fprintf pp "OEsltl"; (get_optR0_s Clt reg pp r1 r2 optR0)
| OEsltul optR0, [r1;r2] -> fprintf pp "OEsltul"; (get_optR0_s Clt reg pp r1 r2 optR0)
| OEsltil n, [r1] -> fprintf pp "OEsltil(%a,%ld)" reg r1 (camlint_of_coqint n)
| OEsltiul n, [r1] -> fprintf pp "OEsltiul(%a,%ld)" reg r1 (camlint_of_coqint n)
| OExoril n, [r1] -> fprintf pp "OExoril(%a,%ld)" reg r1 (camlint_of_coqint n)
- | OEluil n, [] -> fprintf pp "OEluil(%ld)" (camlint_of_coqint n)
- | OEaddilr0 n, [] -> fprintf pp "OEaddilr0(%ld,X0)" (camlint_of_coqint n)
- | OEloadli n, [] -> fprintf pp "OEloadli(%ld)" (camlint_of_coqint n)
+ | OEluil n, _ -> fprintf pp "OEluil(%ld)" (camlint_of_coqint n)
+ | OEaddilr0 n, _ -> fprintf pp "OEaddilr0(%ld,X0)" (camlint_of_coqint n)
+ | OEloadli n, _ -> fprintf pp "OEloadli(%ld)" (camlint_of_coqint n)
| OEfeqd, [r1;r2] -> fprintf pp "OEfeqd(%a,%s,%a)" reg r1 (comparison_name Ceq) reg r2
| OEfltd, [r1;r2] -> fprintf pp "OEfltd(%a,%s,%a)" reg r1 (comparison_name Clt) reg r2
| OEfled, [r1;r2] -> fprintf pp "OEfled(%a,%s,%a)" reg r1 (comparison_name Cle) reg r2