equal
deleted
inserted
replaced
534 #define RELOC_DISP32 Assembler::disp32_operand |
534 #define RELOC_DISP32 Assembler::disp32_operand |
535 |
535 |
536 #define __ _masm. |
536 #define __ _masm. |
537 |
537 |
538 static int clear_avx_size() { |
538 static int clear_avx_size() { |
539 if(UseAVX > 2) { |
539 return (Compile::current()->max_vector_size() > 16) ? 3 : 0; // vzeroupper |
540 return 0; // vzeroupper is ignored |
|
541 } else { |
|
542 return (Compile::current()->max_vector_size() > 16) ? 3 : 0; // vzeroupper |
|
543 } |
|
544 } |
540 } |
545 |
541 |
546 // !!!!! Special hack to get all types of calls to specify the byte offset |
542 // !!!!! Special hack to get all types of calls to specify the byte offset |
547 // from the start of the call to the point where the return address |
543 // from the start of the call to the point where the return address |
548 // will point. |
544 // will point. |
869 st->print("\n\t"); |
865 st->print("\n\t"); |
870 st->print("movq rbp, rsp\t# Save the caller's SP into rbp"); |
866 st->print("movq rbp, rsp\t# Save the caller's SP into rbp"); |
871 if (framesize > 0) { |
867 if (framesize > 0) { |
872 st->print("\n\t"); |
868 st->print("\n\t"); |
873 st->print("addq rbp, #%d", framesize); |
869 st->print("addq rbp, #%d", framesize); |
874 } |
870 } |
875 } |
871 } |
876 } |
872 } |
877 |
873 |
878 if (VerifyStackAtCalls) { |
874 if (VerifyStackAtCalls) { |
879 st->print("\n\t"); |
875 st->print("\n\t"); |