mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-02-16 15:40:14 +00:00
GP-4055: Corrected AVR 8 Hflag usage in DES instruction
This commit is contained in:
parent
041be82286
commit
79d775e6a5
@ -739,11 +739,16 @@ define pcodeop decrypt;
|
|||||||
|
|
||||||
:des op4to7 is phase=1 & ophi8=0x94 & oplow4=0xb & op4to7 {
|
:des op4to7 is phase=1 & ophi8=0x94 & oplow4=0xb & op4to7 {
|
||||||
val:1 = op4to7;
|
val:1 = op4to7;
|
||||||
if (Hflg) goto <enc>;
|
local key:8 = R15R14R13R12R11R10R9R8;
|
||||||
R15R14R13R12R11R10R9R8 = decrypt(R7R6R5R4R3R2R1R0, val);
|
local result:16 = 0;
|
||||||
goto inst_next;
|
if (!Hflg) goto <enc>;
|
||||||
<enc>
|
result = decrypt(R7R6R5R4R3R2R1R0, key, val);
|
||||||
R15R14R13R12R11R10R9R8 = encrypt(R7R6R5R4R3R2R1R0, val);
|
goto <des_end>;
|
||||||
|
<enc>
|
||||||
|
result = encrypt(R7R6R5R4R3R2R1R0, key, val);
|
||||||
|
<des_end>
|
||||||
|
R7R6R5R4R3R2R1R0 = result(0);
|
||||||
|
R15R14R13R12R11R10R9R8 = result(8);
|
||||||
}
|
}
|
||||||
|
|
||||||
@if HASEIND == "1"
|
@if HASEIND == "1"
|
||||||
|
@ -44,7 +44,7 @@ public class AVR8_31_GCC_O0_EmulatorTest extends ProcessorEmulatorTestAdapter {
|
|||||||
testRunner.setRegister("SP", 0x0);
|
testRunner.setRegister("SP", 0x0);
|
||||||
testRunner.setRegister("R1", 0x0);
|
testRunner.setRegister("R1", 0x0);
|
||||||
testRunner.setRegister("Y", 0x0);
|
testRunner.setRegister("Y", 0x0);
|
||||||
testRunner.setRegister("W", 0x0);
|
testRunner.setRegister("R25R24", 0x0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -44,7 +44,7 @@ public class AVR8_31_GCC_O3_EmulatorTest extends ProcessorEmulatorTestAdapter {
|
|||||||
testRunner.setRegister("SP", 0x0);
|
testRunner.setRegister("SP", 0x0);
|
||||||
testRunner.setRegister("R1", 0x0);
|
testRunner.setRegister("R1", 0x0);
|
||||||
testRunner.setRegister("Y", 0x0);
|
testRunner.setRegister("Y", 0x0);
|
||||||
testRunner.setRegister("W", 0x0);
|
testRunner.setRegister("R25R24", 0x0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -44,7 +44,7 @@ public class AVR8_51_GCC_O0_EmulatorTest extends ProcessorEmulatorTestAdapter {
|
|||||||
testRunner.setRegister("SP", 0x0);
|
testRunner.setRegister("SP", 0x0);
|
||||||
testRunner.setRegister("R1", 0x0);
|
testRunner.setRegister("R1", 0x0);
|
||||||
testRunner.setRegister("Y", 0x0);
|
testRunner.setRegister("Y", 0x0);
|
||||||
testRunner.setRegister("W", 0x0);
|
testRunner.setRegister("R25R24", 0x0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -44,7 +44,7 @@ public class AVR8_51_GCC_O3_EmulatorTest extends ProcessorEmulatorTestAdapter {
|
|||||||
testRunner.setRegister("SP", 0x0);
|
testRunner.setRegister("SP", 0x0);
|
||||||
testRunner.setRegister("R1", 0x0);
|
testRunner.setRegister("R1", 0x0);
|
||||||
testRunner.setRegister("Y", 0x0);
|
testRunner.setRegister("Y", 0x0);
|
||||||
testRunner.setRegister("W", 0x0);
|
testRunner.setRegister("R25R24", 0x0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -44,7 +44,7 @@ public class AVR8_6_GCC_O0_EmulatorTest extends ProcessorEmulatorTestAdapter {
|
|||||||
testRunner.setRegister("SP", 0x0);
|
testRunner.setRegister("SP", 0x0);
|
||||||
testRunner.setRegister("R1", 0x0);
|
testRunner.setRegister("R1", 0x0);
|
||||||
testRunner.setRegister("Y", 0x0);
|
testRunner.setRegister("Y", 0x0);
|
||||||
testRunner.setRegister("W", 0x0);
|
testRunner.setRegister("R25R24", 0x0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -44,7 +44,7 @@ public class AVR8_6_GCC_O3_EmulatorTest extends ProcessorEmulatorTestAdapter {
|
|||||||
testRunner.setRegister("SP", 0x0);
|
testRunner.setRegister("SP", 0x0);
|
||||||
testRunner.setRegister("R1", 0x0);
|
testRunner.setRegister("R1", 0x0);
|
||||||
testRunner.setRegister("Y", 0x0);
|
testRunner.setRegister("Y", 0x0);
|
||||||
testRunner.setRegister("W", 0x0);
|
testRunner.setRegister("R25R24", 0x0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -44,7 +44,7 @@ public class AVR8_xmega_GCC_O0_EmulatorTest extends ProcessorEmulatorTestAdapter
|
|||||||
testRunner.setRegister("SP", 0x0);
|
testRunner.setRegister("SP", 0x0);
|
||||||
testRunner.setRegister("R1", 0x0);
|
testRunner.setRegister("R1", 0x0);
|
||||||
testRunner.setRegister("Y", 0x0);
|
testRunner.setRegister("Y", 0x0);
|
||||||
testRunner.setRegister("W", 0x0);
|
testRunner.setRegister("R25R24", 0x0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -44,7 +44,7 @@ public class AVR8_xmega_GCC_O3_EmulatorTest extends ProcessorEmulatorTestAdapter
|
|||||||
testRunner.setRegister("SP", 0x0);
|
testRunner.setRegister("SP", 0x0);
|
||||||
testRunner.setRegister("R1", 0x0);
|
testRunner.setRegister("R1", 0x0);
|
||||||
testRunner.setRegister("Y", 0x0);
|
testRunner.setRegister("Y", 0x0);
|
||||||
testRunner.setRegister("W", 0x0);
|
testRunner.setRegister("R25R24", 0x0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
Reference in New Issue
Block a user