It's not always obvious what assembly will be generated after expanding all the macros of the HotSpot meta-assembly system. The following code shows how to print the actual code generated by HotSpot.
// #define DMS_DEBUG #ifdef DMS_DEBUG address barrier_start = masm->code()->insts_end(); #endif __ block_comment("nmethod_barrier begin"); __ ldr_label(tmp0, guard); ... __ bind(skip); __ block_comment("nmethod_barrier end"); #ifdef DMS_DEBUG address barrier_end = masm->code()->insts_end(); tty->print_cr("DMS: barier %p %p bytes: %d", barrier_start, barrier_end, barrier_end - barrier_start); // masm->code()->print(); masm->code()->decode(); #endif