aboutsummaryrefslogtreecommitdiffstats
path: root/powerpc/Machregs.v
diff options
context:
space:
mode:
authorBernhard Schommer <bernhardschommer@gmail.com>2015-09-01 16:44:29 +0200
committerBernhard Schommer <bernhardschommer@gmail.com>2015-09-01 16:44:29 +0200
commit75d50c12ee220fecf955b1626c78b78636cbca92 (patch)
treed1d3926a9df12113d36350ed6c8d6f55e373c748 /powerpc/Machregs.v
parent951963b380f1ff1e0b55f8303e4ae098cedb3cb5 (diff)
downloadcompcert-kvx-75d50c12ee220fecf955b1626c78b78636cbca92.tar.gz
compcert-kvx-75d50c12ee220fecf955b1626c78b78636cbca92.zip
Added the gcc builtin prefetch.
This commit implements the gcc __builtin_prefetch in a form with all arguments for the powerpc architecture. The resulting instructions are the dcbt and dcbtst instructions in Server Category.
Diffstat (limited to 'powerpc/Machregs.v')
-rw-r--r--powerpc/Machregs.v2
1 files changed, 2 insertions, 0 deletions
diff --git a/powerpc/Machregs.v b/powerpc/Machregs.v
index b9af652a..62a4a0a5 100644
--- a/powerpc/Machregs.v
+++ b/powerpc/Machregs.v
@@ -206,6 +206,7 @@ Definition two_address_op (op: operation) : bool :=
Definition builtin_get_spr := ident_of_string "__builtin_get_spr".
Definition builtin_set_spr := ident_of_string "__builtin_set_spr".
+Definition builtin_prefetch := ident_of_string "__builtin_prefetch".
Definition builtin_constraints (ef: external_function) :
list builtin_arg_constraint :=
@@ -213,6 +214,7 @@ Definition builtin_constraints (ef: external_function) :
| EF_builtin id sg =>
if ident_eq id builtin_get_spr then OK_const :: nil
else if ident_eq id builtin_set_spr then OK_const :: OK_default :: nil
+ else if ident_eq id builtin_prefetch then OK_addrany :: OK_const :: OK_const :: nil
else nil
| EF_vload _ => OK_addrany :: nil
| EF_vstore _ => OK_addrany :: OK_default :: nil