Home - Summaries: (main) : (py3.11) : Everything - Nightly builds - Benchmarks - RPython - Builders - About

jit/backend/aarch64/test/test_runner.py::TestARM64::()::test_compile_asmlen

self = <rpython.jit.backend.aarch64.test.test_runner.TestARM64 object at 0x0000000150084b48>

    def test_compile_asmlen(self):
        if not isinstance(self.cpu, AbstractLLCPU):
            py.test.skip("pointless test on non-asm")
        from rpython.jit.backend.tool.viewcode import machine_code_dump, ObjdumpNotFound
        import ctypes
        targettoken = TargetToken()
        ops = """
            [i2]
            i0 = same_as_i(i2)    # but forced to be in a register
            label(i0, descr=targettoken)
            i1 = int_add(i0, i0)
            guard_true(i1, descr=faildescr) [i1]
            jump(i1, descr=targettoken)
            """
        faildescr = BasicFailDescr(2)
        loop = parse(ops, self.cpu, namespace=locals())
        bridge_ops = """
            [i0]
            jump(i0, descr=targettoken)
            """
        bridge = parse(bridge_ops, self.cpu, namespace=locals())
        looptoken = JitCellToken()
        self.cpu.assembler.set_debug(False)
        info = self.cpu.compile_loop(loop.inputargs, loop.operations, looptoken)
        bridge_info = self.cpu.compile_bridge(faildescr, bridge.inputargs,
                                              bridge.operations,
                                              looptoken)
        self.cpu.assembler.set_debug(True) # always on untranslated
        assert info.asmlen != 0
        cpuname = autodetect()
        # XXX we have to check the precise assembler, otherwise
        # we don't quite know if borders are correct
    
        def checkops(mc, ops_regexp):
            import re
            words = []
            print('----- checkops -----')
            for line in mc:
                print(line.rstrip())
                t = line.split("\t")
                if len(t) <= 2:
                    continue
                w = t[2].split()
                if len(w) == 0:
                    if '<UNDEFINED>' in line:
                        w = ['UNDEFINED']
                    else:
                        continue
                words.append(w[0] + ';')
                print('[[%s]]' % (w[0],))
            text = ' '.join(words)
            assert re.compile(ops_regexp).match(text)
    
        data = ctypes.string_at(info.asmaddr, info.asmlen)
        try:
>           mc = list(machine_code_dump(data, info.asmaddr, cpuname))

jit/backend/test/runner_test.py:4675: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

