src/os_cpu/linux_x86/vm/assembler_linux_x86_32.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6705887 Sdiff src/os_cpu/linux_x86/vm

src/os_cpu/linux_x86/vm/assembler_linux_x86_32.cpp

Print this page




  23  */
  24 
  25 #include "incls/_precompiled.incl"
  26 #include "incls/_assembler_linux_x86_32.cpp.incl"
  27 
  28 void MacroAssembler::int3() {
  29   call(RuntimeAddress(CAST_FROM_FN_PTR(address, os::breakpoint)));
  30 }
  31 
  32 void MacroAssembler::get_thread(Register thread) {
  33   movl(thread, rsp);
  34   shrl(thread, PAGE_SHIFT);
  35 
  36   ExternalAddress tls_base((address)ThreadLocalStorage::sp_map_addr());
  37   Address index(noreg, thread, Address::times_4);
  38   ArrayAddress tls(tls_base, index);
  39 
  40   movptr(thread, tls);
  41 }
  42 
  43 bool MacroAssembler::needs_explicit_null_check(int offset) {
  44   // Linux kernel guarantees that the first page is always unmapped. Don't
  45   // assume anything more than that.
  46   bool offset_in_first_page =   0 <= offset  &&  offset < os::vm_page_size();
  47   return !offset_in_first_page;
  48 }


  23  */
  24 
  25 #include "incls/_precompiled.incl"
  26 #include "incls/_assembler_linux_x86_32.cpp.incl"
  27 
  28 void MacroAssembler::int3() {
  29   call(RuntimeAddress(CAST_FROM_FN_PTR(address, os::breakpoint)));
  30 }
  31 
  32 void MacroAssembler::get_thread(Register thread) {
  33   movl(thread, rsp);
  34   shrl(thread, PAGE_SHIFT);
  35 
  36   ExternalAddress tls_base((address)ThreadLocalStorage::sp_map_addr());
  37   Address index(noreg, thread, Address::times_4);
  38   ArrayAddress tls(tls_base, index);
  39 
  40   movptr(thread, tls);
  41 }
  42 
  43 bool MacroAssembler::needs_explicit_null_check(intptr_t offset) {
  44   // Linux kernel guarantees that the first page is always unmapped. Don't
  45   // assume anything more than that.
  46   bool offset_in_first_page =   0 <= offset  &&  offset < os::vm_page_size();
  47   return !offset_in_first_page;
  48 }
src/os_cpu/linux_x86/vm/assembler_linux_x86_32.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File