Fixed & Improved Makefile, Made V86 GPF handler not directly dereference

a null pointer - due to optimization breaking.
This commit is contained in:
Lucia Ceionia
2022-09-16 15:50:58 -05:00
parent 880118e7b4
commit 192d4f04ed
7 changed files with 40 additions and 33 deletions

View File

@@ -1,20 +1,24 @@
#include "print.h"
__attribute((__always_inline__))
__attribute((__no_caller_saved_registers__))
char nibbleToHex(uint8_t n) {
return n > 9 ? (n - 10) + 'A' : n + '0';
}
__attribute((__always_inline__))
__attribute((__no_caller_saved_registers__))
void printByte(uint8_t v, uint16_t *buff) {
*(char *)&buff[0] = nibbleToHex((v >> 4) & 0xF);
*(char *)&buff[1] = nibbleToHex(v & 0xF);
}
__attribute((__always_inline__))
__attribute((__no_caller_saved_registers__))
void printWord(uint16_t v, uint16_t *buff) {
printByte(v >> 8, buff);
printByte(v, &buff[2]);
}
__attribute((__always_inline__))
__attribute((__no_caller_saved_registers__))
void printDword(uint32_t v, uint16_t *buff) {
printWord(v >> 16, buff);
printWord(v, &buff[4]);