extract code tool updated to output addresses in

hex and some fixes and aarch64 deactivated
This commit is contained in:
Nicolas 2025-10-31 17:01:27 +01:00
parent b0668e7449
commit 926bb9f85f
4 changed files with 14 additions and 13 deletions

View File

@ -71,15 +71,16 @@ jobs:
if: strategy.job-index == 0
run: |
python tools/make_example.py
python tools/extract_code.py "bin/test.copapy" "bin/test.copapy.bin"
objdump -D -b binary -m i386:x86-64 --adjust-vma=0x1000 bin/test.copapy.bin > bin/test.copapy.asm
echo '<p>test.copapy.asm</p>' >> $GITHUB_STEP_SUMMARY
python tools/clean_asm.py bin/test.copapy.asm >> $GITHUB_STEP_SUMMARY
python tools/extract_code.py "bin/test-aarch64.copapy" "bin/test-aarch64.copapy.bin"
aarch64-linux-gnu-objdump -D -b binary -m aarch64 --adjust-vma=0x1000 bin/test-aarch64.copapy.bin > bin/test-aarch64.copapy.asm
echo '<p>test-aarch64.copapy.asm</p>' >> $GITHUB_STEP_SUMMARY
python tools/clean_asm.py bin/test-aarch64.copapy.asm >> $GITHUB_STEP_SUMMARY
#python tools/extract_code.py "bin/test-aarch64.copapy" "bin/test-aarch64.copapy.bin"
#aarch64-linux-gnu-objdump -D -b binary -m aarch64 --adjust-vma=0x1000 bin/test-aarch64.copapy.bin > bin/test-aarch64.copapy.asm
#echo '<p>test-aarch64.copapy.asm</p>' >> $GITHUB_STEP_SUMMARY
#python tools/clean_asm.py bin/test-aarch64.copapy.asm >> $GITHUB_STEP_SUMMARY
objdump -d -x src/copapy/obj/stencils_x86_64_O3.o > bin/stencils_x86_64_O3.asm
echo '<p>stencils_x86_64_O3.asm</p>' >> $GITHUB_STEP_SUMMARY

View File

@ -175,8 +175,8 @@ class stencil_database():
mask = 0xFFFFFFFF # 32 bit
patch_value = symbol_address + pr.fields['r_addend'] - patch_offset
print(f'** {patch_offset=} {relocation.target_symbol_name=} {pr.fields['r_offset']=} {relocation.function_offset=} {relocation.start=} {function_offset=}')
print(f' {patch_value=} {symbol_address=} {pr.fields['r_addend']=}, {function_offset=}')
print(f"** {patch_offset=} {relocation.target_symbol_name=} {pr.fields['r_offset']=} {relocation.function_offset=} {relocation.start=} {function_offset=}")
print(f" {patch_value=} {symbol_address=} {pr.fields['r_addend']=}, {function_offset=}")
#elif reloc.type.endswith('_JUMP26') or reloc.type.endswith('_CALL26'):
# # S + A - P

View File

@ -46,34 +46,34 @@ if __name__ == "__main__":
offs = dr.read_int()
size = dr.read_int()
datab = dr.read_bytes(size)
print(f"COPY_DATA offs={offs} size={size} data={' '.join(hex(d) for d in datab)}")
print(f"COPY_DATA offs=0x{offs + data_section_offset:x} size={size} data={' '.join(hex(d) for d in datab)}")
elif com == Command.COPY_CODE:
offs = dr.read_int()
size = dr.read_int()
datab = dr.read_bytes(size)
program_data[offs:offs + size] = datab
print(f"COPY_CODE offs={offs} size={size} data={' '.join(hex(d) for d in datab[:5])}...")
print(f"COPY_CODE offs=0x{offs:x} size={size} data={' '.join(hex(d) for d in datab[:5])}...")
elif com == Command.PATCH_FUNC:
offs = dr.read_int()
mask = dr.read_int()
value = dr.read_int(signed=True)
patch(program_data, offs, mask, value, byteorder)
print(f"PATCH_FUNC patch_offs={offs} mask=0x{mask:x} value={value}")
print(f"PATCH_FUNC patch_offs=0x{offs:x} mask=0x{mask:x} value=0x{value:x}")
elif com == Command.PATCH_OBJECT:
offs = dr.read_int()
mask = dr.read_int()
value = dr.read_int(signed=True)
patch(program_data, offs, mask, value + data_section_offset, byteorder)
print(f"PATCH_OBJECT patch_offs={offs} mask=ox{mask:x} value={value}")
print(f"PATCH_OBJECT patch_offs=0x{offs:x} mask=0x{mask:x} value=0x{value + data_section_offset:x}")
elif com == Command.ENTRY_POINT:
rel_entr_point = dr.read_int()
print(f"ENTRY_POINT rel_entr_point={rel_entr_point}")
print(f"ENTRY_POINT rel_entr_point=0x{rel_entr_point:x}")
elif com == Command.RUN_PROG:
print("RUN_PROG")
elif com == Command.READ_DATA:
offs = dr.read_int()
size = dr.read_int()
print(f"READ_DATA offs={offs} size={size}")
print(f"READ_DATA offs=0x{offs:x} size={size}")
elif com == Command.FREE_MEMORY:
print("READ_DATA")
elif com == Command.END_COM:

View File

@ -79,4 +79,4 @@ def test_compile_aarch64() -> None:
if __name__ == "__main__":
test_compile()
test_compile_aarch64()
#test_compile_aarch64()