< prev index next >

src/hotspot/cpu/x86/x86_64.ad

Print this page
rev 50307 : [mq]: cont

@@ -11012,10 +11012,24 @@
                         $tmp4$$XMMRegister, $tmp5$$Register, $result$$Register);
   %}
   ins_pipe( pipe_slow );
 %}
 
+instruct getFP(rRegL dst) %{
+  match(Set dst (GetFP));
+  effect(DEF dst);
+  ins_cost(1);
+ 
+  ins_encode %{
+    // Remove wordSize for return addr which is already pushed.
+    int framesize = Compile::current()->frame_size_in_bytes() - wordSize;
+    Address base(rsp, framesize);
+    __ lea($dst$$Register, base);
+  %}
+  ins_pipe(ialu_reg_reg_long);
+%}
+
 //----------Overflow Math Instructions-----------------------------------------
 
 instruct overflowAddI_rReg(rFlagsReg cr, rax_RegI op1, rRegI op2)
 %{
   match(Set cr (OverflowAddI op1 op2));
< prev index next >