[pypy-dev] Identify this function

M A teammember0x01 at gmail.com
Mon Nov 15 06:41:04 EST 2021


for i in range(10000):
	print(i)

Hi, when I run this loop PyPy crashes at around 8800. Using a debugger I found out that this is the AARCH64 assembly function that has the crash. The arrow points to where the crash happens. I believe the crash happens one instruction before the arrow, at blr x17. X17 was set to a small number that was not a  valid address.

Would anyone know what the rpython version of this function is? Thank you.


    0x10a97cf10: str    x0, [x29, #0x48]
    0x10a97cf14: str    x1, [x29, #0x50]
    0x10a97cf18: str    x2, [x29, #0x58]
    0x10a97cf1c: str    x3, [x29, #0x60]
    0x10a97cf20: str    x4, [x29, #0x68]
    0x10a97cf24: str    x5, [x29, #0x70]
    0x10a97cf28: str    x6, [x29, #0x78]
    0x10a97cf2c: str    x7, [x29, #0x80]
    0x10a97cf30: str    x8, [x29, #0x88]
    0x10a97cf34: str    x9, [x29, #0x90]
    0x10a97cf38: str    x10, [x29, #0x98]
    0x10a97cf3c: str    x11, [x29, #0xa0]
    0x10a97cf40: str    x12, [x29, #0xa8]
    0x10a97cf44: str    x13, [x29, #0xb0]
    0x10a97cf48: str    x19, [x29, #0xb8]
    0x10a97cf4c: str    x20, [x29, #0xc0]
    0x10a97cf50: str    d0, [x29, #0xc8]
    0x10a97cf54: str    d1, [x29, #0xd0]
    0x10a97cf58: str    d2, [x29, #0xd8]
    0x10a97cf5c: str    d3, [x29, #0xe0]
    0x10a97cf60: str    d4, [x29, #0xe8]
    0x10a97cf64: str    d5, [x29, #0xf0]
    0x10a97cf68: str    d6, [x29, #0xf8]
    0x10a97cf6c: str    d7, [x29, #0x100]
    0x10a97cf70: sub    sp, sp, #0x10             ; =0x10 
    0x10a97cf74: str    x16, [sp, #0x8]
    0x10a97cf78: str    x30, [sp]
    0x10a97cf7c: blr    x17
->  0x10a97cf80: mov    x16, #0x3428
    0x10a97cf84: movk   x16, #0x69f, lsl #16
    0x10a97cf88: movk   x16, #0x1, lsl #32
    0x10a97cf8c: ldr    x16, [x16]
    0x10a97cf90: sub    x16, x16, #0x8            ; =0x8 
    0x10a97cf94: ldr    x29, [x16]
    0x10a97cf98: ldrb   w16, [x29, #0x4]
    0x10a97cf9c: mov    x17, #0x1
    0x10a97cfa0: tst    x16, x17
    0x10a97cfa4: b.eq   0x10a97cfd8
    0x10a97cfa8: sub    sp, sp, #0x10             ; =0x10 
    0x10a97cfac: str    x0, [sp, #0x8]
    0x10a97cfb0: str    x29, [sp]
    0x10a97cfb4: mov    x0, x29
    0x10a97cfb8: mov    x16, #0xc290
    0x10a97cfbc: movk   x16, #0xa97, lsl #16
    0x10a97cfc0: movk   x16, #0x1, lsl #32
    0x10a97cfc4: movk   x16, #0x0, lsl #48
    0x10a97cfc8: blr    x16
    0x10a97cfcc: ldr    x0, [sp, #0x8]
    0x10a97cfd0: ldr    x29, [sp]
    0x10a97cfd4: add    sp, sp, #0x10             ; =0x10 
    0x10a97cfd8: mov    x17, x0
    0x10a97cfdc: ldr    x0, [x29, #0x48]
    0x10a97cfe0: ldr    x1, [x29, #0x50]
    0x10a97cfe4: ldr    x2, [x29, #0x58]
    0x10a97cfe8: ldr    x3, [x29, #0x60]
    0x10a97cfec: ldr    x4, [x29, #0x68]
    0x10a97cff0: ldr    x5, [x29, #0x70]
    0x10a97cff4: ldr    x6, [x29, #0x78]
    0x10a97cff8: ldr    x7, [x29, #0x80]
    0x10a97cffc: ldr    x8, [x29, #0x88]
    0x10a97d000: ldr    x9, [x29, #0x90]
    0x10a97d004: ldr    x10, [x29, #0x98]
    0x10a97d008: ldr    x11, [x29, #0xa0]
    0x10a97d00c: ldr    x12, [x29, #0xa8]
    0x10a97d010: ldr    x13, [x29, #0xb0]
    0x10a97d014: ldr    x19, [x29, #0xb8]
    0x10a97d018: ldr    x20, [x29, #0xc0]
    0x10a97d01c: ldr    x16, [sp]
    0x10a97d020: add    sp, sp, #0x10             ; =0x10 
    0x10a97d024: ret    x16



More information about the pypy-dev mailing list