src/cpu/x86/vm/macroAssembler_x86.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/cpu/x86/vm

src/cpu/x86/vm/macroAssembler_x86.hpp

Print this page
rev 6086 : 8032410: compiler/uncommontrap/TestStackBangRbp.java times out on Solaris-Sparc V9
Summary: make compiled code bang the stack by the worst case size of the interpreter frame at deoptimization points.
Reviewed-by:


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.


src/cpu/x86/vm/macroAssembler_x86.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File