< prev index next >

src/hotspot/share/opto/macro.cpp

Print this page
*** 1655,11 ***
--- 1655,13 ---
    if (!mark_node->is_Con()) {
      transform_later(mark_node);
    }
    rawmem = make_store(control, rawmem, object, oopDesc::mark_offset_in_bytes(), mark_node, TypeX_X->basic_type());
  
+ #ifndef _LP64
    rawmem = make_store(control, rawmem, object, oopDesc::klass_offset_in_bytes(), klass_node, T_METADATA);
+ #endif
    int header_size = alloc->minimum_header_size();  // conservatively small
  
    // Array length
    if (length != NULL) {         // Arrays need length field
      rawmem = make_store(control, rawmem, object, arrayOopDesc::length_offset_in_bytes(), length, T_INT);

*** 2162,11 ***
    mem_phi->init_req(2, mem);
  
    // Make slow path call
    CallNode *call = make_slow_call((CallNode *) lock, OptoRuntime::complete_monitor_enter_Type(),
                                    OptoRuntime::complete_monitor_locking_Java(), NULL, slow_path,
!                                   obj, box, NULL);
  
    call->extract_projections(&_callprojs, false /*separate_io_proj*/, false /*do_asserts*/);
  
    // Slow path can only throw asynchronous exceptions, which are always
    // de-opted.  So the compiler thinks the slow-call can never throw an
--- 2164,11 ---
    mem_phi->init_req(2, mem);
  
    // Make slow path call
    CallNode *call = make_slow_call((CallNode *) lock, OptoRuntime::complete_monitor_enter_Type(),
                                    OptoRuntime::complete_monitor_locking_Java(), NULL, slow_path,
!                                   obj, NULL, NULL);
  
    call->extract_projections(&_callprojs, false /*separate_io_proj*/, false /*do_asserts*/);
  
    // Slow path can only throw asynchronous exceptions, which are always
    // de-opted.  So the compiler thinks the slow-call can never throw an

*** 2222,11 ***
    Node *slow_path = opt_bits_test(ctrl, region, 2, funlock, 0, 0);
    Node *thread = transform_later(new ThreadLocalNode());
  
    CallNode *call = make_slow_call((CallNode *) unlock, OptoRuntime::complete_monitor_exit_Type(),
                                    CAST_FROM_FN_PTR(address, SharedRuntime::complete_monitor_unlocking_C),
!                                   "complete_monitor_unlocking_C", slow_path, obj, box, thread);
  
    call->extract_projections(&_callprojs, false /*separate_io_proj*/, false /*do_asserts*/);
    assert(_callprojs.fallthrough_ioproj == NULL && _callprojs.catchall_ioproj == NULL &&
           _callprojs.catchall_memproj == NULL && _callprojs.catchall_catchproj == NULL, "Unexpected projection from Lock");
  
--- 2224,11 ---
    Node *slow_path = opt_bits_test(ctrl, region, 2, funlock, 0, 0);
    Node *thread = transform_later(new ThreadLocalNode());
  
    CallNode *call = make_slow_call((CallNode *) unlock, OptoRuntime::complete_monitor_exit_Type(),
                                    CAST_FROM_FN_PTR(address, SharedRuntime::complete_monitor_unlocking_C),
!                                   "complete_monitor_unlocking_C", slow_path, obj, thread, NULL);
  
    call->extract_projections(&_callprojs, false /*separate_io_proj*/, false /*do_asserts*/);
    assert(_callprojs.fallthrough_ioproj == NULL && _callprojs.catchall_ioproj == NULL &&
           _callprojs.catchall_memproj == NULL && _callprojs.catchall_catchproj == NULL, "Unexpected projection from Lock");
  
< prev index next >