Print the code emitted by Hotspot assembler
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