comparison src/cpu/sparc/vm/assembler_sparc.hpp @ 4873:0382d2b469b2

7013347: allow crypto functions to be called inline to enhance performance Reviewed-by: kvn
author never
date Wed, 01 Feb 2012 16:57:08 -0800
parents 6729bbc1fcd6
children 8a48c2906f91
comparison
equal deleted inserted replaced
4872:aa3d708d67c4 4873:0382d2b469b2
1 /* 1 /*
2 * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
2132 inline void mov( int simm13a, Register d) { or3( G0, simm13a, d); } 2132 inline void mov( int simm13a, Register d) { or3( G0, simm13a, d); }
2133 2133
2134 // address pseudos: make these names unlike instruction names to avoid confusion 2134 // address pseudos: make these names unlike instruction names to avoid confusion
2135 inline intptr_t load_pc_address( Register reg, int bytes_to_skip ); 2135 inline intptr_t load_pc_address( Register reg, int bytes_to_skip );
2136 inline void load_contents(const AddressLiteral& addrlit, Register d, int offset = 0); 2136 inline void load_contents(const AddressLiteral& addrlit, Register d, int offset = 0);
2137 inline void load_bool_contents(const AddressLiteral& addrlit, Register d, int offset = 0);
2137 inline void load_ptr_contents(const AddressLiteral& addrlit, Register d, int offset = 0); 2138 inline void load_ptr_contents(const AddressLiteral& addrlit, Register d, int offset = 0);
2138 inline void store_contents(Register s, const AddressLiteral& addrlit, Register temp, int offset = 0); 2139 inline void store_contents(Register s, const AddressLiteral& addrlit, Register temp, int offset = 0);
2139 inline void store_ptr_contents(Register s, const AddressLiteral& addrlit, Register temp, int offset = 0); 2140 inline void store_ptr_contents(Register s, const AddressLiteral& addrlit, Register temp, int offset = 0);
2140 inline void jumpl_to(const AddressLiteral& addrlit, Register temp, Register d, int offset = 0); 2141 inline void jumpl_to(const AddressLiteral& addrlit, Register temp, Register d, int offset = 0);
2141 inline void jump_to(const AddressLiteral& addrlit, Register temp, int offset = 0); 2142 inline void jump_to(const AddressLiteral& addrlit, Register temp, int offset = 0);
2247 // Manipulation of C++ bools 2248 // Manipulation of C++ bools
2248 // These are idioms to flag the need for care with accessing bools but on 2249 // These are idioms to flag the need for care with accessing bools but on
2249 // this platform we assume byte size 2250 // this platform we assume byte size
2250 2251
2251 inline void stbool(Register d, const Address& a) { stb(d, a); } 2252 inline void stbool(Register d, const Address& a) { stb(d, a); }
2252 inline void ldbool(const Address& a, Register d) { ldsb(a, d); } 2253 inline void ldbool(const Address& a, Register d) { ldub(a, d); }
2253 inline void movbool( bool boolconst, Register d) { mov( (int) boolconst, d); } 2254 inline void movbool( bool boolconst, Register d) { mov( (int) boolconst, d); }
2254 2255
2255 // klass oop manipulations if compressed 2256 // klass oop manipulations if compressed
2256 void load_klass(Register src_oop, Register klass); 2257 void load_klass(Register src_oop, Register klass);
2257 void store_klass(Register klass, Register dst_oop); 2258 void store_klass(Register klass, Register dst_oop);