< prev index next >
src/hotspot/cpu/ppc/disassembler_ppc.cpp
Print this page
rev 59326 : 8244949: [PPC64] Reengineer assembler stop function
Reviewed-by:
*** 162,171 ****
--- 162,173 ----
// Align at next tab position.
const uint tabspacing = 8;
const uint pos = st->position();
const uint aligned_pos = ((pos+tabspacing-1)/tabspacing)*tabspacing;
+ int stop_type = -1;
+
if (MacroAssembler::is_bcxx(instruction)) {
st->print(",bo=0b");
print_instruction_bits(st, instruction, 6, 10);
print_decoded_bo_bits(st, instruction, 10);
} else if (MacroAssembler::is_bctr(instruction) ||
*** 178,199 ****
st->print(",bh=0b");
print_instruction_bits(st, instruction, 19, 20);
print_decoded_bh_bits(st, instruction, 20,
!(MacroAssembler::is_bctr(instruction) ||
MacroAssembler::is_bctrl(instruction)));
- } else if (MacroAssembler::is_trap_should_not_reach_here(instruction)) {
- st->fill_to(aligned_pos + tabspacing);
- st->print(";trap: should not reach here");
} else if (MacroAssembler::is_trap_null_check(instruction)) {
st->fill_to(aligned_pos + tabspacing);
st->print(";trap: null check");
} else if (MacroAssembler::is_trap_range_check(instruction)) {
st->fill_to(aligned_pos + tabspacing);
st->print(";trap: range check");
} else if (MacroAssembler::is_trap_ic_miss_check(instruction)) {
st->fill_to(aligned_pos + tabspacing);
st->print(";trap: ic miss check");
! } else if (MacroAssembler::is_trap_zombie_not_entrant(instruction)) {
st->fill_to(aligned_pos + tabspacing);
! st->print(";trap: zombie");
}
}
--- 180,198 ----
st->print(",bh=0b");
print_instruction_bits(st, instruction, 19, 20);
print_decoded_bh_bits(st, instruction, 20,
!(MacroAssembler::is_bctr(instruction) ||
MacroAssembler::is_bctrl(instruction)));
} else if (MacroAssembler::is_trap_null_check(instruction)) {
st->fill_to(aligned_pos + tabspacing);
st->print(";trap: null check");
} else if (MacroAssembler::is_trap_range_check(instruction)) {
st->fill_to(aligned_pos + tabspacing);
st->print(";trap: range check");
} else if (MacroAssembler::is_trap_ic_miss_check(instruction)) {
st->fill_to(aligned_pos + tabspacing);
st->print(";trap: ic miss check");
! } else if ((stop_type = MacroAssembler::tdi_get_si16(instruction, Assembler::traptoUnconditional, 0)) != -1) {
st->fill_to(aligned_pos + tabspacing);
! st->print(";trap: stop type %d", stop_type);
}
}
< prev index next >