aboutsummaryrefslogtreecommitdiffstats
path: root/powerpc/Asmgenproof1.v
diff options
context:
space:
mode:
Diffstat (limited to 'powerpc/Asmgenproof1.v')
-rw-r--r--powerpc/Asmgenproof1.v8
1 files changed, 8 insertions, 0 deletions
diff --git a/powerpc/Asmgenproof1.v b/powerpc/Asmgenproof1.v
index a0cdeabc..8f6f7255 100644
--- a/powerpc/Asmgenproof1.v
+++ b/powerpc/Asmgenproof1.v
@@ -1198,6 +1198,14 @@ Proof.
(* Oaddrsymbol *)
change (find_symbol_offset ge i i0) with (symbol_offset ge i i0) in LD.
set (v' := symbol_offset ge i i0) in *.
+ caseEq (symbol_is_small_data i i0); intro SD.
+ (* small data *)
+ exists (nextinstr (rs#(ireg_of res) <- v')); split.
+ apply exec_straight_one; auto. simpl.
+ rewrite (small_data_area_addressing _ _ _ SD). unfold v', symbol_offset.
+ destruct (Genv.find_symbol ge i); auto. rewrite Int.add_zero; auto.
+ eauto with ppcgen.
+ (* not small data *)
pose (rs1 := nextinstr (rs#GPR12 <- (high_half v'))).
exists (nextinstr (rs1#(ireg_of res) <- v')).
split. apply exec_straight_two with rs1 m'.