1 /* |
1 /* |
2 * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved. |
3 * Copyright (c) 2012, 2015 SAP SE. All rights reserved. |
3 * Copyright (c) 2012, 2016 SAP SE. All rights reserved. |
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
5 * |
5 * |
6 * This code is free software; you can redistribute it and/or modify it |
6 * This code is free software; you can redistribute it and/or modify it |
7 * under the terms of the GNU General Public License version 2 only, as |
7 * under the terms of the GNU General Public License version 2 only, as |
8 * published by the Free Software Foundation. |
8 * published by the Free Software Foundation. |
1544 |
1544 |
1545 // 8 bytes |
1545 // 8 bytes |
1546 inline void ldx( Register d, Register s1, Register s2); |
1546 inline void ldx( Register d, Register s1, Register s2); |
1547 inline void ld( Register d, int si16, Register s1); |
1547 inline void ld( Register d, int si16, Register s1); |
1548 inline void ldu( Register d, int si16, Register s1); |
1548 inline void ldu( Register d, int si16, Register s1); |
|
1549 |
|
1550 // For convenience. Load pointer into d from b+s1. |
|
1551 inline void ld_ptr(Register d, int b, Register s1); |
|
1552 DEBUG_ONLY(inline void ld_ptr(Register d, ByteSize b, Register s1);) |
1549 |
1553 |
1550 // PPC 1, section 3.3.3 Fixed-Point Store Instructions |
1554 // PPC 1, section 3.3.3 Fixed-Point Store Instructions |
1551 inline void stwx( Register d, Register s1, Register s2); |
1555 inline void stwx( Register d, Register s1, Register s2); |
1552 inline void stw( Register d, int si16, Register s1); |
1556 inline void stw( Register d, int si16, Register s1); |
1553 inline void stwu( Register d, int si16, Register s1); |
1557 inline void stwu( Register d, int si16, Register s1); |
2213 void sth( Register d, RegisterOrConstant roc, Register s1 = noreg, Register tmp = noreg); |
2217 void sth( Register d, RegisterOrConstant roc, Register s1 = noreg, Register tmp = noreg); |
2214 void stb( Register d, RegisterOrConstant roc, Register s1 = noreg, Register tmp = noreg); |
2218 void stb( Register d, RegisterOrConstant roc, Register s1 = noreg, Register tmp = noreg); |
2215 void add( Register d, RegisterOrConstant roc, Register s1); |
2219 void add( Register d, RegisterOrConstant roc, Register s1); |
2216 void subf(Register d, RegisterOrConstant roc, Register s1); |
2220 void subf(Register d, RegisterOrConstant roc, Register s1); |
2217 void cmpd(ConditionRegister d, RegisterOrConstant roc, Register s1); |
2221 void cmpd(ConditionRegister d, RegisterOrConstant roc, Register s1); |
2218 |
2222 // Load pointer d from s1+roc. |
|
2223 void ld_ptr(Register d, RegisterOrConstant roc, Register s1 = noreg) { ld(d, roc, s1); } |
2219 |
2224 |
2220 // Emit several instructions to load a 64 bit constant. This issues a fixed |
2225 // Emit several instructions to load a 64 bit constant. This issues a fixed |
2221 // instruction pattern so that the constant can be patched later on. |
2226 // instruction pattern so that the constant can be patched later on. |
2222 enum { |
2227 enum { |
2223 load_const_size = 5 * BytesPerInstWord |
2228 load_const_size = 5 * BytesPerInstWord |