Created
October 25, 2023 19:01
-
-
Save agatti/6c1341fb3107712825164e2f2cda1aed to your computer and use it in GitHub Desktop.
RISC-V native_closure.py
This file contains 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
0x00000000 ADDI SP, SP, -52 0xFCC10113 | |
0x00000004 SW RA, 0(SP) 0x00112023 | |
0x00000008 SW S0, 4(SP) 0x00812223 | |
0x0000000C SW S1, 8(SP) 0x00912423 | |
0x00000010 SW S2, 12(SP) 0x01212623 | |
0x00000014 SW S3, 16(SP) 0x01312823 | |
0x00000018 SW S4, 20(SP) 0x01412A23 | |
0x0000001C SW S5, 24(SP) 0x01512C23 | |
0x00000020 SW S6, 28(SP) 0x01612E23 | |
0x00000024 SW S7, 32(SP) 0x03712023 | |
0x00000028 SW S8, 36(SP) 0x03812223 | |
0x0000002C SW S9, 40(SP) 0x03912423 | |
0x00000030 SW S10, 44(SP) 0x03A12623 | |
0x00000034 SW S11, 48(SP) 0x03B12823 | |
[API] LOAD_REG_REG_OFFSET {register_destination: T0, register_base: A0, offset: 1, resolved_offset: 0x00000004} | |
0x00000038 LW T0, 4(A0) 0x00452283 | |
[API] LOAD_REG_REG_OFFSET {register_destination: S2, register_base: T0, offset: 2, resolved_offset: 0x00000008} | |
0x0000003C LW S2, 8(T0) 0x0082A903 | |
[API] LOAD_REG_REG_OFFSET {register_destination: T0, register_base: T0, offset: 3, resolved_offset: 0x0000000C} | |
0x00000040 LW T0, 12(T0) 0x00C2A283 | |
[API] LOAD_REG_REG_OFFSET {register_destination: T0, register_base: T0, offset: 0, resolved_offset: 0x00000000} | |
0x00000044 LW T0, 0(T0) 0x0002A283 | |
[API] MOV_LOCAL_REG {local: 0, stack_offset: 0x00000000, register: A0} | |
0x00000048 LW A0, 0(SP) 0x00012503 | |
[API] LOAD_REG_REG_OFFSET {register_destination: A0, register_base: A0, offset: 2, resolved_offset: 0x00000008} | |
0x0000004C LW A0, 8(A0) 0x00852503 | |
[API] MOV_LOCAL_REG {local: 1, stack_offset: 0x00000004, register: A0} | |
0x00000050 LW A0, 4(SP) 0x00412503 | |
[API] MOV_REG_IMM {register: A0, immediate: 5} | |
0x00000054 ADDI A0, ZERO, 5 0x00500513 | |
[API] MOV_LOCAL_REG {local: 3, stack_offset: 0x0000000C, register: A0} | |
0x00000058 LW A0, 12(SP) 0x00C12503 | |
[API] MOV_REG_LOCAL_ADDR {register: A0, local: 0, stack_offset: 0x00000000} | |
0x0000005C ADDI A0, SP, 0 0x00010513 | |
[API] CALL_IND {index: 45, offset: 0x000000B4} | |
0x00000060 JALR RA, T0, 180 0x0B4280E7 | |
[API] MOV_REG_LOCAL {register: S0, local: 9, stack_offset: 0x00000024} | |
0x00000064 SW S0, 36(SP) 0x02812223 | |
[API] MOV_REG_LOCAL {register: S1, local: 8, stack_offset: 0x00000020} | |
0x00000068 SW S1, 32(SP) 0x02912023 | |
[API] LOAD_REG_REG_OFFSET {register_destination: A0, register_base: S0, offset: 1, resolved_offset: 0x00000004} | |
0x0000006C LW A0, 4(S0) 0x00442503 | |
[API] MOV_LOCAL_REG {local: 5, stack_offset: 0x00000014, register: A0} | |
0x00000070 LW A0, 20(SP) 0x01412503 | |
[API] LOAD_REG_REG_OFFSET {register_destination: A0, register_base: S1, offset: 1, resolved_offset: 0x00000004} | |
0x00000074 LW A0, 4(S1) 0x0044A503 | |
[API] MOV_REG_REG {register_destination_index: A2, register_source_index: A0} | |
0x00000078 ADD A2, ZERO, A0 0x00A00633 | |
[API] MOV_REG_LOCAL {register: A1, local: 5, stack_offset: 0x00000014} | |
0x0000007C SW A1, 20(SP) 0x00B12A23 | |
[API] MOV_REG_IMM {register: A0, immediate: 27} | |
0x00000080 ADDI A0, ZERO, 27 0x01B00513 | |
[API] CALL_IND {index: 18, offset: 0x00000048} | |
0x00000084 JALR RA, T0, 72 0x048280E7 | |
[API] MOV_REG_LOCAL {register: T1, local: 7, stack_offset: 0x0000001C} | |
0x00000088 SW T1, 28(SP) 0x00612E23 | |
[API] MOV_REG_REG {register_destination_index: A2, register_source_index: T1} | |
0x0000008C ADD A2, ZERO, T1 0x00600633 | |
[API] MOV_REG_REG {register_destination_index: A1, register_source_index: A0} | |
0x00000090 ADD A1, ZERO, A0 0x00A005B3 | |
[API] MOV_REG_IMM {register: A0, immediate: 27} | |
0x00000094 ADDI A0, ZERO, 27 0x01B00513 | |
[API] CALL_IND {index: 18, offset: 0x00000048} | |
0x00000098 JALR RA, T0, 72 0x048280E7 | |
[API] JUMP {label: 0, destination: 0x000000A0, displacement: 4} | |
0x0000009C JAL ZERO, 4 0x0040006F | |
[API] LOAD_REG_REG_OFFSET {register_destination: A1, register_base: T0, offset: 0, resolved_offset: 0x00000000} | |
0x000000A0 LW A0, 0(T0) 0x0002A503 | |
[API] JUMP {label: 0, destination: 0x000000A0, displacement: 0} | |
0x000000A0 JAL ZERO, 0 0x0000006F | |
0x000000A0 LW RA, 0(SP) 0x00012083 | |
0x000000A4 LW S0, 4(SP) 0x00412403 | |
0x000000A8 LW S1, 8(SP) 0x00812483 | |
0x000000AC LW S2, 12(SP) 0x00C12903 | |
0x000000B0 LW S3, 16(SP) 0x01012983 | |
0x000000B4 LW S4, 20(SP) 0x01412A03 | |
0x000000B8 LW S5, 24(SP) 0x01812A83 | |
0x000000BC LW S6, 28(SP) 0x01C12B03 | |
0x000000C0 LW S7, 32(SP) 0x02012B83 | |
0x000000C4 LW S8, 36(SP) 0x02412C03 | |
0x000000C8 LW S9, 40(SP) 0x02812C83 | |
0x000000CC LW S10, 44(SP) 0x02C12D03 | |
0x000000D0 LW S11, 48(SP) 0x03012D83 | |
0x000000D4 ADDI SP, SP, 52 0x03410113 | |
0x000000D8 JALR ZERO, RA, 0 0x00008067 | |
---CODE-BLOCK-START--- | |
import pathlib | |
import binascii | |
code = binascii.a2b_hex('1301C1FC2320110023228100232491002326210123283101232A4101232C5101232E61012320710323228103232491032326A1032328B1038322450003A9820083A2C20083A20200032501000325850003254100130550000325C10013050100E780420B2322810223209102032544000325410103A544003306A000232AB1001305B001E7808204232E610033066000B305A0001305B001E78082046F0040008320010003244100832481000329C10083290101032A4101832A8101032BC101832B0102032C4102832C8102032DC102832D01031301410367800000000000000000') | |
pathlib.Path('code.bin').write_bytes(code) | |
---CODE-BLOCK-END--- |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment