summaryrefslogtreecommitdiffhomepage
path: root/dev/LibCompiler/Backend
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-05-23 15:39:40 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-05-23 15:39:58 +0200
commitedcec15a728f2f8e4930dc0565f56a274c3fc0c1 (patch)
treea16f71a0a6bd1f16e25f3866b3c56a3ce7551a26 /dev/LibCompiler/Backend
parent2eed4954c762bb8050e40798c3d9f1d3998324d1 (diff)
bug: figuring out why a segfault occurs after we exit main.
ubsan: /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:926:60: runtime error: applying non-zero offset 18446744073709551536 to null pointer SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:926:60 in drv: SIGSEGV: Please report this on the GitHub issues page why? - A bogus iterator gets passed to ::destroy inside the method. next: - Debug that inside lldb. Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/LibCompiler/Backend')
-rw-r--r--dev/LibCompiler/Backend/32x0.h4
-rw-r--r--dev/LibCompiler/Backend/64x0.h9
2 files changed, 6 insertions, 7 deletions
diff --git a/dev/LibCompiler/Backend/32x0.h b/dev/LibCompiler/Backend/32x0.h
index 240d885..2857a38 100644
--- a/dev/LibCompiler/Backend/32x0.h
+++ b/dev/LibCompiler/Backend/32x0.h
@@ -43,9 +43,9 @@ inline std::vector<CpuCode32x0> kOpcodes32x0 = {
LC_ASM_OPCODE("psh", 0b0111011, 0b000, kAsmImmediate) // push to sp (2C)
LC_ASM_OPCODE("pop", 0b0111011, 0b001, kAsmImmediate) // pop from sp. (1C)
LC_ASM_OPCODE("lea", 0b0111011, 0b010,
- kAsmImmediate) // setup stack and call, store address to CR (1C).
+ kAsmImmediate) // setup stack and call, store address to CR (1C).
LC_ASM_OPCODE("ret", 0b0111011, 0b110,
- kAsmImmediate) // return from procedure (2C).
+ kAsmImmediate) // return from procedure (2C).
LC_ASM_OPCODE("uc", 0b0111111, 0b000, kAsmSyscall) // user call (1C)
LC_ASM_OPCODE("kc", 0b0111111, 0b001, kAsmSyscall) // kernel call (1C)
LC_ASM_OPCODE("int", 0b0111111, 0b010, kAsmSyscall) // raise interrupt (1C)
diff --git a/dev/LibCompiler/Backend/64x0.h b/dev/LibCompiler/Backend/64x0.h
index f7f0332..c68b6cf 100644
--- a/dev/LibCompiler/Backend/64x0.h
+++ b/dev/LibCompiler/Backend/64x0.h
@@ -35,9 +35,9 @@ inline std::vector<CpuOpcode64x0> kOpcodes64x0 = {
LC_ASM_OPCODE("nop", 0b0000000, 0b0000000, kAsmNoArgs) // no-operation.
LC_ASM_OPCODE("np", 0b0000000, 0b0000000, kAsmNoArgs) // no-operation.
LC_ASM_OPCODE("jlr", 0b1110011, 0b0000111,
- kAsmJump) // jump to linked return register
+ kAsmJump) // jump to linked return register
LC_ASM_OPCODE("jrl", 0b1110011, 0b0001111,
- kAsmJump) // jump from return register.
+ kAsmJump) // jump from return register.
LC_ASM_OPCODE("mv", 0b0100011, 0b101, kAsmRegToReg) LC_ASM_OPCODE(
"bg", 0b1100111, 0b111, kAsmRegToReg) LC_ASM_OPCODE("bl", 0b1100111, 0b011, kAsmRegToReg)
LC_ASM_OPCODE("beq", 0b1100111, 0b000, kAsmRegToReg)
@@ -52,9 +52,8 @@ inline std::vector<CpuOpcode64x0> kOpcodes64x0 = {
LC_ASM_OPCODE("add", 0b0101011, 0b100, kAsmImmediate)
LC_ASM_OPCODE("sub", 0b0101011, 0b101, kAsmImmediate)
// add/sub with carry flag
- LC_ASM_OPCODE("addc", 0b0101011, 0b110, kAsmImmediate)
- LC_ASM_OPCODE("subc", 0b0101011, 0b111, kAsmImmediate)
- LC_ASM_OPCODE("sc", 0b1110011, 0b00, kAsmSyscall)};
+ LC_ASM_OPCODE("addc", 0b0101011, 0b110, kAsmImmediate) LC_ASM_OPCODE(
+ "subc", 0b0101011, 0b111, kAsmImmediate) LC_ASM_OPCODE("sc", 0b1110011, 0b00, kAsmSyscall)};
// \brief 64x0 register prefix
// example: r32, r0