< prev index next >

src/hotspot/cpu/x86/c1_Runtime1_x86.cpp

Print this page
rev 51052 : [mq]: eden

@@ -1011,11 +1011,14 @@
         } else {
           assert(id == fast_new_instance_init_check_id, "bad StubID");
           __ set_info("fast new_instance init check", dont_gc_arguments);
         }
 
-        if ((id == fast_new_instance_id || id == fast_new_instance_init_check_id) && UseTLAB
+        // If TLAB is disabled, see if there is support for inlining contiguous
+        // allocations.
+        // Otherwise, just go to the slow path.
+        if ((id == fast_new_instance_id || id == fast_new_instance_init_check_id) && !UseTLAB
             && Universe::heap()->supports_inline_contig_alloc()) {
           Label slow_path;
           Register obj_size = rcx;
           Register t1       = rbx;
           Register t2       = rsi;

@@ -1044,17 +1047,13 @@
             __ should_not_reach_here();
             __ bind(ok);
           }
 #endif // ASSERT
 
-          // if we got here then the TLAB allocation failed, so try
-          // refilling the TLAB or allocating directly from eden.
-          Label retry_tlab, try_eden;
           const Register thread = NOT_LP64(rdi) LP64_ONLY(r15_thread);
           NOT_LP64(__ get_thread(thread));
 
-          __ bind(try_eden);
           // get the instance size (size is postive so movl is fine for 64bit)
           __ movl(obj_size, Address(klass, Klass::layout_helper_offset()));
 
           __ eden_allocate(thread, obj, obj_size, 0, t1, slow_path);
 

@@ -1131,13 +1130,14 @@
           __ should_not_reach_here();
           __ bind(ok);
         }
 #endif // ASSERT
 
-        // If we got here, the TLAB allocation failed, so try allocating from
-        // eden if inline contiguous allocations are supported.
-        if (UseTLAB && Universe::heap()->supports_inline_contig_alloc()) {
+        // If TLAB is disabled, see if there is support for inlining contiguous
+        // allocations.
+        // Otherwise, just go to the slow path.
+        if (!UseTLAB && Universe::heap()->supports_inline_contig_alloc()) {
           Register arr_size = rsi;
           Register t1       = rcx;  // must be rcx for use as shift count
           Register t2       = rdi;
           Label slow_path;
 
< prev index next >