diff options
author | Yann Herklotz <git@yannherklotz.com> | 2021-09-17 16:52:29 +0100 |
---|---|---|
committer | Yann Herklotz <git@yannherklotz.com> | 2021-09-17 16:52:29 +0100 |
commit | 4be142376801c205ffd701208fad8eedf2c08d90 (patch) | |
tree | d2f4d54cc34319e380e349eddef61c2994202e8b /riscV/Asm.v | |
parent | 48a9dcbdc968bcf05b4eec17b8c7fd471fb80240 (diff) | |
parent | c9fad7cd7bdc4e79fb06a1d39abfa0d5471623e5 (diff) | |
download | compcert-4be142376801c205ffd701208fad8eedf2c08d90.tar.gz compcert-4be142376801c205ffd701208fad8eedf2c08d90.zip |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'riscV/Asm.v')
-rw-r--r-- | riscV/Asm.v | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/riscV/Asm.v b/riscV/Asm.v index dc410a3b..a47573a2 100644 --- a/riscV/Asm.v +++ b/riscV/Asm.v @@ -256,7 +256,9 @@ Inductive instruction : Type := (* floating point register move *) | Pfmv (rd: freg) (rs: freg) (**r move *) | Pfmvxs (rd: ireg) (rs: freg) (**r move FP single to integer register *) + | Pfmvsx (rd: freg) (rs: ireg) (**r move integer register to FP single *) | Pfmvxd (rd: ireg) (rs: freg) (**r move FP double to integer register *) + | Pfmvdx (rd: freg) (rs: ireg) (**r move integer register to FP double *) (* 32-bit (single-precision) floating point *) | Pfls (rd: freg) (ra: ireg) (ofs: offset) (**r load float *) @@ -969,7 +971,9 @@ Definition exec_instr (f: function) (i: instruction) (rs: regset) (m: mem) : out | Pfence | Pfmvxs _ _ + | Pfmvsx _ _ | Pfmvxd _ _ + | Pfmvdx _ _ | Pfmins _ _ _ | Pfmaxs _ _ _ @@ -1076,7 +1080,7 @@ Inductive step: state -> trace -> state -> Prop := rs' = nextinstr (set_res res vres (undef_regs (map preg_of (destroyed_by_builtin ef)) - (rs#X31 <- Vundef))) -> + (rs #X1 <- Vundef #X31 <- Vundef))) -> step (State rs m) t (State rs' m') | exec_step_external: forall b ef args res rs m t rs' m', @@ -1157,7 +1161,7 @@ Ltac Equalities := split. auto. intros. destruct B; auto. subst. auto. - (* trace length *) red; intros. inv H; simpl. - omega. + lia. eapply external_call_trace_length; eauto. eapply external_call_trace_length; eauto. - (* initial states *) |