diff src/cpu/ppc/vm/macroAssembler_ppc.hpp @ 14726:92aa6797d639

Backed out merge changeset: b51e29501f30 Backed out merge revision to its first parent (8f483e200405)
author Doug Simon <doug.simon@oracle.com>
date Mon, 24 Mar 2014 21:30:43 +0100
parents 58cf34613a72
children
line wrap: on
line diff
--- a/src/cpu/ppc/vm/macroAssembler_ppc.hpp	Fri Mar 21 16:36:59 2014 -0700
+++ b/src/cpu/ppc/vm/macroAssembler_ppc.hpp	Mon Mar 24 21:30:43 2014 +0100
@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
- * Copyright 2012, 2014 SAP AG. All rights reserved.
+ * Copyright 2012, 2013 SAP AG. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -279,12 +279,12 @@
   // Push a frame of size `bytes'. No abi space provided.
   void push_frame(unsigned int bytes, Register tmp);
 
-  // Push a frame of size `bytes' plus abi_reg_args on top.
-  void push_frame_reg_args(unsigned int bytes, Register tmp);
+  // Push a frame of size `bytes' plus abi112 on top.
+  void push_frame_abi112(unsigned int bytes, Register tmp);
 
   // Setup up a new C frame with a spill area for non-volatile GPRs and additional
   // space for local variables
-  void push_frame_reg_args_nonvolatiles(unsigned int bytes, Register tmp);
+  void push_frame_abi112_nonvolatiles(unsigned int bytes, Register tmp);
 
   // pop current C frame
   void pop_frame();
@@ -296,31 +296,17 @@
  private:
   address _last_calls_return_pc;
 
-#if defined(ABI_ELFv2)
-  // Generic version of a call to C function.
-  // Updates and returns _last_calls_return_pc.
-  address branch_to(Register function_entry, bool and_link);
-#else
   // Generic version of a call to C function via a function descriptor
   // with variable support for C calling conventions (TOC, ENV, etc.).
   // updates and returns _last_calls_return_pc.
   address branch_to(Register function_descriptor, bool and_link, bool save_toc_before_call,
                     bool restore_toc_after_call, bool load_toc_of_callee, bool load_env_of_callee);
-#endif
 
  public:
 
   // Get the pc where the last call will return to. returns _last_calls_return_pc.
   inline address last_calls_return_pc();
 
-#if defined(ABI_ELFv2)
-  // Call a C function via a function descriptor and use full C
-  // calling conventions. Updates and returns _last_calls_return_pc.
-  address call_c(Register function_entry);
-  // For tail calls: only branch, don't link, so callee returns to caller of this function.
-  address call_c_and_return_to_caller(Register function_entry);
-  address call_c(address function_entry, relocInfo::relocType rt);
-#else
   // Call a C function via a function descriptor and use full C
   // calling conventions. Updates and returns _last_calls_return_pc.
   address call_c(Register function_descriptor);
@@ -329,7 +315,6 @@
   address call_c(const FunctionDescriptor* function_descriptor, relocInfo::relocType rt);
   address call_c_using_toc(const FunctionDescriptor* function_descriptor, relocInfo::relocType rt,
                            Register toc);
-#endif
 
  protected:
 
@@ -566,14 +551,12 @@
 
   // Load heap oop and decompress. Loaded oop may not be null.
   inline void load_heap_oop_not_null(Register d, RegisterOrConstant offs, Register s1 = noreg);
-  inline void store_heap_oop_not_null(Register d, RegisterOrConstant offs, Register s1,
-                                      /*specify if d must stay uncompressed*/ Register tmp = noreg);
 
   // Null allowed.
   inline void load_heap_oop(Register d, RegisterOrConstant offs, Register s1 = noreg);
 
   // Encode/decode heap oop. Oop may not be null, else en/decoding goes wrong.
-  inline Register encode_heap_oop_not_null(Register d, Register src = noreg);
+  inline void encode_heap_oop_not_null(Register d);
   inline void decode_heap_oop_not_null(Register d);
 
   // Null allowed.
@@ -583,7 +566,6 @@
   void load_klass(Register dst, Register src);
   void load_klass_with_trap_null_check(Register dst, Register src);
   void store_klass(Register dst_oop, Register klass, Register tmp = R0);
-  void store_klass_gap(Register dst_oop, Register val = noreg); // Will store 0 if val not specified.
   static int instr_size_for_decode_klass_not_null();
   void decode_klass_not_null(Register dst, Register src = noreg);
   void encode_klass_not_null(Register dst, Register src = noreg);
@@ -667,11 +649,6 @@
   void _verify_method_ptr(Register reg, const char * msg, const char * file, int line) {}
   void _verify_klass_ptr(Register reg, const char * msg, const char * file, int line) {}
 
-  // Convenience method returning function entry. For the ELFv1 case
-  // creates function descriptor at the current address and returs
-  // the pointer to it. For the ELFv2 case returns the current address.
-  inline address function_entry();
-
 #define verify_method_ptr(reg) _verify_method_ptr(reg, "broken method " #reg, __FILE__, __LINE__)
 #define verify_klass_ptr(reg) _verify_klass_ptr(reg, "broken klass " #reg, __FILE__, __LINE__)
 
@@ -696,21 +673,4 @@
   void zap_from_to(Register low, int before, Register high, int after, Register val, Register addr) PRODUCT_RETURN;
 };
 
-// class SkipIfEqualZero:
-//
-// Instantiating this class will result in assembly code being output that will
-// jump around any code emitted between the creation of the instance and it's
-// automatic destruction at the end of a scope block, depending on the value of
-// the flag passed to the constructor, which will be checked at run-time.
-class SkipIfEqualZero : public StackObj {
- private:
-  MacroAssembler* _masm;
-  Label _label;
-
- public:
-   // 'Temp' is a temp register that this object can use (and trash).
-   explicit SkipIfEqualZero(MacroAssembler*, Register temp, const bool* flag_addr);
-   ~SkipIfEqualZero();
-};
-
 #endif // CPU_PPC_VM_MACROASSEMBLER_PPC_HPP