Mercurial > hg > truffle
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