3231 Node* buffer_adr = __ AddP(no_base, thread, __ ConX(buffer_offset)); |
3231 Node* buffer_adr = __ AddP(no_base, thread, __ ConX(buffer_offset)); |
3232 Node* index_adr = __ AddP(no_base, thread, __ ConX(index_offset)); |
3232 Node* index_adr = __ AddP(no_base, thread, __ ConX(index_offset)); |
3233 |
3233 |
3234 // Now some of the values |
3234 // Now some of the values |
3235 |
3235 |
3236 Node* marking = __ load(no_ctrl, marking_adr, TypeInt::INT, active_type, Compile::AliasIdxRaw); |
3236 Node* marking = __ load(__ ctrl(), marking_adr, TypeInt::INT, active_type, Compile::AliasIdxRaw); |
3237 Node* index = __ load(no_ctrl, index_adr, TypeInt::INT, T_INT, Compile::AliasIdxRaw); |
|
3238 Node* buffer = __ load(no_ctrl, buffer_adr, TypeRawPtr::NOTNULL, T_ADDRESS, Compile::AliasIdxRaw); |
|
3239 |
3237 |
3240 // if (!marking) |
3238 // if (!marking) |
3241 __ if_then(marking, BoolTest::ne, zero); { |
3239 __ if_then(marking, BoolTest::ne, zero); { |
|
3240 Node* index = __ load(__ ctrl(), index_adr, TypeInt::INT, T_INT, Compile::AliasIdxRaw); |
3242 |
3241 |
3243 const Type* t1 = adr->bottom_type(); |
3242 const Type* t1 = adr->bottom_type(); |
3244 const Type* t2 = val->bottom_type(); |
3243 const Type* t2 = val->bottom_type(); |
3245 |
3244 |
3246 Node* orig = __ load(no_ctrl, adr, val_type, bt, alias_idx); |
3245 Node* orig = __ load(no_ctrl, adr, val_type, bt, alias_idx); |
3247 // if (orig != NULL) |
3246 // if (orig != NULL) |
3248 __ if_then(orig, BoolTest::ne, null()); { |
3247 __ if_then(orig, BoolTest::ne, null()); { |
|
3248 Node* buffer = __ load(__ ctrl(), buffer_adr, TypeRawPtr::NOTNULL, T_ADDRESS, Compile::AliasIdxRaw); |
3249 |
3249 |
3250 // load original value |
3250 // load original value |
3251 // alias_idx correct?? |
3251 // alias_idx correct?? |
3252 |
3252 |
3253 // is the queue for this thread full? |
3253 // is the queue for this thread full? |