1110 // they will be hidden by the following overriding declaration.
1111 using Assembler::movdl;
1112 using Assembler::movq;
1113 void movdl(XMMRegister dst, AddressLiteral src);
1114 void movq(XMMRegister dst, AddressLiteral src);
1115
1116 // Can push value or effective address
1117 void pushptr(AddressLiteral src);
1118
1119 void pushptr(Address src) { LP64_ONLY(pushq(src)) NOT_LP64(pushl(src)); }
1120 void popptr(Address src) { LP64_ONLY(popq(src)) NOT_LP64(popl(src)); }
1121
1122 void pushoop(jobject obj);
1123 void pushklass(Metadata* obj);
1124
1125 // sign extend as need a l to ptr sized element
1126 void movl2ptr(Register dst, Address src) { LP64_ONLY(movslq(dst, src)) NOT_LP64(movl(dst, src)); }
1127 void movl2ptr(Register dst, Register src) { LP64_ONLY(movslq(dst, src)) NOT_LP64(if (dst != src) movl(dst, src)); }
1128
1129 // C2 compiled method's prolog code.
1130 void verified_entry(int framesize, bool stack_bang, bool fp_mode_24b);
1131
1132 // clear memory of size 'cnt' qwords, starting at 'base'.
1133 void clear_mem(Register base, Register cnt, Register rtmp);
1134
1135 // IndexOf strings.
1136 // Small strings are loaded through stack if they cross page boundary.
1137 void string_indexof(Register str1, Register str2,
1138 Register cnt1, Register cnt2,
1139 int int_cnt2, Register result,
1140 XMMRegister vec, Register tmp);
1141
1142 // IndexOf for constant substrings with size >= 8 elements
1143 // which don't need to be loaded through stack.
1144 void string_indexofC8(Register str1, Register str2,
1145 Register cnt1, Register cnt2,
1146 int int_cnt2, Register result,
1147 XMMRegister vec, Register tmp);
1148
1149 // Smallest code: we don't need to load through stack,
1150 // check string tail.
|
1110 // they will be hidden by the following overriding declaration.
1111 using Assembler::movdl;
1112 using Assembler::movq;
1113 void movdl(XMMRegister dst, AddressLiteral src);
1114 void movq(XMMRegister dst, AddressLiteral src);
1115
1116 // Can push value or effective address
1117 void pushptr(AddressLiteral src);
1118
1119 void pushptr(Address src) { LP64_ONLY(pushq(src)) NOT_LP64(pushl(src)); }
1120 void popptr(Address src) { LP64_ONLY(popq(src)) NOT_LP64(popl(src)); }
1121
1122 void pushoop(jobject obj);
1123 void pushklass(Metadata* obj);
1124
1125 // sign extend as need a l to ptr sized element
1126 void movl2ptr(Register dst, Address src) { LP64_ONLY(movslq(dst, src)) NOT_LP64(movl(dst, src)); }
1127 void movl2ptr(Register dst, Register src) { LP64_ONLY(movslq(dst, src)) NOT_LP64(if (dst != src) movl(dst, src)); }
1128
1129 // C2 compiled method's prolog code.
1130 void verified_entry(int framesize, int stack_bang_size, bool fp_mode_24b);
1131
1132 // clear memory of size 'cnt' qwords, starting at 'base'.
1133 void clear_mem(Register base, Register cnt, Register rtmp);
1134
1135 // IndexOf strings.
1136 // Small strings are loaded through stack if they cross page boundary.
1137 void string_indexof(Register str1, Register str2,
1138 Register cnt1, Register cnt2,
1139 int int_cnt2, Register result,
1140 XMMRegister vec, Register tmp);
1141
1142 // IndexOf for constant substrings with size >= 8 elements
1143 // which don't need to be loaded through stack.
1144 void string_indexofC8(Register str1, Register str2,
1145 Register cnt1, Register cnt2,
1146 int int_cnt2, Register result,
1147 XMMRegister vec, Register tmp);
1148
1149 // Smallest code: we don't need to load through stack,
1150 // check string tail.
|