< prev index next >

src/cpu/x86/vm/macroAssembler_x86.hpp

Print this page




1267   using Assembler::movq;
1268   void movdl(XMMRegister dst, AddressLiteral src);
1269   void movq(XMMRegister dst, AddressLiteral src);
1270 
1271   // Can push value or effective address
1272   void pushptr(AddressLiteral src);
1273 
1274   void pushptr(Address src) { LP64_ONLY(pushq(src)) NOT_LP64(pushl(src)); }
1275   void popptr(Address src) { LP64_ONLY(popq(src)) NOT_LP64(popl(src)); }
1276 
1277   void pushoop(jobject obj);
1278   void pushklass(Metadata* obj);
1279 
1280   // sign extend as need a l to ptr sized element
1281   void movl2ptr(Register dst, Address src) { LP64_ONLY(movslq(dst, src)) NOT_LP64(movl(dst, src)); }
1282   void movl2ptr(Register dst, Register src) { LP64_ONLY(movslq(dst, src)) NOT_LP64(if (dst != src) movl(dst, src)); }
1283 
1284   // C2 compiled method's prolog code.
1285   void verified_entry(int framesize, int stack_bang_size, bool fp_mode_24b);
1286 
1287   // clear memory of size 'cnt' qwords, starting at 'base'.
1288   void clear_mem(Register base, Register cnt, Register rtmp);

1289 
1290 #ifdef COMPILER2
1291   void string_indexof_char(Register str1, Register cnt1, Register ch, Register result,
1292                            XMMRegister vec1, XMMRegister vec2, XMMRegister vec3, Register tmp);
1293 
1294   // IndexOf strings.
1295   // Small strings are loaded through stack if they cross page boundary.
1296   void string_indexof(Register str1, Register str2,
1297                       Register cnt1, Register cnt2,
1298                       int int_cnt2,  Register result,
1299                       XMMRegister vec, Register tmp,
1300                       int ae);
1301 
1302   // IndexOf for constant substrings with size >= 8 elements
1303   // which don't need to be loaded through stack.
1304   void string_indexofC8(Register str1, Register str2,
1305                       Register cnt1, Register cnt2,
1306                       int int_cnt2,  Register result,
1307                       XMMRegister vec, Register tmp,
1308                       int ae);




1267   using Assembler::movq;
1268   void movdl(XMMRegister dst, AddressLiteral src);
1269   void movq(XMMRegister dst, AddressLiteral src);
1270 
1271   // Can push value or effective address
1272   void pushptr(AddressLiteral src);
1273 
1274   void pushptr(Address src) { LP64_ONLY(pushq(src)) NOT_LP64(pushl(src)); }
1275   void popptr(Address src) { LP64_ONLY(popq(src)) NOT_LP64(popl(src)); }
1276 
1277   void pushoop(jobject obj);
1278   void pushklass(Metadata* obj);
1279 
1280   // sign extend as need a l to ptr sized element
1281   void movl2ptr(Register dst, Address src) { LP64_ONLY(movslq(dst, src)) NOT_LP64(movl(dst, src)); }
1282   void movl2ptr(Register dst, Register src) { LP64_ONLY(movslq(dst, src)) NOT_LP64(if (dst != src) movl(dst, src)); }
1283 
1284   // C2 compiled method's prolog code.
1285   void verified_entry(int framesize, int stack_bang_size, bool fp_mode_24b);
1286 
1287   // clear memory of size 'cnt' qwords, starting at 'base';
1288   // if 'is_large' is set, do not try to produce short loop
1289   void clear_mem(Register base, Register cnt, Register rtmp, bool is_large);
1290 
1291 #ifdef COMPILER2
1292   void string_indexof_char(Register str1, Register cnt1, Register ch, Register result,
1293                            XMMRegister vec1, XMMRegister vec2, XMMRegister vec3, Register tmp);
1294 
1295   // IndexOf strings.
1296   // Small strings are loaded through stack if they cross page boundary.
1297   void string_indexof(Register str1, Register str2,
1298                       Register cnt1, Register cnt2,
1299                       int int_cnt2,  Register result,
1300                       XMMRegister vec, Register tmp,
1301                       int ae);
1302 
1303   // IndexOf for constant substrings with size >= 8 elements
1304   // which don't need to be loaded through stack.
1305   void string_indexofC8(Register str1, Register str2,
1306                       Register cnt1, Register cnt2,
1307                       int int_cnt2,  Register result,
1308                       XMMRegister vec, Register tmp,
1309                       int ae);


< prev index next >