Bug 1156386 - UXTH instruction. r=dougc

This commit is contained in:
Lars T Hansen 2015-04-21 06:39:12 +02:00
Родитель 5dd903a2e0
Коммит 555cb57d4d
1 изменённых файлов: 13 добавлений и 0 удалений

Просмотреть файл

@ -3108,6 +3108,19 @@ Simulator::decodeType3(SimInstruction* instr)
instr->bits(11, 10));
set_register(rd, rn_val + (rm_val & 0xFF));
}
} else if ((instr->bit(20) == 1) && (instr->bits(9, 6) == 1)) {
if (instr->bits(19, 16) == 0xF) {
// Uxth.
uint32_t rm_val = rotateBytes(get_register(instr->rmValue()),
instr->bits(11, 10));
set_register(rd, (rm_val & 0xFFFF));
} else {
// Uxtah.
uint32_t rn_val = get_register(rn);
uint32_t rm_val = rotateBytes(get_register(instr->rmValue()),
instr->bits(11, 10));
set_register(rd, rn_val + (rm_val & 0xFFFF));
}
} else {
MOZ_CRASH();
}