data = '\xa0\x83@\xf9\x00\x00\x00\x8b\x1f\x00\x00\xf1`\x00\x00T\xfd\xff\xff\x17\x00\x00 \xd4'
originaddr = 481131759504, backend_name = 'aarch64', label_list = None

    def machine_code_dump(data, originaddr, backend_name, label_list=None):
        objdump_machine_option = {
            'x86': 'i386',
            'x86-without-sse2': 'i386',
            'x86_32': 'i386',
            'x86_64': 'i386:x86-64',
            'x86-64': 'i386:x86-64',
            'i386': 'i386',
            'arm': 'arm',
            'arm_32': 'arm',
            'aarch64': 'aarch64',
            'ppc' : 'powerpc:common64',
            'ppc-64' : 'powerpc:common64',
            'riscv64': 'riscv:rv64',
            's390x': 's390:64-bit',
        }
        machine_endianness = {
            # default value: 'little'
            'ppc' : sys.byteorder,     # i.e. same as the running machine...
            'ppc-64' : sys.byteorder,     # i.e. same as the running machine...
            's390x' : sys.byteorder,     # i.e. same as the running machine...
        }
        cmd = find_objdump()
        objdump = ('%(command)s -b binary -m %(machine)s '
                   '--endian=%(endianness)s '
                   '--disassembler-options=intel-mnemonics '
                   '--adjust-vma=%(origin)d -D %(file)s')
        #
        f = open(tmpfile, 'wb')
        f.write(data)
        f.close()
        p = subprocess.Popen(objdump % {
            'command': cmd,
            'file': tmpfile,
            'origin': originaddr,
            'machine': objdump_machine_option[backend_name],
            'endianness': machine_endianness.get(backend_name, 'little'),
        }, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        stdout, stderr = p.communicate()
        assert not p.returncode, ('Encountered an error running objdump: %s' %
>                                 stderr)
E       AssertionError: Encountered an error running objdump: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/objdump: error: unknown argument '-b'

jit/backend/tool/viewcode.py:82: AssertionError
---------- Captured stderr setup ----------
[c58668028a46d00] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @7005b00000 +0  A02300F9A12700F9A22B00F9A32F00F9A43300F9A53700F9A63B00F9A73F00F9A84300F9A94700F9AA4B00F9AB4F00F9AC5300F9AD5700F9B35B00F9B45F00F9E0031DAAF35344A9FE77C5A8C0035FD6 
[c58668028b3ff80] jit-backend-dump}
[c58668028e1a700] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @7005b00060 +0  A02300F9A12700F9A22B00F9A32F00F9A43300F9A53700F9A63B00F9A73F00F9A84300F9A94700F9AA4B00F9AB4F00F9AC5300F9AD5700F9B35B00F9B45F00F905398BD2054AA0F20500CCF2A40040F9060080D2A60000F905388BD2054AA0F20500CCF2A60000F9A41700F9E0031DAAF35344A9FE77C5A8C0035FD6 
[c58668028f94e00] jit-backend-dump}
[c5866802978ed80] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @7005b000f0 +0  A02300F9A12700F9A22B00F9A32F00F9A43300F9A53700F9A63B00F9A73F00F9A84300F9A94700F9AA4B00F9AB4F00F9AC5300F9AD5700F9B35B00F9B45F00F9A06300FDA16700FDA26B00FDA36F00FDA47300FDA57700FDA67B00FDA77F00FDE00740A9FE0300F9A00F00F9E0031DAA10398BD2104AA0F21000CCF2100240F9B01700F910388BD2104AA0F21000CCF2130240F910398BD2104AA0F21000CCF2110080D2110200F910388BD2104AA0F21000CCF2110200F910BE91D2B00DA0F23000C0F21000E0F200023FD6FD0300AA10398BD2104AA0F21000CCF2B11740F9110200F9110080D2B11700F910388BD2104AA0F21000CCF2130200F9100080D2B00F00F9A02340F9A12740F9A22B40F9A32F40F9A43340F9A53740F9A63B40F9A73F40F9A84340F9A94740F9AA4B40F9AB4F40F9AC5340F9AD5740F9B35B40F9B45F40F9A06340FDA16740FDA26B40FDA36F40FDA47340FDA57740FDA67B40FDA77F40FDFE0340F9FF430091C0035FD6 
[c58668029baf400] jit-backend-dump}
[c58668029e0fc00] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @7005b00270 +0  A02300F9A12700F9A22B00F9A32F00F9A43300F9A53700F9A63B00F9A73F00F9A84300F9A94700F9AA4B00F9AB4F00F9AC5300F9AD5700F9B35B00F9B45F00F9A06300FDA16700FDA26B00FDA36F00FDA47300FDA57700FDA67B00FDA77F00FDE0031DAAF35344A9FE77C5A8C0035FD6 
[c58668029f5ba80] jit-backend-dump}
[c5866802a2b4200] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @7005b002f0 +0  A02300F9A12700F9A22B00F9A32F00F9A43300F9A53700F9A63B00F9A73F00F9A84300F9A94700F9AA4B00F9AB4F00F9AC5300F9AD5700F9B35B00F9B45F00F9A06300FDA16700FDA26B00FDA36F00FDA47300FDA57700FDA67B00FDA77F00FD05398BD2054AA0F20500CCF2A40040F9060080D2A60000F905388BD2054AA0F20500CCF2A60000F9A41700F9E0031DAAF35344A9FE77C5A8C0035FD6 
[c5866802a481880] jit-backend-dump}
[c5866802a63a580] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @7005b003a0 +0  10398BD2104AA0F21000CCF2000240F9110080D2110200F910388BD2104AA0F21000CCF2110200F9A01700F9000080D2A00700F9E0031DAAF35344A9FE77C5A8C0035FD6 
[c5866802a711300] jit-backend-dump}
[c5866802ab18d00] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @7005b003f0 +0  A02300F9A12700F9A22B00F9A32F00F9A43300F9A53700F9A63B00F9A73F00F9A84300F9A94700F9AA4B00F9AB4F00F9AC5300F9AD5700F9B35B00F9B45F00F9A06300FDA16700FDA26B00FDA36F00FDA47300FDA57700FDA67B00FDA77F00FDFF4300D1F00700F9FE0300F920023FD6F10300AAA02340F9A12740F9A22B40F9A32F40F9A43340F9A53740F9A63B40F9A73F40F9A84340F9A94740F9AA4B40F9AB4F40F9AC5340F9AD5740F9B35B40F9B45F40F9F00340F9FF43009100025FD6 
[c5866802ad75880] jit-backend-dump}
[c5866802b140b80] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @7005b004c0 +0  A02300F9A12700F9A22B00F9A32F00F9A43300F9A53700F9A63B00F9A73F00F9A84300F9A94700F9AA4B00F9AB4F00F9AC5300F9AD5700F9A06300FDA16700FDA26B00FDA36F00FDA47300FDA57700FDA67B00FDA77F00FDFF4300D1F00700F9FE0300F920023FD6F10300AAA02340F9A12740F9A22B40F9A32F40F9A43340F9A53740F9A63B40F9A73F40F9A84340F9A94740F9AA4B40F9AB4F40F9AC5340F9AD5740F9F00340F9FF43009100025FD6 
[c5866802b33bf00] jit-backend-dump}
[c5866802b7e7800] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @7005b00580 +0  A02300F9A12700F9A22B00F9A32F00F9A43300F9A53700F9A63B00F9A73F00F9A84300F9A94700F9AA4B00F9AB4F00F9AC5300F9AD5700F9B35B00F9B45F00F9A06300FDA16700FDA26B00FDA36F00FDA47300FDA57700FDA67B00FDA77F00FDFF4300D1F00700F9FE0300F920023FD6F10300AAA02340F9A12740F9A22B40F9A32F40F9A43340F9A53740F9A63B40F9A73F40F9A84340F9A94740F9AA4B40F9AB4F40F9AC5340F9AD5740F9B35B40F9B45F40F9A06340FDA16740FDA26B40FDA36F40FDA47340FDA57740FDA67B40FDA77F40FDF00340F9FF43009100025FD6 
[c5866802ba72000] jit-backend-dump}
[c5866802becbc80] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @7005b00670 +0  A02300F9A12700F9A22B00F9A32F00F9A43300F9A53700F9A63B00F9A73F00F9A84300F9A94700F9AA4B00F9AB4F00F9AC5300F9AD5700F9A06300FDA16700FDA26B00FDA36F00FDA47300FDA57700FDA67B00FDA77F00FDFF4300D1F00700F9FE0300F920023FD6F10300AAA02340F9A12740F9A22B40F9A32F40F9A43340F9A53740F9A63B40F9A73F40F9A84340F9A94740F9AA4B40F9AB4F40F9AC5340F9AD5740F9A06340FDA16740FDA26B40FDA36F40FDA47340FDA57740FDA67B40FDA77F40FDF00340F9FF43009100025FD6 
[c5866802c12b180] jit-backend-dump}
---------- Captured stderr call ----------
[c5866802c5edb00] {jit-mem-looptoken-alloc
allocating Loop # -1 
[c5866802c5fa080] jit-mem-looptoken-alloc}
[c5866802c91d600] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @7005b00770 +0  00000000000000000000000000000000FE77BBA9F35304A9E10F00F9FD0300AAA08340F90000008B1F0000F1000020D4FDFFFF17000020D450FEFF58B00700F910EB80D210B6A0F2100EC0F2B00F00F9100080D210B6A0F2100EC0F21000E0F200023FD6 
[c5866802ca6fa00] jit-backend-dump}
[c5866802cb03d00] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @7005b0079c +0  60000054 
[c5866802cb24680] jit-backend-dump}
[c5866802cc5d480] {jit-backend-addr
Loop -1 () has address 0x7005b00790 to 0x7005b007a8 (bootstrap 0x7005b00780) 
       gc table: 0x7005b00770 
       function: 0x7005b00780 
         resops: 0x7005b00790 
       failures: 0x7005b007a8 
            end: 0x7005b007d4 
[c5866802cc6de00] jit-backend-addr}
[c5866802cc7ed80] {jit-mem-looptoken-alloc
allocating Bridge # 1 of Loop # -1 
[c5866802cca6800] jit-mem-looptoken-alloc}
[c5866802d0a1b00] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @7005b007f0 +0  B01F40F91F2003D51F2003D51F2003D51F2003D51F0211EB8A010054FF4300D1F10700F910FC80D210B6A0F2100EC0F2F00300F9101E80D210B6A0F2100EC0F21000E0F200023FD690F280D210B6A0F2100EC0F21000E0F200021FD6000020D4 
[c5866802d1d8200] jit-backend-dump}
[c5866802d224100] {jit-backend-addr
bridge out of Guard 0x119ce6cd0 has address 0x7005b007f0 to 0x7005b00850 
       gc table: 0x7005b007f0 
    jump target: 0x7005b007f0 
         resops: 0x7005b00838 
       failures: 0x7005b00850 
            end: 0x7005b00850 
[c5866802d233e80] jit-backend-addr}
[c5866802d2be180] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @7005b007a8 +0  10FE80D210B6A0F2100EC0F21000E0F200023FD6 
[c5866802d309500] jit-backend-dump}
[c5866802d33e480] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @7005b007f4 +0  310380D2 
[c5866802d35bb00] jit-backend-dump}
builder: rpython-macos-arm64 build #261
test: jit/backend/aarch64/test/test_runner/py/TestARM64/()/test_compile_asmlen