Archived
1
0

add sign extension for immediate mode add (imm5)

this part of code converts 5bit numbers to 8bit numbers in case of imm5 type of add, preserving sign when negative
This commit is contained in:
Erick
2022-02-01 00:20:03 +01:00
parent f7650aaa2e
commit ae4e0bb5ef
+8 -3
View File
@@ -96,9 +96,14 @@ enum flags {
FL_N = 1 << 2, // Negative
};
/* sign extension for immediate add mode (imm5[0:4])
transforms 5bit number to 8bit number preserving sign*/
uint16_t sign_extend(uint16_t bin, int bit_count) {
if((bin >> (bit_count - 1)) & 1) {
bin |= (0xFFFF << bit_count);
}
return bin;
}
/* main loop */
int main(int argc, const char* argv[]) {