comparison src/share/vm/runtime/interfaceSupport.hpp @ 5903:da4be62fb889

7147740: add assertions to check stack alignment on VM entry from generated code (x64) Summary: check stack alignment on VM entry on x64. Reviewed-by: kvn, never
author roland
date Mon, 27 Feb 2012 09:17:44 +0100
parents a6eef545f1a2
children b9a9ed0f8eeb
comparison
equal deleted inserted replaced
5902:c7987cbaf2ca 5903:da4be62fb889
434 // LEAF routines do not lock, GC or throw exceptions 434 // LEAF routines do not lock, GC or throw exceptions
435 435
436 #define VM_LEAF_BASE(result_type, header) \ 436 #define VM_LEAF_BASE(result_type, header) \
437 TRACE_CALL(result_type, header) \ 437 TRACE_CALL(result_type, header) \
438 debug_only(NoHandleMark __hm;) \ 438 debug_only(NoHandleMark __hm;) \
439 os::verify_stack_alignment(); \
439 /* begin of body */ 440 /* begin of body */
440 441
441 442
442 // ENTRY routines may lock, GC and throw exceptions 443 // ENTRY routines may lock, GC and throw exceptions
443 444
444 #define VM_ENTRY_BASE(result_type, header, thread) \ 445 #define VM_ENTRY_BASE(result_type, header, thread) \
445 TRACE_CALL(result_type, header) \ 446 TRACE_CALL(result_type, header) \
446 HandleMarkCleaner __hm(thread); \ 447 HandleMarkCleaner __hm(thread); \
447 Thread* THREAD = thread; \ 448 Thread* THREAD = thread; \
449 os::verify_stack_alignment(); \
448 /* begin of body */ 450 /* begin of body */
449 451
450 452
451 // QUICK_ENTRY routines behave like ENTRY but without a handle mark 453 // QUICK_ENTRY routines behave like ENTRY but without a handle mark
452 454
453 #define VM_QUICK_ENTRY_BASE(result_type, header, thread) \ 455 #define VM_QUICK_ENTRY_BASE(result_type, header, thread) \
454 TRACE_CALL(result_type, header) \ 456 TRACE_CALL(result_type, header) \
455 debug_only(NoHandleMark __hm;) \ 457 debug_only(NoHandleMark __hm;) \
456 Thread* THREAD = thread; \ 458 Thread* THREAD = thread; \
459 os::verify_stack_alignment(); \
457 /* begin of body */ 460 /* begin of body */
458 461
459 462
460 // Definitions for IRT (Interpreter Runtime) 463 // Definitions for IRT (Interpreter Runtime)
461 // (thread is an argument passed in to all these routines) 464 // (thread is an argument passed in to all these routines)