aboutsummaryrefslogtreecommitdiffstats
path: root/kvx/Asm.v
diff options
context:
space:
mode:
authorDavid Monniaux <David.Monniaux@univ-grenoble-alpes.fr>2022-02-14 18:51:52 +0100
committerDavid Monniaux <David.Monniaux@univ-grenoble-alpes.fr>2022-02-14 18:51:52 +0100
commit1ef9e303d7bd896b94afcc875136d8f3e94243cb (patch)
treeaf2da3d2fdbc0be85d207bf20111162bcf0a4f56 /kvx/Asm.v
parent882f1a1875089298937abf4ef854b221cab4eb8e (diff)
parent2867dee21f6fb696db554679d8535306c7a9d4ea (diff)
downloadcompcert-kvx-1ef9e303d7bd896b94afcc875136d8f3e94243cb.tar.gz
compcert-kvx-1ef9e303d7bd896b94afcc875136d8f3e94243cb.zip
Merge remote-tracking branch 'origin/kvx-bits' into kvx_fp_division
Diffstat (limited to 'kvx/Asm.v')
-rw-r--r--kvx/Asm.v12
1 files changed, 12 insertions, 0 deletions
diff --git a/kvx/Asm.v b/kvx/Asm.v
index 333854cf..7a289fe5 100644
--- a/kvx/Asm.v
+++ b/kvx/Asm.v
@@ -251,6 +251,9 @@ Inductive instruction : Type :=
| Pfmaxd (rd rs1 rs2: ireg) (**r Float max double *)
| Pfmaxw (rd rs1 rs2: ireg) (**r Float max word *)
| Pfinvw (rd rs1: ireg) (**r Float invert word *)
+
+ | Pabdw (rd rs1 rs2: ireg) (**r Absolute difference word *)
+ | Pabdl (rd rs1 rs2: ireg) (**r Absolute difference long *)
(** Arith RRI32 *)
| Pcompiw (it: itest) (rd rs: ireg) (imm: int) (**r comparison imm word *)
@@ -278,6 +281,7 @@ Inductive instruction : Type :=
| Psrxil (rd rs: ireg) (imm: int) (**r shift right arithmetic imm word round to 0*)
| Psrlil (rd rs: ireg) (imm: int) (**r shift right logical immediate long *)
| Psrail (rd rs: ireg) (imm: int) (**r shift right arithmetic immediate long *)
+ | Pabdiw (rd rs: ireg) (imm: int) (**r Absolute difference word *)
(** Arith RRI64 *)
| Pcompil (it: itest) (rd rs: ireg) (imm: int64) (**r comparison imm long *)
@@ -301,6 +305,7 @@ Inductive instruction : Type :=
| Pcmoveuiw (bt: btest) (rcond rd : ireg) (imm: int) (** conditional move, unsigned semantics *)
| Pcmoveil (bt: btest) (rcond rd : ireg) (imm: int64) (** conditional move *)
| Pcmoveuil (bt: btest) (rcond rd : ireg) (imm: int64) (** conditional move, unsigned semantics *)
+ | Pabdil (rd rs : ireg) (imm: int64) (**r Absolute difference long *)
.
(** Correspondance between Asmblock and Asm *)
@@ -429,6 +434,9 @@ Definition basic_to_instruction (b: basic) :=
| PArithRRR Asmvliw.Pfmaxd rd rs1 rs2 => Pfmaxd rd rs1 rs2
| PArithRRR Asmvliw.Pfmaxw rd rs1 rs2 => Pfmaxw rd rs1 rs2
+ | PArithRRR Asmvliw.Pabdw rd rs1 rs2 => Pabdw rd rs1 rs2
+ | PArithRRR Asmvliw.Pabdl rd rs1 rs2 => Pabdl rd rs1 rs2
+
(* RRI32 *)
| PArithRRI32 (Asmvliw.Pcompiw it) rd rs imm => Pcompiw it rd rs imm
| PArithRRI32 Asmvliw.Paddiw rd rs imm => Paddiw rd rs imm
@@ -454,6 +462,8 @@ Definition basic_to_instruction (b: basic) :=
| PArithRRI32 Asmvliw.Psrxil rd rs imm => Psrxil rd rs imm
| PArithRRI32 Asmvliw.Psrail rd rs imm => Psrail rd rs imm
+ | PArithRRI32 Asmvliw.Pabdiw rd rs imm => Pabdiw rd rs imm
+
(* RRI64 *)
| PArithRRI64 (Asmvliw.Pcompil it) rd rs imm => Pcompil it rd rs imm
| PArithRRI64 Asmvliw.Paddil rd rs imm => Paddil rd rs imm
@@ -470,6 +480,8 @@ Definition basic_to_instruction (b: basic) :=
| PArithRRI64 Asmvliw.Pandnil rd rs imm => Pandnil rd rs imm
| PArithRRI64 Asmvliw.Pornil rd rs imm => Pornil rd rs imm
+ | PArithRRI64 Asmvliw.Pabdil rd rs imm => Pabdil rd rs imm
+
(** ARRR *)
| PArithARRR Asmvliw.Pmaddw rd rs1 rs2 => Pmaddw rd rs1 rs2
| PArithARRR Asmvliw.Pmaddl rd rs1 rs2 => Pmaddl rd rs1 rs2