ocpu: Add XOR instruction
This commit is contained in:
parent
c2d209bbf2
commit
84305fe0fb
|
@ -376,7 +376,7 @@ void ocpu_execute() {
|
|||
value = match_register(reg) | ocpu_fetch_byte();
|
||||
write_register(reg, value, 0);
|
||||
} else {
|
||||
word_value = match_register(reg) & ocpu_fetch_byte();
|
||||
word_value = match_register(reg) | ocpu_fetch_byte();
|
||||
write_register(reg, 0, word_value);
|
||||
}
|
||||
break;
|
||||
|
@ -386,7 +386,27 @@ void ocpu_execute() {
|
|||
value = match_register(reg) | match_register(ocpu_fetch_byte());
|
||||
write_register(reg, value, 0);
|
||||
} else {
|
||||
word_value = match_register(reg) & match_register(ocpu_fetch_byte());
|
||||
word_value = match_register(reg) | match_register(ocpu_fetch_byte());
|
||||
write_register(reg, 0, word_value);
|
||||
}
|
||||
break;
|
||||
case INS_XOR_IM:
|
||||
reg = ocpu_fetch_byte();
|
||||
if (!is_word_reg(reg)) {
|
||||
value = match_register(reg) ^ ocpu_fetch_byte();
|
||||
write_register(reg, value, 0);
|
||||
} else {
|
||||
word_value = match_register(reg) ^ ocpu_fetch_byte();
|
||||
write_register(reg, 0, word_value);
|
||||
}
|
||||
break;
|
||||
case INS_XOR_REG:
|
||||
reg = ocpu_fetch_byte();
|
||||
if (!is_word_reg(reg)) {
|
||||
value = match_register(reg) ^ match_register(ocpu_fetch_byte());
|
||||
write_register(reg, value, 0);
|
||||
} else {
|
||||
word_value = match_register(reg) ^ match_register(ocpu_fetch_byte());
|
||||
write_register(reg, 0, word_value);
|
||||
}
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue