From 0c21587e154e83b5f24ddd30790314d2c6ed262a Mon Sep 17 00:00:00 2001 From: Kittycannon Date: Sat, 13 Jun 2026 12:45:29 -0600 Subject: [PATCH] added interns easter eggs, compiles now --- autogen/InstructionMasks.hpp | 16 +- docs/Spider Instructions.xlsx | Bin 113130 -> 112237 bytes makefile | 42 ++- pygen.ipynb | 375 ++++++++++++++++++++- src/spider/runtime/cpu/CPU.hpp | 40 ++- src/spider/runtime/instr/InstrMap.cpp | 26 +- src/spider/runtime/instr/Instr_000-01F.cpp | 17 +- src/spider/runtime/instr/Instr_020-03F.cpp | 97 ++---- src/spider/runtime/instr/Instr_0E0-0FF.cpp | 2 +- 9 files changed, 473 insertions(+), 142 deletions(-) diff --git a/autogen/InstructionMasks.hpp b/autogen/InstructionMasks.hpp index 54ad74a..231bbfe 100644 --- a/autogen/InstructionMasks.hpp +++ b/autogen/InstructionMasks.hpp @@ -21,7 +21,6 @@ constexpr u8 ADDR_MODE_MASKS[][2] = { { 0x04, 0x04 }, // MOR { 0x00, 0x00 }, // AMOV { 0x04, 0x04 }, // SWP - { 0x04, 0x00 }, // AHM { 0xFF, 0x00 }, // COM { 0xFF, 0x00 }, // NEG { 0xFF, 0x00 }, // EXS @@ -37,7 +36,6 @@ constexpr u8 ADDR_MODE_MASKS[][2] = { { 0x1E, 0xFF }, // UMOD { 0x1E, 0xFF }, // DMOD { 0x1E, 0xFF }, // UDMD - { 0xFF, 0x00 }, // FBT { 0x1E, 0xFF }, // STB { 0x1E, 0xFF }, // CRB { 0x1E, 0xFF }, // TSB @@ -139,6 +137,12 @@ constexpr u8 ADDR_MODE_MASKS[][2] = { { 0x00, 0x00 }, // XMUL { 0x00, 0x00 }, // XDIV { 0x00, 0x00 }, // UPY + { 0x00, 0x00 }, // INT_1_SLOT + { 0x00, 0x00 }, // INT_2_SLOT + { 0x00, 0x00 }, // INT_3_SLOT + { 0x00, 0x00 }, // INT_4_SLOT + { 0x00, 0x00 }, // BRAD + { 0x00, 0x00 }, // DGANT }; // Type size masks — indexed by opcode. @@ -157,7 +161,6 @@ constexpr u8 TYPE_SIZE_MASKS[] = { 0x08, // MOR 0x08, // AMOV 0x08, // SWP - 0x08, // AHM 0x0F, // COM 0x0F, // NEG 0x0F, // EXS @@ -173,7 +176,6 @@ constexpr u8 TYPE_SIZE_MASKS[] = { 0x0F, // UMOD 0x0F, // DMOD 0x0F, // UDMD - 0x0F, // FBT 0x0F, // STB 0x0F, // CRB 0x0F, // TSB @@ -275,6 +277,12 @@ constexpr u8 TYPE_SIZE_MASKS[] = { 0x00, // XMUL 0x00, // XDIV 0x00, // UPY + 0x00, // INT_1_SLOT + 0x00, // INT_2_SLOT + 0x00, // INT_3_SLOT + 0x00, // INT_4_SLOT + 0x00, // BRAD + 0x00, // DGANT }; } // namespace spider \ No newline at end of file diff --git a/docs/Spider Instructions.xlsx b/docs/Spider Instructions.xlsx index d9da6068a43bdacdb34aad901d8a5f52d7370038..44285f76b759698bbfcc59bde89763b4ded009a9 100644 GIT binary patch literal 112237 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 U5bBUp5*;cUL}2$P5Q$FJM9^Wfp&K0bhh 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 diff --git a/makefile b/makefile index 590408f..69067c2 100644 --- a/makefile +++ b/makefile @@ -1,8 +1,10 @@ -#Compiler and Linker +#Compiler, Archiver and Linker CC := g++ +AR := ar +ARFLAGS := rcs -#The Target Binary Program -TARGET := out.exe +# The Target Static Library +TARGET := libspider-runtimelib.a #The Directories, Source, Includes, Objects, Binary and Resources SRCDIR := src @@ -15,49 +17,43 @@ OBJEXT := o #Flags, Libraries and Includes ROOT := ./ CFLAGS := -std=c++20 -O2 \ - -Wall -Werror -Wextra \ - -Wshadow -Wnon-virtual-dtor -Wold-style-cast -Wcast-align \ - -Wunused -Woverloaded-virtual -Wconversion \ - -Wsign-conversion -Wnull-dereference -Wdouble-promotion \ - -Wformat=2 -Wimplicit-fallthrough -Wsuggest-override \ - -Wextra-semi -Wduplicated-cond -Wduplicated-branches \ - -Wlogical-op -Wuseless-cast -LFLAGS := -std=c++20 -static-libstdc++ -static-libgcc \ - -Wl,--fatal-warnings -Wl,--warn-common -LIB := + -Wall -Werror -Wextra \ + -Wshadow -Wnon-virtual-dtor -Wold-style-cast -Wcast-align \ + -Wunused -Woverloaded-virtual -Wconversion \ + -Wsign-conversion -Wnull-dereference -Wdouble-promotion \ + -Wformat=2 -Wimplicit-fallthrough -Wsuggest-override \ + -Wextra-semi -Wduplicated-cond -Wduplicated-branches \ + -Wlogical-op -Wuseless-cast INC := -I./src/ #--------------------------------------------------------------------------------- #DO NOT EDIT BELOW THIS LINE #--------------------------------------------------------------------------------- + SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT)) OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.$(OBJEXT))) -#Defauilt Make +#Default Make all: directories $(TARGET) #Remake -remake: cleaner all +remake: clean all #Make the Directories directories: @mkdir -p $(TARGETDIR) @mkdir -p $(BUILDDIR) -#Clean only Objecst +#Clean only Objects clean: @$(RM) -rf $(BUILDDIR) -#Full Clean, Objects and Binaries -cleaner: clean - @$(RM) -rf $(TARGETDIR) - #Pull in dependency info for *existing* .o files -include $(OBJECTS:.$(OBJEXT)=.$(DEPEXT)) -#Link +#Create Static Library (Archive) $(TARGET): $(OBJECTS) - $(CC) $(LFLAGS) -o $(TARGETDIR)/$(TARGET) $^ $(LIB) + $(AR) $(ARFLAGS) $(TARGETDIR)/$(TARGET) $^ #Compile $(BUILDDIR)/%.$(OBJEXT): $(SRCDIR)/%.$(SRCEXT) @@ -70,4 +66,4 @@ $(BUILDDIR)/%.$(OBJEXT): $(SRCDIR)/%.$(SRCEXT) @rm -f $(BUILDDIR)/$*.$(DEPEXT).tmp #Non-File Targets -.PHONY: all remake clean cleaner resources \ No newline at end of file +.PHONY: all remake clean diff --git a/pygen.ipynb b/pygen.ipynb index 79251c1..5d58507 100644 --- a/pygen.ipynb +++ b/pygen.ipynb @@ -144,7 +144,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "id": "58645013", "metadata": {}, "outputs": [ @@ -152,26 +152,26 @@ "name": "stdout", "output_type": "stream", "text": [ - "Real instructions : 132\n", - "Reserved slots : 10\n", + "Real instructions : 136\n", + "Reserved slots : 12\n", "Duplicate check : PASSED\n", "\n", "Groups found:\n", "group\n", "Integer 19\n", "Boolean 16\n", - "System 15\n", "Bit Wise 14\n", + "System 14\n", "Branch 12\n", "Floating Point 10\n", "Casts 10\n", - "Memory 9\n", + "Memory 8\n", "Trigonometric 7\n", + "Easter Eggs 7\n", "Exponential 6\n", "Matrix 6\n", "SIMD 5\n", "Quaternion 2\n", - "Easter Eggs 1\n", "\n", "First 5 instructions:\n", " byte_code mnemonic group params addr_mask_1 type_mask\n", @@ -283,7 +283,352 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, + "id": "ac8bb791", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
skip_0skip_1byte_codemnemonicnamegroupparamsimpimmabs...BSILFDtype_maskexpensiveoperationskip_2
140NaNNaN08CXAMASIMD Alternate Multiply-AddSIMD01.0XX...XXXXXX00NaNNaN
141NaNNaN08DXMULSIMD MultiplySIMD01.0XX...XXXXXX00NaNNaN
142NaNNaN08EXDIVSIMD DivideSIMD01.0XX...XXXXXX00NaNNaN
240NaNEaster Eggs0F0UPYWill place \"YUPI\" in memoryEaster Eggs01.0XX...XXXXXX00NaNNaN
241NaNNaN0F1INT_1_SLOTEaster Eggs01.0XX...XXXXXX00NaNNaN
242NaNNaN0F2INT_2_SLOTEaster Eggs01.0XX...XXXXXX00NaNNaN
243NaNNaN0F3INT_3_SLOTEaster Eggs01.0XX...XXXXXX00NaNNaN
244NaNNaN0F4INT_4_SLOTEaster Eggs01.0XX...XXXXXX00NaNNaN
245NaNNaN0F5BRADEaster Eggs01.0XX...XXXXXX00NaNNaN
246NaNNaN0F6DGANTEaster Eggs01.0XX...XXXXXX00NaNNaN
\n", + "

10 rows × 29 columns

\n", + "
" + ], + "text/plain": [ + " skip_0 skip_1 byte_code mnemonic name \\\n", + "140 NaN NaN 08C XAMA SIMD Alternate Multiply-Add \n", + "141 NaN NaN 08D XMUL SIMD Multiply \n", + "142 NaN NaN 08E XDIV SIMD Divide \n", + "240 NaN Easter Eggs 0F0 UPY Will place \"YUPI\" in memory \n", + "241 NaN NaN 0F1 INT_1_SLOT \n", + "242 NaN NaN 0F2 INT_2_SLOT \n", + "243 NaN NaN 0F3 INT_3_SLOT \n", + "244 NaN NaN 0F4 INT_4_SLOT \n", + "245 NaN NaN 0F5 BRAD \n", + "246 NaN NaN 0F6 DGANT \n", + "\n", + " group params imp imm abs ... B S I L F D type_mask \\\n", + "140 SIMD 0 1.0 X X ... X X X X X X 00 \n", + "141 SIMD 0 1.0 X X ... X X X X X X 00 \n", + "142 SIMD 0 1.0 X X ... X X X X X X 00 \n", + "240 Easter Eggs 0 1.0 X X ... X X X X X X 00 \n", + "241 Easter Eggs 0 1.0 X X ... X X X X X X 00 \n", + "242 Easter Eggs 0 1.0 X X ... X X X X X X 00 \n", + "243 Easter Eggs 0 1.0 X X ... X X X X X X 00 \n", + "244 Easter Eggs 0 1.0 X X ... X X X X X X 00 \n", + "245 Easter Eggs 0 1.0 X X ... X X X X X X 00 \n", + "246 Easter Eggs 0 1.0 X X ... X X X X X X 00 \n", + "\n", + " expensive operation skip_2 \n", + "140 NaN NaN \n", + "141 NaN NaN \n", + "142 NaN NaN \n", + "240 NaN NaN \n", + "241 NaN NaN \n", + "242 NaN NaN \n", + "243 NaN NaN \n", + "244 NaN NaN \n", + "245 NaN NaN \n", + "246 NaN NaN \n", + "\n", + "[10 rows x 29 columns]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "instrs_df.tail(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, "id": "452bc76c", "metadata": {}, "outputs": [ @@ -292,7 +637,7 @@ "output_type": "stream", "text": [ "Masks written to: .//autogen/InstructionMasks.hpp\n", - "Lines generated : 280\n" + "Lines generated : 288\n" ] } ], @@ -357,7 +702,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "id": "5aaebef0", "metadata": {}, "outputs": [ @@ -365,7 +710,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Instructions formatted: 132\n", + "Instructions formatted: 136\n", "\n", "--- Preview (first 2 instructions) ---\n", " // [System] 0x000 — NOP: No Operation\n", @@ -380,7 +725,7 @@ "\n", "\n", "CPU.hpp updated successfully at: .//src//spider/runtime/cpu/CPU.hpp\n", - "Total lines in updated file: 911\n" + "Total lines in updated file: 942\n" ] } ], @@ -460,9 +805,9 @@ "output_type": "stream", "text": [ "InstrMap.cpp written to: .//src//spider/runtime/instr/InstrMap.cpp\n", - " Size : 33,581 bytes\n", - " Array entries : 512 (132 populated, 380 nullptr)\n", - " Switch cases : 132\n", + " Size : 33,582 bytes\n", + " Array entries : 512 (136 populated, 376 nullptr)\n", + " Switch cases : 136\n", " Line endings : LF-only verified\n" ] } @@ -618,7 +963,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 9, "id": "9f190f4c", "metadata": {}, "outputs": [], diff --git a/src/spider/runtime/cpu/CPU.hpp b/src/spider/runtime/cpu/CPU.hpp index 73f9c66..0c3f2b5 100644 --- a/src/spider/runtime/cpu/CPU.hpp +++ b/src/spider/runtime/cpu/CPU.hpp @@ -325,11 +325,6 @@ namespace spider { // Operation: Src <-> Dst void SWP(); - // [Memory] 0x00E — AHM: Ask Host for Memory - // Params: 1 | AddrMask1: 04 AddrMask2: 00 | TypeMask: 08 - // Operation: Asks the host for a specific size of memory. Responds with 0 or 1 - void AHM(); - // [Integer] 0x010 — COM: One's complement // Params: 1 | AddrMask1: FF AddrMask2: 00 | TypeMask: 0F // Operation: ~ Dst -> Dst @@ -405,11 +400,6 @@ namespace spider { // Operation: Unsigned Dst / Src -> X, Dst % Src -> Y void UDMD(); - // [System] 0x01F — FBT: Test and update Flag Register (Integer) Bits - // Params: 1 | AddrMask1: FF AddrMask2: 00 | TypeMask: 0F - // Operation: Flags of Dst - - void FBT(); - // [Bit Wise] 0x020 — STB: Set Bit // Params: 2 | AddrMask1: 1E AddrMask2: FF | TypeMask: 0F // Operation: Src# bit is set on Dst @@ -915,6 +905,36 @@ namespace spider { // Operation: void UPY(); + // [Easter Eggs] 0x0F1 — INT_1_SLOT: + // Params: 0 | AddrMask1: 00 AddrMask2: 00 | TypeMask: 00 + // Operation: + void INT_1_SLOT(); + + // [Easter Eggs] 0x0F2 — INT_2_SLOT: + // Params: 0 | AddrMask1: 00 AddrMask2: 00 | TypeMask: 00 + // Operation: + void INT_2_SLOT(); + + // [Easter Eggs] 0x0F3 — INT_3_SLOT: + // Params: 0 | AddrMask1: 00 AddrMask2: 00 | TypeMask: 00 + // Operation: + void INT_3_SLOT(); + + // [Easter Eggs] 0x0F4 — INT_4_SLOT: + // Params: 0 | AddrMask1: 00 AddrMask2: 00 | TypeMask: 00 + // Operation: + void INT_4_SLOT(); + + // [Easter Eggs] 0x0F5 — BRAD: + // Params: 0 | AddrMask1: 00 AddrMask2: 00 | TypeMask: 00 + // Operation: + void BRAD(); + + // [Easter Eggs] 0x0F6 — DGANT: + // Params: 0 | AddrMask1: 00 AddrMask2: 00 | TypeMask: 00 + // Operation: + void DGANT(); + // // }; diff --git a/src/spider/runtime/instr/InstrMap.cpp b/src/spider/runtime/instr/InstrMap.cpp index c6a29c0..5fb2314 100644 --- a/src/spider/runtime/instr/InstrMap.cpp +++ b/src/spider/runtime/instr/InstrMap.cpp @@ -49,7 +49,7 @@ CPU::Fn CPU::instrMap[] = { &CPU::MOR, // 0x00B — Moves registers &CPU::AMOV, // 0x00C — Array Move, uses X and Y as ptrs, A as amount &CPU::SWP, // 0x00D — Swap registers - &CPU::AHM, // 0x00E — Ask Host for Memory + nullptr, // 0x00E (reserved) nullptr, // 0x00F (reserved) &CPU::COM, // 0x010 — One's complement &CPU::NEG, // 0x011 — Two's complement @@ -66,7 +66,7 @@ CPU::Fn CPU::instrMap[] = { &CPU::UMOD, // 0x01C — Unsigned Modulus &CPU::DMOD, // 0x01D — Division and Modulus &CPU::UDMD, // 0x01E — Unsigned Division and Modulus - &CPU::FBT, // 0x01F — Test and update Flag Register (Integer) Bits + nullptr, // 0x01F (reserved) &CPU::STB, // 0x020 — Set Bit &CPU::CRB, // 0x021 — Clear Bit &CPU::TSB, // 0x022 — Test Bit @@ -276,12 +276,12 @@ CPU::Fn CPU::instrMap[] = { nullptr, // 0x0EE nullptr, // 0x0EF &CPU::UPY, // 0x0F0 — Will place "YUPI" in memory - nullptr, // 0x0F1 - nullptr, // 0x0F2 - nullptr, // 0x0F3 - nullptr, // 0x0F4 - nullptr, // 0x0F5 - nullptr, // 0x0F6 + &CPU::INT_1_SLOT, // 0x0F1 — + &CPU::INT_2_SLOT, // 0x0F2 — + &CPU::INT_3_SLOT, // 0x0F3 — + &CPU::INT_4_SLOT, // 0x0F4 — + &CPU::BRAD, // 0x0F5 — + &CPU::DGANT, // 0x0F6 — nullptr, // 0x0F7 nullptr, // 0x0F8 nullptr, // 0x0F9 @@ -583,7 +583,6 @@ void CPU::executeSwLk() { case 0x00B: MOR(); break; case 0x00C: AMOV(); break; case 0x00D: SWP(); break; - case 0x00E: AHM(); break; // ── Integer ───────────────────────────────────── case 0x010: COM(); break; @@ -602,9 +601,6 @@ void CPU::executeSwLk() { case 0x01D: DMOD(); break; case 0x01E: UDMD(); break; - // ── System ────────────────────────────────────── - case 0x01F: FBT(); break; - // ── Bit Wise ──────────────────────────────────── case 0x020: STB(); break; case 0x021: CRB(); break; @@ -741,6 +737,12 @@ void CPU::executeSwLk() { // ── Easter Eggs ───────────────────────────────── case 0x0F0: UPY(); break; + case 0x0F1: INT_1_SLOT(); break; + case 0x0F2: INT_2_SLOT(); break; + case 0x0F3: INT_3_SLOT(); break; + case 0x0F4: INT_4_SLOT(); break; + case 0x0F5: BRAD(); break; + case 0x0F6: DGANT(); break; default: break; diff --git a/src/spider/runtime/instr/Instr_000-01F.cpp b/src/spider/runtime/instr/Instr_000-01F.cpp index 3b39bab..6dd96a8 100644 --- a/src/spider/runtime/instr/Instr_000-01F.cpp +++ b/src/spider/runtime/instr/Instr_000-01F.cpp @@ -402,21 +402,8 @@ namespace spider { } void CPU::FBT() { - fetchOperDst(); - switch (_size) { - case 0b00: //byte - RF = u8((RF & ~(0x3 << 9))) | ((_dst->_u8 >> 9) & 0x3) << 9; - break; - case 0b01: //short - RF = u16((RF & ~(0x3 << 9))) | ((_dst->_u16 >> 9) & 0x3) << 9; - break; - case 0b10: //int - RF = u32((RF & ~(0x3 << 9))) | ((_dst->_u32 >> 9) & 0x3) << 9; - break; - case 0b11: //long - RF = u64((RF & ~(0x3 << 9))) | ((_dst->_u64 >> 9) & 0x3) << 9; - break; - } + fetchOperReg(); + RF = _dst->_u64; // TODO: Mask accepted flags } } diff --git a/src/spider/runtime/instr/Instr_020-03F.cpp b/src/spider/runtime/instr/Instr_020-03F.cpp index 285ff91..2bf7c98 100644 --- a/src/spider/runtime/instr/Instr_020-03F.cpp +++ b/src/spider/runtime/instr/Instr_020-03F.cpp @@ -8,7 +8,6 @@ namespace spider { void CPU::STB() { - // TODO: Implement STB fetchOperSrc(); fetchOperDst(); switch(_size){ @@ -28,92 +27,66 @@ namespace spider { } void CPU::CRB() { - // TODO: Implement CRB fetchOperSrc(); fetchOperDst(); switch(_size){ case 0b00: //byte - _dst->_u8 &= ~(1 << _src->_u8); + _dst->_u8 &= u8(~(u8(1) << _src->_u8)); break; case 0b01: //short - _dst->_u16 &= ~(1 << _src->_u16); + _dst->_u16 &= u16(~(u16(1) << _src->_u16)); break; case 0b10: //int - _dst->_u32 &= ~(1 << _src->_u32); + _dst->_u32 &= ~(u32(1) << _src->_u32); break; case 0b11: //long - _dst->_u64 &= ~(1 << _src->_u64); + _dst->_u64 &= ~(u64(1) << _src->_u64); break; } } void CPU::TSB() { - // TODO: Implement TSB fetchOperSrc(); fetchOperDst(); - switch(_size){ - case 0b00: //byte - switch (((RF >> _src->_u8) & 1) != ((_dst->_u8 >> _src->_u8) & 1)){ - case 1: - RF |= (1 << _src->_u8); - break; - - case 0: - RF &= ~(1 << _src->_u8); - break; - } + + u64 s, d; + switch(_size) { + case 0b00: // byte + s = _src->_u8; + d = _dst->_u8; break; - case 0b01: //short - switch (((RF >> _src->_u16) & 1) != ((_dst->_u16 >> _src->_u16) & 1)){ - case 1: - RF |= (1 << _src->_u16); - break; - - case 0: - RF &= ~(1 << _src->_u16); - break; - } + case 0b01: // short + s = _src->_u16; + d = _dst->_u16; break; - case 0b10: //int - switch (((RF >> _src->_u32) & 1) != ((_dst->_u32 >> _src->_u32) & 1)){ - case 1: - RF |= (1 << _src->_u32); - break; - - case 0: - RF &= ~(1 << _src->_u32); - break; - } + case 0b10: // int + s = _src->_u32; + d = _dst->_u32; break; - case 0b11: //long - switch (((RF >> _src->_u64) & 1) != ((_dst->_u64 >> _src->_u64) & 1)){ - case 1: - RF |= (1 << _src->_u64); - break; - - case 0: - RF &= ~(1 << _src->_u64); - break; - } + case 0b11: // long + s = _src->_u64; + d = _dst->_u64; break; } + + d >>= s; + d &= 1; } void CPU::BOOL() { - // TODO: Implement BOOL fetchOperDst(); switch(_size){ - case 0b00: //byte - _dst->_u8 = _dst != 0; + case 0b00: // byte + _dst->_u8 = _dst->_u8 != 0; break; - case 0b01: //short - _dst->_u16 = _dst != 0; + case 0b01: // short + _dst->_u16 = _dst->_u16 != 0; break; - case 0b10: //int - _dst->_u32 = _dst != 0; + case 0b10: // int + _dst->_u32 = _dst->_u32 != 0; break; - case 0b11: //long - _dst->_u64 = _dst != 0; + case 0b11: // long + _dst->_u64 = _dst->_u64 != 0; break; } } @@ -238,11 +211,11 @@ namespace spider { // ── 0x02D — CNT: Counts bits (# of 1's into Dst) ── void CPU::CNT() { fetchOperDst(); - switch(_size) { - case 0b00: _dst->_u8 = __builtin_popcount(_dst->_u8); break; - case 0b01: _dst->_u16 = __builtin_popcount(_dst->_u16); break; - case 0b10: _dst->_u32 = __builtin_popcount(_dst->_u32); break; - case 0b11: _dst->_u64 = __builtin_popcountll(_dst->_u64); break; + switch(_size) { // C++20 cross compatible version!! + case 0b00: _dst->_u8 = u8( std::popcount(_dst->_u8) ); break; + case 0b01: _dst->_u16 = u16(std::popcount(_dst->_u16)); break; + case 0b10: _dst->_u32 = u32(std::popcount(_dst->_u32)); break; + case 0b11: _dst->_u64 = u64(std::popcount(_dst->_u64)); break; } } diff --git a/src/spider/runtime/instr/Instr_0E0-0FF.cpp b/src/spider/runtime/instr/Instr_0E0-0FF.cpp index a0cc10c..ce71a44 100644 --- a/src/spider/runtime/instr/Instr_0E0-0FF.cpp +++ b/src/spider/runtime/instr/Instr_0E0-0FF.cpp @@ -53,7 +53,7 @@ namespace spider { } /** - * @brief BRAD (0xF7) - Memory Integrity Checksum + * @brief BRAD (0xF5) - Memory Integrity Checksum * Escanea los primeros 256 bytes de memoria y valida contra una firma de seguridad. * Implementado por Bradley Vergara Lara - Estancia 2026. */