diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-01-13 16:08:44 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-01-13 16:09:45 +0100 |
| commit | 2a97666a74018379396d12dfae09cf10a6231a20 (patch) | |
| tree | ac87971c7a5dc3c129b688fbfe293a65feb3891a /CompilerKit | |
| parent | b11aa11199cfe873946bc032e031f139348eafd6 (diff) | |
64asm/64ld: Use origin offset when not specify 'import' and if symbol is
known.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'CompilerKit')
| -rw-r--r-- | CompilerKit/AsmKit/Arch/64k.hpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/CompilerKit/AsmKit/Arch/64k.hpp b/CompilerKit/AsmKit/Arch/64k.hpp index b54161d..b070332 100644 --- a/CompilerKit/AsmKit/Arch/64k.hpp +++ b/CompilerKit/AsmKit/Arch/64k.hpp @@ -56,7 +56,8 @@ inline std::vector<CpuCode64x0> kOpcodes64x0 = { kAsmOpcodeDecl("addc", 0b0101011, 0b110, kAsmImmediate) kAsmOpcodeDecl("decc", 0b0101011, 0b111, kAsmImmediate) kAsmOpcodeDecl("int", 0b1110011, 0b00, kAsmSyscall) - kAsmOpcodeDecl("syscall", 0b1110011, 0b00, kAsmSyscall) + kAsmOpcodeDecl("sysenter", 0b1110011, 0b01, kAsmSyscall) + kAsmOpcodeDecl("sysexit", 0b1110011, 0b10, kAsmSyscall) kAsmOpcodeDecl("pha", 0b1110011, 0b00, kAsmNoArgs) kAsmOpcodeDecl("pla", 0b1110011, 0b01, kAsmNoArgs) }; @@ -69,6 +70,9 @@ inline std::vector<CpuCode64x0> kOpcodes64x0 = { #define kAsmFloatRegisterPrefix "f" #define kAsmFloatRegisterLimit 10 +#define kAsmFloatZeroRegister 0 +#define kAsmZeroRegister 0 + #define kAsmRegisterPrefix "r" #define kAsmRegisterLimit 20 #define kAsmPcRegister 17 @@ -80,7 +84,7 @@ inline std::vector<CpuCode64x0> kOpcodes64x0 = { ///////////////////////////////////////////////////////////////////////////// -// SYSTEM CALL ADDRESSING +// SYSTEM CALL/JUMP ADDRESSING // | OPCODE | FUNCT3 | FUNCT7 | OFF | |
