Mercurial > hg > graal-jvmci-8
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); |