diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-05-23 15:39:40 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-05-23 15:39:58 +0200 |
| commit | edcec15a728f2f8e4930dc0565f56a274c3fc0c1 (patch) | |
| tree | a16f71a0a6bd1f16e25f3866b3c56a3ce7551a26 /dev/LibCompiler/Backend | |
| parent | 2eed4954c762bb8050e40798c3d9f1d3998324d1 (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.h | 4 | ||||
| -rw-r--r-- | dev/LibCompiler/Backend/64x0.h | 9 |
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 |
