hotspot/src/cpu/aarch64/vm/c1_Runtime1_aarch64.cpp
changeset 43449 21041ea7c0fe
parent 42871 c89e1f0a084e
equal deleted inserted replaced
43448:45b30ca7f9b8 43449:21041ea7c0fe
     1 /*
     1 /*
     2  * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
     3  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
     3  * Copyright (c) 2014, Red Hat Inc. All rights reserved.
     4  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     5  *
     5  *
     6  * This code is free software; you can redistribute it and/or modify it
     6  * This code is free software; you can redistribute it and/or modify it
     7  * under the terms of the GNU General Public License version 2 only, as
     7  * under the terms of the GNU General Public License version 2 only, as
  1177                                         SATBMarkQueue::byte_offset_of_buf()));
  1177                                         SATBMarkQueue::byte_offset_of_buf()));
  1178 
  1178 
  1179         Label done;
  1179         Label done;
  1180         Label runtime;
  1180         Label runtime;
  1181 
  1181 
       
  1182         // Is marking still active?
       
  1183         if (in_bytes(SATBMarkQueue::byte_width_of_active()) == 4) {
       
  1184           __ ldrw(tmp, in_progress);
       
  1185         } else {
       
  1186           assert(in_bytes(SATBMarkQueue::byte_width_of_active()) == 1, "Assumption");
       
  1187           __ ldrb(tmp, in_progress);
       
  1188         }
       
  1189         __ cbzw(tmp, done);
       
  1190 
  1182         // Can we store original value in the thread's buffer?
  1191         // Can we store original value in the thread's buffer?
  1183         __ ldr(tmp, queue_index);
  1192         __ ldr(tmp, queue_index);
  1184         __ cbz(tmp, runtime);
  1193         __ cbz(tmp, runtime);
  1185 
  1194 
  1186         __ sub(tmp, tmp, wordSize);
  1195         __ sub(tmp, tmp, wordSize);