-
Notifications
You must be signed in to change notification settings - Fork 483
riscv: add init support #1516
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Jvlegod
wants to merge
8
commits into
cea-sec:master
Choose a base branch
from
Jvlegod:riscv
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
riscv: add init support #1516
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Signed-off-by: Jvle <[email protected]>
Signed-off-by: Jvle <[email protected]>
Signed-off-by: Jvle <[email protected]>
Signed-off-by: Jvle <[email protected]>
Signed-off-by: Jvle <[email protected]>
Signed-off-by: Jvle <[email protected]>
Signed-off-by: Jvle <[email protected]>
Signed-off-by: Jvle <[email protected]>
Author
resultADD X1, X3, X2
[b'\x00!\x80\xb3']
ADD X1, X3, X2
ADD X1, X3, X2
loc_0:
X1 = X3 + X2
IRDst = loc_4
working with IR ---
read: ['X3', 'X2']
written: X1
read: []
written: IRDst
Emulate:
<miasm.analysis.binary.ContainerUnknown object at 0x7ac61046f550>
loc_0
ADDI X10, X10, 0x4
ADDI X11, X11, 0x1
ANDI X5, X10, 0xFF
ADDI X5, X5, 0xFFFFFFFFFFFFFFFF
BEQ X5, X0, loc_1c
-> c_next:loc_14 c_to:loc_1c
loc_1c
ADDI X11, X11, 0x1
-> c_next:loc_20
loc_14
ADDI X11, X11, 0xFFFFFFFFFFFFFFFF
BEQ X0, X0, loc_20
-> c_next:loc_1c c_to:loc_20
loc_20
ADDI X10, X11, 0x0
JALR X0, X1, 0x0
40000000 ADDI X10, X10, 0x4
X0 0000000000000000 X1 000000001337BEEF X2 000000000123FFF8 X3 0000000000000000
X4 0000000000000000 X5 0000000000000000 X6 0000000000000000 X7 0000000000000000
X8 0000000000000000 X9 0000000000000000 X10 0000000000000004 X11 0000000000000000
X12 0000000000000000 X13 0000000000000000 X14 0000000000000000 X15 0000000000000000
X16 0000000000000000 X17 0000000000000000 X18 0000000000000000 X19 0000000000000000
X20 0000000000000000 X21 0000000000000000 X22 0000000000000000 X23 0000000000000000
X24 0000000000000000 X25 0000000000000000 X26 0000000000000000 X27 0000000000000000
X28 0000000000000000 X29 0000000000000000 X30 0000000000000000 X31 0000000000000000
PC 0000000040000004 exception_flags 00000000 interrupt_num 00000000
40000004 ADDI X11, X11, 0x1
X0 0000000000000000 X1 000000001337BEEF X2 000000000123FFF8 X3 0000000000000000
X4 0000000000000000 X5 0000000000000000 X6 0000000000000000 X7 0000000000000000
X8 0000000000000000 X9 0000000000000000 X10 0000000000000004 X11 0000000000000001
X12 0000000000000000 X13 0000000000000000 X14 0000000000000000 X15 0000000000000000
X16 0000000000000000 X17 0000000000000000 X18 0000000000000000 X19 0000000000000000
X20 0000000000000000 X21 0000000000000000 X22 0000000000000000 X23 0000000000000000
X24 0000000000000000 X25 0000000000000000 X26 0000000000000000 X27 0000000000000000
X28 0000000000000000 X29 0000000000000000 X30 0000000000000000 X31 0000000000000000
PC 0000000040000008 exception_flags 00000000 interrupt_num 00000000
40000008 ANDI X5, X10, 0xFF
X0 0000000000000000 X1 000000001337BEEF X2 000000000123FFF8 X3 0000000000000000
X4 0000000000000000 X5 0000000000000004 X6 0000000000000000 X7 0000000000000000
X8 0000000000000000 X9 0000000000000000 X10 0000000000000004 X11 0000000000000001
X12 0000000000000000 X13 0000000000000000 X14 0000000000000000 X15 0000000000000000
X16 0000000000000000 X17 0000000000000000 X18 0000000000000000 X19 0000000000000000
X20 0000000000000000 X21 0000000000000000 X22 0000000000000000 X23 0000000000000000
X24 0000000000000000 X25 0000000000000000 X26 0000000000000000 X27 0000000000000000
X28 0000000000000000 X29 0000000000000000 X30 0000000000000000 X31 0000000000000000
PC 000000004000000C exception_flags 00000000 interrupt_num 00000000
4000000C ADDI X5, X5, 0xFFFFFFFFFFFFFFFF
X0 0000000000000000 X1 000000001337BEEF X2 000000000123FFF8 X3 0000000000000000
X4 0000000000000000 X5 0000000000000003 X6 0000000000000000 X7 0000000000000000
X8 0000000000000000 X9 0000000000000000 X10 0000000000000004 X11 0000000000000001
X12 0000000000000000 X13 0000000000000000 X14 0000000000000000 X15 0000000000000000
X16 0000000000000000 X17 0000000000000000 X18 0000000000000000 X19 0000000000000000
X20 0000000000000000 X21 0000000000000000 X22 0000000000000000 X23 0000000000000000
X24 0000000000000000 X25 0000000000000000 X26 0000000000000000 X27 0000000000000000
X28 0000000000000000 X29 0000000000000000 X30 0000000000000000 X31 0000000000000000
PC 0000000040000010 exception_flags 00000000 interrupt_num 00000000
40000010 BEQ X5, X0, loc_4000001c
X0 0000000000000000 X1 000000001337BEEF X2 000000000123FFF8 X3 0000000000000000
X4 0000000000000000 X5 0000000000000003 X6 0000000000000000 X7 0000000000000000
X8 0000000000000000 X9 0000000000000000 X10 0000000000000004 X11 0000000000000001
X12 0000000000000000 X13 0000000000000000 X14 0000000000000000 X15 0000000000000000
X16 0000000000000000 X17 0000000000000000 X18 0000000000000000 X19 0000000000000000
X20 0000000000000000 X21 0000000000000000 X22 0000000000000000 X23 0000000000000000
X24 0000000000000000 X25 0000000000000000 X26 0000000000000000 X27 0000000000000000
X28 0000000000000000 X29 0000000000000000 X30 0000000000000000 X31 0000000000000000
PC 0000000040000014 exception_flags 00000000 interrupt_num 00000000
40000014 ADDI X11, X11, 0xFFFFFFFFFFFFFFFF
X0 0000000000000000 X1 000000001337BEEF X2 000000000123FFF8 X3 0000000000000000
X4 0000000000000000 X5 0000000000000003 X6 0000000000000000 X7 0000000000000000
X8 0000000000000000 X9 0000000000000000 X10 0000000000000004 X11 0000000000000000
X12 0000000000000000 X13 0000000000000000 X14 0000000000000000 X15 0000000000000000
X16 0000000000000000 X17 0000000000000000 X18 0000000000000000 X19 0000000000000000
X20 0000000000000000 X21 0000000000000000 X22 0000000000000000 X23 0000000000000000
X24 0000000000000000 X25 0000000000000000 X26 0000000000000000 X27 0000000000000000
X28 0000000000000000 X29 0000000000000000 X30 0000000000000000 X31 0000000000000000
PC 0000000040000018 exception_flags 00000000 interrupt_num 00000000
40000018 BEQ X0, X0, loc_40000020
X0 0000000000000000 X1 000000001337BEEF X2 000000000123FFF8 X3 0000000000000000
X4 0000000000000000 X5 0000000000000003 X6 0000000000000000 X7 0000000000000000
X8 0000000000000000 X9 0000000000000000 X10 0000000000000004 X11 0000000000000000
X12 0000000000000000 X13 0000000000000000 X14 0000000000000000 X15 0000000000000000
X16 0000000000000000 X17 0000000000000000 X18 0000000000000000 X19 0000000000000000
X20 0000000000000000 X21 0000000000000000 X22 0000000000000000 X23 0000000000000000
X24 0000000000000000 X25 0000000000000000 X26 0000000000000000 X27 0000000000000000
X28 0000000000000000 X29 0000000000000000 X30 0000000000000000 X31 0000000000000000
PC 0000000040000020 exception_flags 00000000 interrupt_num 00000000
40000020 ADDI X10, X11, 0x0
X0 0000000000000000 X1 000000001337BEEF X2 000000000123FFF8 X3 0000000000000000
X4 0000000000000000 X5 0000000000000003 X6 0000000000000000 X7 0000000000000000
X8 0000000000000000 X9 0000000000000000 X10 0000000000000000 X11 0000000000000000
X12 0000000000000000 X13 0000000000000000 X14 0000000000000000 X15 0000000000000000
X16 0000000000000000 X17 0000000000000000 X18 0000000000000000 X19 0000000000000000
X20 0000000000000000 X21 0000000000000000 X22 0000000000000000 X23 0000000000000000
X24 0000000000000000 X25 0000000000000000 X26 0000000000000000 X27 0000000000000000
X28 0000000000000000 X29 0000000000000000 X30 0000000000000000 X31 0000000000000000
PC 0000000040000024 exception_flags 00000000 interrupt_num 00000000
40000024 JALR X0, X1, 0x0
X0 0000000000000000 X1 000000001337BEEF X2 000000000123FFF8 X3 0000000000000000
X4 0000000000000000 X5 0000000000000003 X6 0000000000000000 X7 0000000000000000
X8 0000000000000000 X9 0000000000000000 X10 0000000000000000 X11 0000000000000000
X12 0000000000000000 X13 0000000000000000 X14 0000000000000000 X15 0000000000000000
X16 0000000000000000 X17 0000000000000000 X18 0000000000000000 X19 0000000000000000
X20 0000000000000000 X21 0000000000000000 X22 0000000000000000 X23 0000000000000000
X24 0000000000000000 X25 0000000000000000 X26 0000000000000000 X27 0000000000000000
X28 0000000000000000 X29 0000000000000000 X30 0000000000000000 X31 0000000000000000
PC 000000001337BEEF exception_flags 00000000 interrupt_num 00000000
Hit sentinel!
X0 = 0x1337beef
Symbolic execution:
((((X10 + 0x4) & 0xFF) + 0xFFFFFFFFFFFFFFFF) == X0)?(0x1C,0x14)
Instr ADDI X10, X10, 0x4
Assignblk:
X10 = X10 + 0x4
________________________________________________________________________________
X0 = X0_init
X1 = X1_init
X2 = X2_init
X3 = X3_init
X4 = X4_init
X5 = X5_init
X6 = X6_init
X7 = X7_init
X8 = X8_init
X9 = X9_init
X10 = X10_init + 0x4
X11 = X11_init
X12 = X12_init
X13 = X13_init
X14 = X14_init
X15 = X15_init
X16 = X16_init
X17 = X17_init
X18 = X18_init
X19 = X19_init
X20 = X20_init
X21 = X21_init
X22 = X22_init
X23 = X23_init
X24 = X24_init
X25 = X25_init
X26 = X26_init
X27 = X27_init
X28 = X28_init
X29 = X29_init
X30 = X30_init
X31 = X31_init
PC = PC_init
USTATUS = USTATUS_init
UIE = UIE_init
UTVEC = UTVEC_init
USCRATCH = USCRATCH_init
UEPC = UEPC_init
UCAUSE = UCAUSE_init
UTVAL = UTVAL_init
UIP = UIP_init
SSTATUS = SSTATUS_init
SIE = SIE_init
STVEC = STVEC_init
SSCRATCH = SSCRATCH_init
SEPC = SEPC_init
SCAUSE = SCAUSE_init
STVAL = STVAL_init
SIP = SIP_init
SATP = SATP_init
MSTATUS = MSTATUS_init
MISA = MISA_init
MIE = MIE_init
MTVEC = MTVEC_init
MSCRATCH = MSCRATCH_init
MEPC = MEPC_init
MCAUSE = MCAUSE_init
MTVAL = MTVAL_init
MIP = MIP_init
MVENDORID = MVENDORID_init
MARCHID = MARCHID_init
MIMPID = MIMPID_init
MHARTID = MHARTID_init
________________________________________________________________________________
Instr ADDI X11, X11, 0x1
Assignblk:
X11 = X11 + 0x1
________________________________________________________________________________
X0 = X0_init
X1 = X1_init
X2 = X2_init
X3 = X3_init
X4 = X4_init
X5 = X5_init
X6 = X6_init
X7 = X7_init
X8 = X8_init
X9 = X9_init
X10 = X10_init + 0x4
X11 = X11_init + 0x1
X12 = X12_init
X13 = X13_init
X14 = X14_init
X15 = X15_init
X16 = X16_init
X17 = X17_init
X18 = X18_init
X19 = X19_init
X20 = X20_init
X21 = X21_init
X22 = X22_init
X23 = X23_init
X24 = X24_init
X25 = X25_init
X26 = X26_init
X27 = X27_init
X28 = X28_init
X29 = X29_init
X30 = X30_init
X31 = X31_init
PC = PC_init
USTATUS = USTATUS_init
UIE = UIE_init
UTVEC = UTVEC_init
USCRATCH = USCRATCH_init
UEPC = UEPC_init
UCAUSE = UCAUSE_init
UTVAL = UTVAL_init
UIP = UIP_init
SSTATUS = SSTATUS_init
SIE = SIE_init
STVEC = STVEC_init
SSCRATCH = SSCRATCH_init
SEPC = SEPC_init
SCAUSE = SCAUSE_init
STVAL = STVAL_init
SIP = SIP_init
SATP = SATP_init
MSTATUS = MSTATUS_init
MISA = MISA_init
MIE = MIE_init
MTVEC = MTVEC_init
MSCRATCH = MSCRATCH_init
MEPC = MEPC_init
MCAUSE = MCAUSE_init
MTVAL = MTVAL_init
MIP = MIP_init
MVENDORID = MVENDORID_init
MARCHID = MARCHID_init
MIMPID = MIMPID_init
MHARTID = MHARTID_init
________________________________________________________________________________
Instr ANDI X5, X10, 0xFF
Assignblk:
X5 = X10 & 0xFF
________________________________________________________________________________
X0 = X0_init
X1 = X1_init
X2 = X2_init
X3 = X3_init
X4 = X4_init
X5 = (X10_init + 0x4) & 0xFF
X6 = X6_init
X7 = X7_init
X8 = X8_init
X9 = X9_init
X10 = X10_init + 0x4
X11 = X11_init + 0x1
X12 = X12_init
X13 = X13_init
X14 = X14_init
X15 = X15_init
X16 = X16_init
X17 = X17_init
X18 = X18_init
X19 = X19_init
X20 = X20_init
X21 = X21_init
X22 = X22_init
X23 = X23_init
X24 = X24_init
X25 = X25_init
X26 = X26_init
X27 = X27_init
X28 = X28_init
X29 = X29_init
X30 = X30_init
X31 = X31_init
PC = PC_init
USTATUS = USTATUS_init
UIE = UIE_init
UTVEC = UTVEC_init
USCRATCH = USCRATCH_init
UEPC = UEPC_init
UCAUSE = UCAUSE_init
UTVAL = UTVAL_init
UIP = UIP_init
SSTATUS = SSTATUS_init
SIE = SIE_init
STVEC = STVEC_init
SSCRATCH = SSCRATCH_init
SEPC = SEPC_init
SCAUSE = SCAUSE_init
STVAL = STVAL_init
SIP = SIP_init
SATP = SATP_init
MSTATUS = MSTATUS_init
MISA = MISA_init
MIE = MIE_init
MTVEC = MTVEC_init
MSCRATCH = MSCRATCH_init
MEPC = MEPC_init
MCAUSE = MCAUSE_init
MTVAL = MTVAL_init
MIP = MIP_init
MVENDORID = MVENDORID_init
MARCHID = MARCHID_init
MIMPID = MIMPID_init
MHARTID = MHARTID_init
________________________________________________________________________________
Instr ADDI X5, X5, 0xFFFFFFFFFFFFFFFF
Assignblk:
X5 = X5 + 0xFFFFFFFFFFFFFFFF
________________________________________________________________________________
X0 = X0_init
X1 = X1_init
X2 = X2_init
X3 = X3_init
X4 = X4_init
X5 = ((X10_init + 0x4) & 0xFF) + 0xFFFFFFFFFFFFFFFF
X6 = X6_init
X7 = X7_init
X8 = X8_init
X9 = X9_init
X10 = X10_init + 0x4
X11 = X11_init + 0x1
X12 = X12_init
X13 = X13_init
X14 = X14_init
X15 = X15_init
X16 = X16_init
X17 = X17_init
X18 = X18_init
X19 = X19_init
X20 = X20_init
X21 = X21_init
X22 = X22_init
X23 = X23_init
X24 = X24_init
X25 = X25_init
X26 = X26_init
X27 = X27_init
X28 = X28_init
X29 = X29_init
X30 = X30_init
X31 = X31_init
PC = PC_init
USTATUS = USTATUS_init
UIE = UIE_init
UTVEC = UTVEC_init
USCRATCH = USCRATCH_init
UEPC = UEPC_init
UCAUSE = UCAUSE_init
UTVAL = UTVAL_init
UIP = UIP_init
SSTATUS = SSTATUS_init
SIE = SIE_init
STVEC = STVEC_init
SSCRATCH = SSCRATCH_init
SEPC = SEPC_init
SCAUSE = SCAUSE_init
STVAL = STVAL_init
SIP = SIP_init
SATP = SATP_init
MSTATUS = MSTATUS_init
MISA = MISA_init
MIE = MIE_init
MTVEC = MTVEC_init
MSCRATCH = MSCRATCH_init
MEPC = MEPC_init
MCAUSE = MCAUSE_init
MTVAL = MTVAL_init
MIP = MIP_init
MVENDORID = MVENDORID_init
MARCHID = MARCHID_init
MIMPID = MIMPID_init
MHARTID = MHARTID_init
________________________________________________________________________________
Instr BEQ X5, X0, loc_key_1
Assignblk:
PC = (X5 == X0)?(loc_key_1,loc_key_2)
IRDst = (X5 == X0)?(loc_key_1,loc_key_2)
________________________________________________________________________________
X0 = X0_init
X1 = X1_init
X2 = X2_init
X3 = X3_init
X4 = X4_init
X5 = ((X10_init + 0x4) & 0xFF) + 0xFFFFFFFFFFFFFFFF
X6 = X6_init
X7 = X7_init
X8 = X8_init
X9 = X9_init
X10 = X10_init + 0x4
X11 = X11_init + 0x1
X12 = X12_init
X13 = X13_init
X14 = X14_init
X15 = X15_init
X16 = X16_init
X17 = X17_init
X18 = X18_init
X19 = X19_init
X20 = X20_init
X21 = X21_init
X22 = X22_init
X23 = X23_init
X24 = X24_init
X25 = X25_init
X26 = X26_init
X27 = X27_init
X28 = X28_init
X29 = X29_init
X30 = X30_init
X31 = X31_init
PC = ((((X10_init + 0x4) & 0xFF) + 0xFFFFFFFFFFFFFFFF) == X0_init)?(0x1C,0x14)
USTATUS = USTATUS_init
UIE = UIE_init
UTVEC = UTVEC_init
USCRATCH = USCRATCH_init
UEPC = UEPC_init
UCAUSE = UCAUSE_init
UTVAL = UTVAL_init
UIP = UIP_init
SSTATUS = SSTATUS_init
SIE = SIE_init
STVEC = STVEC_init
SSCRATCH = SSCRATCH_init
SEPC = SEPC_init
SCAUSE = SCAUSE_init
STVAL = STVAL_init
SIP = SIP_init
SATP = SATP_init
MSTATUS = MSTATUS_init
MISA = MISA_init
MIE = MIE_init
MTVEC = MTVEC_init
MSCRATCH = MSCRATCH_init
MEPC = MEPC_init
MCAUSE = MCAUSE_init
MTVAL = MTVAL_init
MIP = MIP_init
MVENDORID = MVENDORID_init
MARCHID = MARCHID_init
MIMPID = MIMPID_init
MHARTID = MHARTID_init
IRDst = ((((X10_init + 0x4) & 0xFF) + 0xFFFFFFFFFFFFFFFF) == X0_init)?(0x1C,0x14)
________________________________________________________________________________
Instr ADDI X10, X10, 0x4
Assignblk:
X10 = X10 + 0x4
________________________________________________________________________________
X0 = X0_init
X1 = 0xFFFFFFFFFFFFFFFD
X2 = X2_init
X3 = X3_init
X4 = X4_init
X5 = ((X10_init + 0x4) & 0xFF) + 0xFFFFFFFFFFFFFFFF
X6 = X6_init
X7 = X7_init
X8 = X8_init
X9 = X9_init
X10 = X10_init + 0x8
X11 = X11_init + 0x1
X12 = X12_init
X13 = X13_init
X14 = X14_init
X15 = X15_init
X16 = X16_init
X17 = X17_init
X18 = X18_init
X19 = X19_init
X20 = X20_init
X21 = X21_init
X22 = X22_init
X23 = X23_init
X24 = X24_init
X25 = X25_init
X26 = X26_init
X27 = X27_init
X28 = X28_init
X29 = X29_init
X30 = X30_init
X31 = X31_init
PC = ((((X10_init + 0x4) & 0xFF) + 0xFFFFFFFFFFFFFFFF) == X0_init)?(0x1C,0x14)
USTATUS = USTATUS_init
UIE = UIE_init
UTVEC = UTVEC_init
USCRATCH = USCRATCH_init
UEPC = UEPC_init
UCAUSE = UCAUSE_init
UTVAL = UTVAL_init
UIP = UIP_init
SSTATUS = SSTATUS_init
SIE = SIE_init
STVEC = STVEC_init
SSCRATCH = SSCRATCH_init
SEPC = SEPC_init
SCAUSE = SCAUSE_init
STVAL = STVAL_init
SIP = SIP_init
SATP = SATP_init
MSTATUS = MSTATUS_init
MISA = MISA_init
MIE = MIE_init
MTVEC = MTVEC_init
MSCRATCH = MSCRATCH_init
MEPC = MEPC_init
MCAUSE = MCAUSE_init
MTVAL = MTVAL_init
MIP = MIP_init
MVENDORID = MVENDORID_init
MARCHID = MARCHID_init
MIMPID = MIMPID_init
MHARTID = MHARTID_init
IRDst = ((((X10_init + 0x4) & 0xFF) + 0xFFFFFFFFFFFFFFFF) == X0_init)?(0x1C,0x14)
________________________________________________________________________________
Instr ADDI X11, X11, 0x1
Assignblk:
X11 = X11 + 0x1
________________________________________________________________________________
X0 = X0_init
X1 = 0xFFFFFFFFFFFFFFFD
X2 = X2_init
X3 = X3_init
X4 = X4_init
X5 = ((X10_init + 0x4) & 0xFF) + 0xFFFFFFFFFFFFFFFF
X6 = X6_init
X7 = X7_init
X8 = X8_init
X9 = X9_init
X10 = X10_init + 0x8
X11 = X11_init + 0x2
X12 = X12_init
X13 = X13_init
X14 = X14_init
X15 = X15_init
X16 = X16_init
X17 = X17_init
X18 = X18_init
X19 = X19_init
X20 = X20_init
X21 = X21_init
X22 = X22_init
X23 = X23_init
X24 = X24_init
X25 = X25_init
X26 = X26_init
X27 = X27_init
X28 = X28_init
X29 = X29_init
X30 = X30_init
X31 = X31_init
PC = ((((X10_init + 0x4) & 0xFF) + 0xFFFFFFFFFFFFFFFF) == X0_init)?(0x1C,0x14)
USTATUS = USTATUS_init
UIE = UIE_init
UTVEC = UTVEC_init
USCRATCH = USCRATCH_init
UEPC = UEPC_init
UCAUSE = UCAUSE_init
UTVAL = UTVAL_init
UIP = UIP_init
SSTATUS = SSTATUS_init
SIE = SIE_init
STVEC = STVEC_init
SSCRATCH = SSCRATCH_init
SEPC = SEPC_init
SCAUSE = SCAUSE_init
STVAL = STVAL_init
SIP = SIP_init
SATP = SATP_init
MSTATUS = MSTATUS_init
MISA = MISA_init
MIE = MIE_init
MTVEC = MTVEC_init
MSCRATCH = MSCRATCH_init
MEPC = MEPC_init
MCAUSE = MCAUSE_init
MTVAL = MTVAL_init
MIP = MIP_init
MVENDORID = MVENDORID_init
MARCHID = MARCHID_init
MIMPID = MIMPID_init
MHARTID = MHARTID_init
IRDst = ((((X10_init + 0x4) & 0xFF) + 0xFFFFFFFFFFFFFFFF) == X0_init)?(0x1C,0x14)
________________________________________________________________________________
Instr ANDI X5, X10, 0xFF
Assignblk:
X5 = X10 & 0xFF
________________________________________________________________________________
X0 = X0_init
X1 = 0xFFFFFFFFFFFFFFFD
X2 = X2_init
X3 = X3_init
X4 = X4_init
X5 = (X10_init + 0x8) & 0xFF
X6 = X6_init
X7 = X7_init
X8 = X8_init
X9 = X9_init
X10 = X10_init + 0x8
X11 = X11_init + 0x2
X12 = X12_init
X13 = X13_init
X14 = X14_init
X15 = X15_init
X16 = X16_init
X17 = X17_init
X18 = X18_init
X19 = X19_init
X20 = X20_init
X21 = X21_init
X22 = X22_init
X23 = X23_init
X24 = X24_init
X25 = X25_init
X26 = X26_init
X27 = X27_init
X28 = X28_init
X29 = X29_init
X30 = X30_init
X31 = X31_init
PC = ((((X10_init + 0x4) & 0xFF) + 0xFFFFFFFFFFFFFFFF) == X0_init)?(0x1C,0x14)
USTATUS = USTATUS_init
UIE = UIE_init
UTVEC = UTVEC_init
USCRATCH = USCRATCH_init
UEPC = UEPC_init
UCAUSE = UCAUSE_init
UTVAL = UTVAL_init
UIP = UIP_init
SSTATUS = SSTATUS_init
SIE = SIE_init
STVEC = STVEC_init
SSCRATCH = SSCRATCH_init
SEPC = SEPC_init
SCAUSE = SCAUSE_init
STVAL = STVAL_init
SIP = SIP_init
SATP = SATP_init
MSTATUS = MSTATUS_init
MISA = MISA_init
MIE = MIE_init
MTVEC = MTVEC_init
MSCRATCH = MSCRATCH_init
MEPC = MEPC_init
MCAUSE = MCAUSE_init
MTVAL = MTVAL_init
MIP = MIP_init
MVENDORID = MVENDORID_init
MARCHID = MARCHID_init
MIMPID = MIMPID_init
MHARTID = MHARTID_init
IRDst = ((((X10_init + 0x4) & 0xFF) + 0xFFFFFFFFFFFFFFFF) == X0_init)?(0x1C,0x14)
________________________________________________________________________________
Instr ADDI X5, X5, 0xFFFFFFFFFFFFFFFF
Assignblk:
X5 = X5 + 0xFFFFFFFFFFFFFFFF
________________________________________________________________________________
X0 = X0_init
X1 = 0xFFFFFFFFFFFFFFFD
X2 = X2_init
X3 = X3_init
X4 = X4_init
X5 = ((X10_init + 0x8) & 0xFF) + 0xFFFFFFFFFFFFFFFF
X6 = X6_init
X7 = X7_init
X8 = X8_init
X9 = X9_init
X10 = X10_init + 0x8
X11 = X11_init + 0x2
X12 = X12_init
X13 = X13_init
X14 = X14_init
X15 = X15_init
X16 = X16_init
X17 = X17_init
X18 = X18_init
X19 = X19_init
X20 = X20_init
X21 = X21_init
X22 = X22_init
X23 = X23_init
X24 = X24_init
X25 = X25_init
X26 = X26_init
X27 = X27_init
X28 = X28_init
X29 = X29_init
X30 = X30_init
X31 = X31_init
PC = ((((X10_init + 0x4) & 0xFF) + 0xFFFFFFFFFFFFFFFF) == X0_init)?(0x1C,0x14)
USTATUS = USTATUS_init
UIE = UIE_init
UTVEC = UTVEC_init
USCRATCH = USCRATCH_init
UEPC = UEPC_init
UCAUSE = UCAUSE_init
UTVAL = UTVAL_init
UIP = UIP_init
SSTATUS = SSTATUS_init
SIE = SIE_init
STVEC = STVEC_init
SSCRATCH = SSCRATCH_init
SEPC = SEPC_init
SCAUSE = SCAUSE_init
STVAL = STVAL_init
SIP = SIP_init
SATP = SATP_init
MSTATUS = MSTATUS_init
MISA = MISA_init
MIE = MIE_init
MTVEC = MTVEC_init
MSCRATCH = MSCRATCH_init
MEPC = MEPC_init
MCAUSE = MCAUSE_init
MTVAL = MTVAL_init
MIP = MIP_init
MVENDORID = MVENDORID_init
MARCHID = MARCHID_init
MIMPID = MIMPID_init
MHARTID = MHARTID_init
IRDst = ((((X10_init + 0x4) & 0xFF) + 0xFFFFFFFFFFFFFFFF) == X0_init)?(0x1C,0x14)
________________________________________________________________________________
Instr BEQ X5, X0, loc_key_1
Assignblk:
PC = (X5 == X0)?(loc_key_1,loc_key_2)
IRDst = (X5 == X0)?(loc_key_1,loc_key_2)
________________________________________________________________________________
X0 = X0_init
X1 = 0xFFFFFFFFFFFFFFFD
X2 = X2_init
X3 = X3_init
X4 = X4_init
X5 = ((X10_init + 0x8) & 0xFF) + 0xFFFFFFFFFFFFFFFF
X6 = X6_init
X7 = X7_init
X8 = X8_init
X9 = X9_init
X10 = X10_init + 0x8
X11 = X11_init + 0x2
X12 = X12_init
X13 = X13_init
X14 = X14_init
X15 = X15_init
X16 = X16_init
X17 = X17_init
X18 = X18_init
X19 = X19_init
X20 = X20_init
X21 = X21_init
X22 = X22_init
X23 = X23_init
X24 = X24_init
X25 = X25_init
X26 = X26_init
X27 = X27_init
X28 = X28_init
X29 = X29_init
X30 = X30_init
X31 = X31_init
PC = ((((X10_init + 0x8) & 0xFF) + 0xFFFFFFFFFFFFFFFF) == X0_init)?(0x1C,0x14)
USTATUS = USTATUS_init
UIE = UIE_init
UTVEC = UTVEC_init
USCRATCH = USCRATCH_init
UEPC = UEPC_init
UCAUSE = UCAUSE_init
UTVAL = UTVAL_init
UIP = UIP_init
SSTATUS = SSTATUS_init
SIE = SIE_init
STVEC = STVEC_init
SSCRATCH = SSCRATCH_init
SEPC = SEPC_init
SCAUSE = SCAUSE_init
STVAL = STVAL_init
SIP = SIP_init
SATP = SATP_init
MSTATUS = MSTATUS_init
MISA = MISA_init
MIE = MIE_init
MTVEC = MTVEC_init
MSCRATCH = MSCRATCH_init
MEPC = MEPC_init
MCAUSE = MCAUSE_init
MTVAL = MTVAL_init
MIP = MIP_init
MVENDORID = MVENDORID_init
MARCHID = MARCHID_init
MIMPID = MIMPID_init
MHARTID = MHARTID_init
IRDst = ((((X10_init + 0x8) & 0xFF) + 0xFFFFFFFFFFFFFFFF) == X0_init)?(0x1C,0x14)
________________________________________________________________________________ |
Contributor
|
Hi @Jvlegod ! Thanks again! |
Author
|
Okay, I'm happy to resolve any issues you may have. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hello maintainers. This PR initially supports RISC-V64 instructions.
After further improvements, it will support RISC-V32. RISC-V32 and RISC-V64 are similar in many ways, so I am referencing x86 and plan to put them in the same directory. In subsequent PRs, I will focus on participating in the development of the RISC-V module.
I wiil put a example here.