diff options
author | Léo Gourdin <leo.gourdin@univ-grenoble-alpes.fr> | 2020-11-02 17:13:50 +0100 |
---|---|---|
committer | Léo Gourdin <leo.gourdin@univ-grenoble-alpes.fr> | 2020-11-02 17:13:50 +0100 |
commit | 241da496839a9101e843ce7b1da4a668f998498a (patch) | |
tree | eafa2250ce4f5a8bb96e16afa6ebd9a7149e9435 /aarch64/Asmgen.v | |
parent | 8de1a1f5811470bc1d7d1a7b2f0e5193de40698e (diff) | |
download | compcert-kvx-241da496839a9101e843ce7b1da4a668f998498a.tar.gz compcert-kvx-241da496839a9101e843ce7b1da4a668f998498a.zip |
Preparation for postpass in aarch64 and refactoring
Diffstat (limited to 'aarch64/Asmgen.v')
-rw-r--r-- | aarch64/Asmgen.v | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/aarch64/Asmgen.v b/aarch64/Asmgen.v index fcd12eef..fcc64956 100644 --- a/aarch64/Asmgen.v +++ b/aarch64/Asmgen.v @@ -17,7 +17,7 @@ Require Import Recdef Coqlib Zwf Zbits. Require Import Errors AST Integers Floats Op. Require Import Locations Compopts. -Require Import Mach Asm Asmblock Asmblockgen Machblockgen PseudoAsmblock PseudoAsmblockproof. +Require Import Mach Asm Asmblock Asmblockgen Machblockgen PseudoAsmblock PseudoAsmblockproof PostpassScheduling. Local Open Scope error_monad_scope. @@ -30,19 +30,19 @@ Module Asmblock_TRANSF. Definition ireg_of_preg (p : Asm.preg) : res ireg := match p with - | DR (IR' (RR1 r)) => OK r + | DR (IR (RR1 r)) => OK r | _ => Error (msg "Asmgen.ireg_of_preg") end. Definition freg_of_preg (p : Asm.preg) : res freg := match p with - | DR (FR' r) => OK r + | DR (FR r) => OK r | _ => Error (msg "Asmgen.freg_of_preg") end. Definition iregsp_of_preg (p : Asm.preg) : res iregsp := match p with - | DR (IR' r) => OK r + | DR (IR r) => OK r | _ => Error (msg "Asmgen.iregsp_of_preg") end. @@ -219,11 +219,11 @@ Definition basic_to_instruction (b: basic) : res Asm.instruction := | PArith (Pfmovi fsz rd r1) => OK (Asm.Pfmovi fsz rd r1) | PArith (Pcsel rd r1 r2 c) => match r1, r2 with - | IR' r1', IR' r2' => do rd' <- ireg_of_preg rd; + | IR r1', IR r2' => do rd' <- ireg_of_preg rd; do r1'' <- ireg_of_preg r1'; do r2'' <- ireg_of_preg r2'; OK (Asm.Pcsel rd' r1'' r2'' c) - | FR' r1', FR' r2' => do rd' <- freg_of_preg rd; + | FR r1', FR r2' => do rd' <- freg_of_preg rd; do r1'' <- freg_of_preg r1'; do r2'' <- freg_of_preg r2'; OK (Asm.Pfsel rd' r1'' r2'' c) @@ -359,4 +359,5 @@ Definition transf_program (p: Mach.program) : res Asm.program := let mbp := Machblockgen.transf_program p in do mbp' <- PseudoAsmblockproof.transf_program mbp; do abp <- Asmblockgen.transf_program mbp'; + (*do abp' <- (time "PostpassScheduling total oracle+verification" PostpassScheduling.transf_program) abp;*) Asmblock_TRANSF.transf_program abp. |