From 09edd92af071cab2a88967a3db5f93a5fd568e1a Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Sat, 12 Apr 2025 08:37:12 +0200 Subject: LibCompiler, C++: use 'jmp' when returning from a function. Signed-off-by: Amlal El Mahrouss --- dev/LibCompiler/src/CPlusPlusCompilerAMD64.cc | 4 ++-- dev/LibCompiler/src/DynamicLinkerPEF.cc | 14 ++++++-------- 2 files changed, 8 insertions(+), 10 deletions(-) (limited to 'dev/LibCompiler/src') diff --git a/dev/LibCompiler/src/CPlusPlusCompilerAMD64.cc b/dev/LibCompiler/src/CPlusPlusCompilerAMD64.cc index c81e746..62d1729 100644 --- a/dev/LibCompiler/src/CPlusPlusCompilerAMD64.cc +++ b/dev/LibCompiler/src/CPlusPlusCompilerAMD64.cc @@ -15,7 +15,7 @@ #define kExitNO (EXIT_FAILURE) #define kSplashCxx() \ - kPrintF(kWhite "%s\n", "NeKernel C++ Compiler Driver, (c) 2024 Amlal El Mahrouss, all rights reserved.") + kPrintF(kWhite "%s\n", "NeKernel Optimized C++ Compiler Driver, (c) 2024-2025 Amlal El Mahrouss, All rights reserved.") // extern_segment, @autodelete { ... }, fn foo() -> auto { ... } @@ -830,7 +830,7 @@ Boolean CompilerFrontendCPlusPlus::Compile(std::string text, std::stringstream ss; ss << it->second; - syntax_tree.fUserValue = "mov rax, " + ss.str() + "\nret\n"; + syntax_tree.fUserValue = "jmp " + ss.str() + "\nret\n"; kOrigin += 1UL; break; } diff --git a/dev/LibCompiler/src/DynamicLinkerPEF.cc b/dev/LibCompiler/src/DynamicLinkerPEF.cc index a5799f6..0a47b88 100644 --- a/dev/LibCompiler/src/DynamicLinkerPEF.cc +++ b/dev/LibCompiler/src/DynamicLinkerPEF.cc @@ -31,7 +31,7 @@ #include #include -#define kLinkerVersionStr "NeKernel 64-Bit Linker (Preferred Executable) %s, (c) Amlal El Mahrouss 2024-2025, all rights reserved.\n" +#define kLinkerVersionStr "\e[0;97m NeKernel 64-Bit Linker (Preferred Executable) %s, (c) Amlal El Mahrouss 2024-2025, all rights reserved.\n" #define MemoryCopy(DST, SRC, SZ) memcpy(DST, SRC, SZ) #define StringCompare(DST, SRC) strcmp(DST, SRC) @@ -39,16 +39,14 @@ #define kPefNoCpu 0U #define kPefNoSubCpu 0U -#define kWhite "\e[0;97m" - -#define kStdOut (std::cout << kWhite << "ld64 (PEF): ") +#define kStdOut (std::cout << "\e[0;31m" << "ld64: " << "\e[0;97m") #define kLinkerDefaultOrigin kPefBaseOrigin #define kLinkerId (0x5046FF) #define kLinkerAbiContainer "Container:ABI:" #define kPrintF printf -#define kLinkerSplash() kPrintF(kWhite kLinkerVersionStr, kDistVersion) +#define kLinkerSplash() kPrintF(kLinkerVersionStr, kDistVersion) /// @brief PEF stack size symbol. #define kLinkerStackSizeSymbol "__PEFSizeOfReserveStack" @@ -104,10 +102,10 @@ LIBCOMPILER_MODULE(DynamicLinker64PEF) { kLinkerSplash(); - kStdOut << "--ld64:ver: Show linker version.\n"; - kStdOut << "--ld64:?: Show linker help.\n"; + kStdOut << "--ld64:version: Show linker version.\n"; + kStdOut << "--ld64:help: Show linker help.\n"; kStdOut << "--ld64:verbose: Enable linker trace.\n"; - kStdOut << "--ld64:dylib: Output as a Dylib PEF.\n"; + kStdOut << "--ld64:dylib: Output as a Dyanmic PEF.\n"; kStdOut << "--ld64:fat: Output as a FAT PEF.\n"; kStdOut << "--ld64:32k: Output as a 32x0 PEF.\n"; kStdOut << "--ld64:64k: Output as a 64x0 PEF.\n"; -- cgit v1.2.3