aboutsummaryrefslogtreecommitdiffstats
path: root/arm
diff options
context:
space:
mode:
authorBernhard Schommer <bernhardschommer@gmail.com>2019-12-13 18:16:06 +0100
committerXavier Leroy <xavierleroy@users.noreply.github.com>2019-12-21 10:34:53 +0100
commit4dfcd7d4be18e8bc437ca170782212aa06635a95 (patch)
treea0dfa75b91b24d82c0864fb7ecc9bed9c5cc73a0 /arm
parent54fb9faab6a53fad126fd57c3d58b232ff181cd1 (diff)
downloadcompcert-kvx-4dfcd7d4be18e8bc437ca170782212aa06635a95.tar.gz
compcert-kvx-4dfcd7d4be18e8bc437ca170782212aa06635a95.zip
Remove `__builtin_nop` for some architectures. (#208)
The `__builtin_nop` function is documented only for PowerPC. It was added to the other architectures by copy paste, but has no known uses. So, remove `__builtin_nop` from all architectures but PowerPC.
Diffstat (limited to 'arm')
-rw-r--r--arm/Asm.v2
-rw-r--r--arm/AsmToJSON.ml3
-rw-r--r--arm/Asmexpand.ml2
-rw-r--r--arm/TargetPrinter.ml2
4 files changed, 1 insertions, 8 deletions
diff --git a/arm/Asm.v b/arm/Asm.v
index 194074ac..7f447c76 100644
--- a/arm/Asm.v
+++ b/arm/Asm.v
@@ -232,7 +232,6 @@ Inductive instruction : Type :=
| Prev16: ireg -> ireg -> instruction (**r reverse bytes and reverse bits. *)
| Prsc: ireg -> ireg -> shift_op -> instruction (**r reverse subtract without carry. *)
| Psbc: ireg -> ireg -> shift_op -> instruction (**r add with carry *)
- | Pnop : instruction (**r nop instruction *)
(* Add, sub, rsb versions with s suffix *)
| Padds: ireg -> ireg -> shift_op -> instruction (**r integer addition with update of condition flags *)
| Psubs: ireg -> ireg -> shift_op -> instruction (**r integer subtraction with update of condition flags *)
@@ -815,7 +814,6 @@ Definition exec_instr (f: function) (i: instruction) (rs: regset) (m: mem) : out
| Pfsqrt _ _
| Prsc _ _ _
| Psbc _ _ _
- | Pnop
| Padds _ _ _
| Psubs _ _ _
| Prsbs _ _ _
diff --git a/arm/AsmToJSON.ml b/arm/AsmToJSON.ml
index e850fed6..599d3d7b 100644
--- a/arm/AsmToJSON.ml
+++ b/arm/AsmToJSON.ml
@@ -34,7 +34,7 @@ let mnemonic_names = StringSet.of_list
"Pfuitos"; "Pinlineasm"; "Pisb"; "Plabel"; "Pldr"; "Ploadsymbol_lbl";
"Pldr_p"; "Pldrb"; "Pldrb_p"; "Pldrh"; "Pldrh_p"; "Pldrsb"; "Pldrsh";
"Plsl"; "Plsr"; "Pmla"; "Pmov"; "Pmovite"; "Pfmovite"; "Pmovt"; "Pmovw";
- "Pmul"; "Pmvn"; "Ploadsymbol_imm"; "Pnop"; "Porr"; "Ppush"; "Prev";
+ "Pmul"; "Pmvn"; "Ploadsymbol_imm"; "Porr"; "Ppush"; "Prev";
"Prev16"; "Prsb"; "Prsbs"; "Prsc"; "Psbc"; "Psbfx"; "Psdiv"; "Psmull";
"Pstr"; "Pstr_p"; "Pstrb"; "Pstrb_p"; "Pstrh"; "Pstrh_p"; "Psub"; "Psubs";
"Pudiv";"Pumull" ]
@@ -268,7 +268,6 @@ let pp_instructions pp ic =
| Pmovw(r1, n) -> instruction pp "Pmovw" [Ireg r1; Long n]
| Pmul(r1, r2, r3) -> instruction pp "Pmul" [Ireg r1; Ireg r2; Ireg r3]
| Pmvn(r1, so) -> instruction pp "Pmvn" [Ireg r1; Shift so]
- | Pnop -> instruction pp "Pnop" []
| Porr(r1, r2, so) -> instruction pp "Porr" [Ireg r1; Ireg r2; Shift so]
| Ppush(rl) -> instruction pp "Ppush" (List.map (fun r -> Ireg r) rl)
| Prev(r1, r2) -> instruction pp "Prev" [Ireg r1; Ireg r2]
diff --git a/arm/Asmexpand.ml b/arm/Asmexpand.ml
index 89aab5c7..5c7e5ad4 100644
--- a/arm/Asmexpand.ml
+++ b/arm/Asmexpand.ml
@@ -409,8 +409,6 @@ let expand_builtin_inline name args res =
(* Vararg stuff *)
| "__builtin_va_start", [BA(IR a)], _ ->
expand_builtin_va_start a
- | "__builtin_nop", [], _ ->
- emit Pnop
(* Catch-all *)
| _ ->
raise (Error ("unrecognized builtin " ^ name))
diff --git a/arm/TargetPrinter.ml b/arm/TargetPrinter.ml
index 03e06a65..c19f36b0 100644
--- a/arm/TargetPrinter.ml
+++ b/arm/TargetPrinter.ml
@@ -306,8 +306,6 @@ struct
fprintf oc " vsqrt.f64 %a, %a\n" freg f1 freg f2
| Psbc (r1,r2,sa) ->
fprintf oc " sbc %a, %a, %a\n" ireg r1 ireg r2 shift_op sa
- | Pnop ->
- fprintf oc " nop\n"
| Pstr(r1, r2, sa) | Pstr_a(r1, r2, sa) ->
fprintf oc " str %a, [%a, %a]\n" ireg r1 ireg r2 shift_op sa
| Pstrb(r1, r2, sa) ->