Skip to content

Instantly share code, notes, and snippets.

@brandtbucher
Created March 8, 2024 22:11
Show Gist options
  • Save brandtbucher/9d3cc396dcb15d13f7e971175e987f3a to your computer and use it in GitHub Desktop.
Save brandtbucher/9d3cc396dcb15d13f7e971175e987f3a to your computer and use it in GitHub Desktop.
x86_64-unknown-linux-gnu
This file has been truncated, but you can view the full file.
// a7920fd5915afd41455261c42b6e8788c63acc748805d466190366e56bbc90eb
// $ /home/brandtbucher/.pyenv/versions/3.13-dev/bin/python3.13 ./Tools/jit/build.py x86_64-pc-linux-gnu
typedef enum {
HoleKind_ARM64_RELOC_GOT_LOAD_PAGE21,
HoleKind_ARM64_RELOC_GOT_LOAD_PAGEOFF12,
HoleKind_ARM64_RELOC_PAGE21,
HoleKind_ARM64_RELOC_PAGEOFF12,
HoleKind_ARM64_RELOC_UNSIGNED,
HoleKind_IMAGE_REL_AMD64_REL32,
HoleKind_IMAGE_REL_ARM64_BRANCH26,
HoleKind_IMAGE_REL_ARM64_PAGEBASE_REL21,
HoleKind_IMAGE_REL_ARM64_PAGEOFFSET_12A,
HoleKind_IMAGE_REL_ARM64_PAGEOFFSET_12L,
HoleKind_IMAGE_REL_I386_DIR32,
HoleKind_IMAGE_REL_I386_REL32,
HoleKind_R_AARCH64_ABS64,
HoleKind_R_AARCH64_ADR_GOT_PAGE,
HoleKind_R_AARCH64_CALL26,
HoleKind_R_AARCH64_JUMP26,
HoleKind_R_AARCH64_LD64_GOT_LO12_NC,
HoleKind_R_AARCH64_MOVW_UABS_G0_NC,
HoleKind_R_AARCH64_MOVW_UABS_G1_NC,
HoleKind_R_AARCH64_MOVW_UABS_G2_NC,
HoleKind_R_AARCH64_MOVW_UABS_G3,
HoleKind_R_X86_64_64,
HoleKind_R_X86_64_GOTPCREL,
HoleKind_R_X86_64_GOTPCRELX,
HoleKind_R_X86_64_PC32,
HoleKind_R_X86_64_REX_GOTPCRELX,
HoleKind_X86_64_RELOC_BRANCH,
HoleKind_X86_64_RELOC_GOT,
HoleKind_X86_64_RELOC_GOT_LOAD,
HoleKind_X86_64_RELOC_SIGNED,
HoleKind_X86_64_RELOC_UNSIGNED,
} HoleKind;
typedef enum {
HoleValue_CODE,
HoleValue_CONTINUE,
HoleValue_DATA,
HoleValue_EXECUTOR,
HoleValue_GOT,
HoleValue_OPARG,
HoleValue_OPERAND,
HoleValue_TARGET,
HoleValue_TOP,
HoleValue_ZERO,
} HoleValue;
typedef struct {
const uint64_t offset;
const HoleKind kind;
const HoleValue value;
const void *symbol;
const uint64_t addend;
} Hole;
typedef struct {
const size_t body_size;
const unsigned char * const body;
const size_t holes_size;
const Hole * const holes;
} Stencil;
typedef struct {
const Stencil code;
const Stencil data;
} StencilGroup;
// _BEFORE_ASYNC_WITH
//
// /tmp/tmp2mfmnab2/_BEFORE_ASYNC_WITH.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d7 movq %rdx, %r15
// e: 48 89 f3 movq %rsi, %rbx
// 11: 49 89 fe movq %rdi, %r14
// 14: 4c 8b 6e f8 movq -0x8(%rsi), %r13
// 18: be 40 68 00 00 movl $0x6840, %esi # imm = 0x6840
// 1d: 48 03 35 00 00 00 00 addq (%rip), %rsi # 0x24 <_JIT_ENTRY+0x24>
// 0000000000000020: R_X86_64_REX_GOTPCRELX _PyRuntime-0x4
// 24: 4c 89 ef movq %r13, %rdi
// 27: ff 15 00 00 00 00 callq *(%rip) # 0x2d <_JIT_ENTRY+0x2d>
// 0000000000000029: R_X86_64_GOTPCRELX _PyObject_LookupSpecial-0x4
// 2d: 48 85 c0 testq %rax, %rax
// 30: 0f 84 90 00 00 00 je 0xc6 <_JIT_ENTRY+0xc6>
// 36: 49 89 c4 movq %rax, %r12
// 39: be 78 68 00 00 movl $0x6878, %esi # imm = 0x6878
// 3e: 48 03 35 00 00 00 00 addq (%rip), %rsi # 0x45 <_JIT_ENTRY+0x45>
// 0000000000000041: R_X86_64_REX_GOTPCRELX _PyRuntime-0x4
// 45: 4c 89 ef movq %r13, %rdi
// 48: ff 15 00 00 00 00 callq *(%rip) # 0x4e <_JIT_ENTRY+0x4e>
// 000000000000004a: R_X86_64_GOTPCRELX _PyObject_LookupSpecial-0x4
// 4e: 48 85 c0 testq %rax, %rax
// 51: 0f 84 a9 00 00 00 je 0x100 <_JIT_ENTRY+0x100>
// 57: 48 89 c5 movq %rax, %rbp
// 5a: 49 8b 45 00 movq (%r13), %rax
// 5e: 85 c0 testl %eax, %eax
// 60: 78 12 js 0x74 <_JIT_ENTRY+0x74>
// 62: 48 ff c8 decq %rax
// 65: 49 89 45 00 movq %rax, (%r13)
// 69: 75 09 jne 0x74 <_JIT_ENTRY+0x74>
// 6b: 4c 89 ef movq %r13, %rdi
// 6e: ff 15 00 00 00 00 callq *(%rip) # 0x74 <_JIT_ENTRY+0x74>
// 0000000000000070: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 74: 4c 89 e7 movq %r12, %rdi
// 77: ff 15 00 00 00 00 callq *(%rip) # 0x7d <_JIT_ENTRY+0x7d>
// 0000000000000079: R_X86_64_GOTPCRELX PyObject_CallNoArgs-0x4
// 7d: 49 89 c5 movq %rax, %r13
// 80: 49 8b 04 24 movq (%r12), %rax
// 84: 85 c0 testl %eax, %eax
// 86: 78 0d js 0x95 <_JIT_ENTRY+0x95>
// 88: 48 ff c8 decq %rax
// 8b: 49 89 04 24 movq %rax, (%r12)
// 8f: 0f 84 b5 00 00 00 je 0x14a <_JIT_ENTRY+0x14a>
// 95: 4d 85 ed testq %r13, %r13
// 98: 0f 84 be 00 00 00 je 0x15c <_JIT_ENTRY+0x15c>
// 9e: 48 89 6b f8 movq %rbp, -0x8(%rbx)
// a2: 4c 89 2b movq %r13, (%rbx)
// a5: 48 83 c3 08 addq $0x8, %rbx
// a9: 4c 89 f7 movq %r14, %rdi
// ac: 48 89 de movq %rbx, %rsi
// af: 4c 89 fa movq %r15, %rdx
// b2: 48 83 c4 08 addq $0x8, %rsp
// b6: 5b popq %rbx
// b7: 41 5c popq %r12
// b9: 41 5d popq %r13
// bb: 41 5e popq %r14
// bd: 41 5f popq %r15
// bf: 5d popq %rbp
// c0: ff 25 00 00 00 00 jmpq *(%rip) # 0xc6 <_JIT_ENTRY+0xc6>
// 00000000000000c2: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// c6: 49 8b 47 70 movq 0x70(%r15), %rax
// ca: 48 85 c0 testq %rax, %rax
// cd: 74 0b je 0xda <_JIT_ENTRY+0xda>
// cf: 48 83 78 08 00 cmpq $0x0, 0x8(%rax)
// d4: 0f 85 a0 00 00 00 jne 0x17a <_JIT_ENTRY+0x17a>
// da: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xe1 <_JIT_ENTRY+0xe1>
// 00000000000000dd: R_X86_64_REX_GOTPCRELX PyExc_TypeError-0x4
// e1: 48 8b 30 movq (%rax), %rsi
// e4: 49 8b 45 08 movq 0x8(%r13), %rax
// e8: 48 8b 48 18 movq 0x18(%rax), %rcx
// ec: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0xf3 <_JIT_ENTRY+0xf3>
// 00000000000000ef: R_X86_64_PC32 .L.str.15-0x4
// f3: 4c 89 ff movq %r15, %rdi
// f6: 31 c0 xorl %eax, %eax
// f8: ff 15 00 00 00 00 callq *(%rip) # 0xfe <_JIT_ENTRY+0xfe>
// 00000000000000fa: R_X86_64_GOTPCRELX _PyErr_Format-0x4
// fe: eb 7a jmp 0x17a <_JIT_ENTRY+0x17a>
// 100: 49 8b 47 70 movq 0x70(%r15), %rax
// 104: 48 85 c0 testq %rax, %rax
// 107: 74 07 je 0x110 <_JIT_ENTRY+0x110>
// 109: 48 83 78 08 00 cmpq $0x0, 0x8(%rax)
// 10e: 75 24 jne 0x134 <_JIT_ENTRY+0x134>
// 110: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x117 <_JIT_ENTRY+0x117>
// 0000000000000113: R_X86_64_REX_GOTPCRELX PyExc_TypeError-0x4
// 117: 48 8b 30 movq (%rax), %rsi
// 11a: 49 8b 45 08 movq 0x8(%r13), %rax
// 11e: 48 8b 48 18 movq 0x18(%rax), %rcx
// 122: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0x129 <_JIT_ENTRY+0x129>
// 0000000000000125: R_X86_64_PC32 .L.str.16-0x4
// 129: 4c 89 ff movq %r15, %rdi
// 12c: 31 c0 xorl %eax, %eax
// 12e: ff 15 00 00 00 00 callq *(%rip) # 0x134 <_JIT_ENTRY+0x134>
// 0000000000000130: R_X86_64_GOTPCRELX _PyErr_Format-0x4
// 134: 49 8b 04 24 movq (%r12), %rax
// 138: 85 c0 testl %eax, %eax
// 13a: 78 3e js 0x17a <_JIT_ENTRY+0x17a>
// 13c: 48 ff c8 decq %rax
// 13f: 49 89 04 24 movq %rax, (%r12)
// 143: 75 35 jne 0x17a <_JIT_ENTRY+0x17a>
// 145: 4c 89 e7 movq %r12, %rdi
// 148: eb 2a jmp 0x174 <_JIT_ENTRY+0x174>
// 14a: 4c 89 e7 movq %r12, %rdi
// 14d: ff 15 00 00 00 00 callq *(%rip) # 0x153 <_JIT_ENTRY+0x153>
// 000000000000014f: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 153: 4d 85 ed testq %r13, %r13
// 156: 0f 85 42 ff ff ff jne 0x9e <_JIT_ENTRY+0x9e>
// 15c: 48 83 c3 f8 addq $-0x8, %rbx
// 160: 48 8b 45 00 movq (%rbp), %rax
// 164: 85 c0 testl %eax, %eax
// 166: 78 12 js 0x17a <_JIT_ENTRY+0x17a>
// 168: 48 ff c8 decq %rax
// 16b: 48 89 45 00 movq %rax, (%rbp)
// 16f: 75 09 jne 0x17a <_JIT_ENTRY+0x17a>
// 171: 48 89 ef movq %rbp, %rdi
// 174: ff 15 00 00 00 00 callq *(%rip) # 0x17a <_JIT_ENTRY+0x17a>
// 0000000000000176: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 17a: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x181 <_JIT_ENTRY+0x181>
// 000000000000017d: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 181: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 188: 4c 29 f3 subq %r14, %rbx
// 18b: 48 83 c3 b8 addq $-0x48, %rbx
// 18f: 48 c1 eb 03 shrq $0x3, %rbx
// 193: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 197: 31 c0 xorl %eax, %eax
// 199: 48 83 c4 08 addq $0x8, %rsp
// 19d: 5b popq %rbx
// 19e: 41 5c popq %r12
// 1a0: 41 5d popq %r13
// 1a2: 41 5e popq %r14
// 1a4: 41 5f popq %r15
// 1a6: 5d popq %rbp
// 1a7: c3 retq
// 1a8:
static const unsigned char _BEFORE_ASYNC_WITH_code_body[425] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x48, 0x89,
0xf3, 0x49, 0x89, 0xfe, 0x4c, 0x8b, 0x6e, 0xf8,
0xbe, 0x40, 0x68, 0x00, 0x00, 0x48, 0x03, 0x35,
0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xef, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x85, 0xc0,
0x0f, 0x84, 0x90, 0x00, 0x00, 0x00, 0x49, 0x89,
0xc4, 0xbe, 0x78, 0x68, 0x00, 0x00, 0x48, 0x03,
0x35, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xef,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x85,
0xc0, 0x0f, 0x84, 0xa9, 0x00, 0x00, 0x00, 0x48,
0x89, 0xc5, 0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0,
0x78, 0x12, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x45,
0x00, 0x75, 0x09, 0x4c, 0x89, 0xef, 0xff, 0x15,
0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xe7, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0xc5,
0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, 0x0d,
0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, 0x0f,
0x84, 0xb5, 0x00, 0x00, 0x00, 0x4d, 0x85, 0xed,
0x0f, 0x84, 0xbe, 0x00, 0x00, 0x00, 0x48, 0x89,
0x6b, 0xf8, 0x4c, 0x89, 0x2b, 0x48, 0x83, 0xc3,
0x08, 0x4c, 0x89, 0xf7, 0x48, 0x89, 0xde, 0x4c,
0x89, 0xfa, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41,
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d,
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x49, 0x8b,
0x47, 0x70, 0x48, 0x85, 0xc0, 0x74, 0x0b, 0x48,
0x83, 0x78, 0x08, 0x00, 0x0f, 0x85, 0xa0, 0x00,
0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x48, 0x8b, 0x30, 0x49, 0x8b, 0x45, 0x08,
0x48, 0x8b, 0x48, 0x18, 0x48, 0x8d, 0x15, 0x00,
0x00, 0x00, 0x00, 0x4c, 0x89, 0xff, 0x31, 0xc0,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x7a,
0x49, 0x8b, 0x47, 0x70, 0x48, 0x85, 0xc0, 0x74,
0x07, 0x48, 0x83, 0x78, 0x08, 0x00, 0x75, 0x24,
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48,
0x8b, 0x30, 0x49, 0x8b, 0x45, 0x08, 0x48, 0x8b,
0x48, 0x18, 0x48, 0x8d, 0x15, 0x00, 0x00, 0x00,
0x00, 0x4c, 0x89, 0xff, 0x31, 0xc0, 0xff, 0x15,
0x00, 0x00, 0x00, 0x00, 0x49, 0x8b, 0x04, 0x24,
0x85, 0xc0, 0x78, 0x3e, 0x48, 0xff, 0xc8, 0x49,
0x89, 0x04, 0x24, 0x75, 0x35, 0x4c, 0x89, 0xe7,
0xeb, 0x2a, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x4d, 0x85, 0xed, 0x0f, 0x85,
0x42, 0xff, 0xff, 0xff, 0x48, 0x83, 0xc3, 0xf8,
0x48, 0x8b, 0x45, 0x00, 0x85, 0xc0, 0x78, 0x12,
0x48, 0xff, 0xc8, 0x48, 0x89, 0x45, 0x00, 0x75,
0x09, 0x48, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00,
0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00, 0x00,
0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8, 0x48,
0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, 0x31,
0xc0, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c,
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xc3,
};
static const Hole _BEFORE_ASYNC_WITH_code_holes[17] = {
{0x20, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xac},
{0x29, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xb4},
{0x41, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xac},
{0x4a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xb4},
{0x70, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xbc},
{0x79, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc4},
{0xc2, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xcc},
{0xdd, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xd4},
{0xef, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4},
{0xfa, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xdc},
{0x113, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xd4},
{0x125, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, 0x47},
{0x130, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xdc},
{0x14f, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xbc},
{0x176, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xbc},
{0x17d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xe4},
};
// 0: "'%.200s' object does not support the asynchronous context manager protocol\x00'%.200s' object does not support the asynchronous context manager protocol (missed __aexit__ method)\x00"
// b0:
// b0: &_PyRuntime+0x0
// b8: &_PyObject_LookupSpecial+0x0
// c0: &_Py_Dealloc+0x0
// c8: &PyObject_CallNoArgs+0x0
// d0: CONTINUE
// d8: &PyExc_TypeError+0x0
// e0: &_PyErr_Format+0x0
// e8: EXECUTOR
static const unsigned char _BEFORE_ASYNC_WITH_data_body[241] = {
0x27, 0x25, 0x2e, 0x32, 0x30, 0x30, 0x73, 0x27,
0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20,
0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74,
0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74,
0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x73, 0x79,
0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x6f, 0x75,
0x73, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78,
0x74, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
0x72, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63,
0x6f, 0x6c, 0x00, 0x27, 0x25, 0x2e, 0x32, 0x30,
0x30, 0x73, 0x27, 0x20, 0x6f, 0x62, 0x6a, 0x65,
0x63, 0x74, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20,
0x6e, 0x6f, 0x74, 0x20, 0x73, 0x75, 0x70, 0x70,
0x6f, 0x72, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20,
0x61, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f,
0x6e, 0x6f, 0x75, 0x73, 0x20, 0x63, 0x6f, 0x6e,
0x74, 0x65, 0x78, 0x74, 0x20, 0x6d, 0x61, 0x6e,
0x61, 0x67, 0x65, 0x72, 0x20, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x20, 0x28, 0x6d,
0x69, 0x73, 0x73, 0x65, 0x64, 0x20, 0x5f, 0x5f,
0x61, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x5f, 0x20,
0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x29, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _BEFORE_ASYNC_WITH_data_holes[9] = {
{0xb0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyRuntime, 0x0},
{0xb8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyObject_LookupSpecial, 0x0},
{0xc0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0xc8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_CallNoArgs, 0x0},
{0xd0, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0xd8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_TypeError, 0x0},
{0xe0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_Format, 0x0},
{0xe8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _BEFORE_WITH
//
// /tmp/tmp2mfmnab2/_BEFORE_WITH.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d7 movq %rdx, %r15
// e: 48 89 f3 movq %rsi, %rbx
// 11: 49 89 fe movq %rdi, %r14
// 14: 4c 8b 6e f8 movq -0x8(%rsi), %r13
// 18: be 28 70 00 00 movl $0x7028, %esi # imm = 0x7028
// 1d: 48 03 35 00 00 00 00 addq (%rip), %rsi # 0x24 <_JIT_ENTRY+0x24>
// 0000000000000020: R_X86_64_REX_GOTPCRELX _PyRuntime-0x4
// 24: 4c 89 ef movq %r13, %rdi
// 27: ff 15 00 00 00 00 callq *(%rip) # 0x2d <_JIT_ENTRY+0x2d>
// 0000000000000029: R_X86_64_GOTPCRELX _PyObject_LookupSpecial-0x4
// 2d: 48 85 c0 testq %rax, %rax
// 30: 0f 84 90 00 00 00 je 0xc6 <_JIT_ENTRY+0xc6>
// 36: 49 89 c4 movq %rax, %r12
// 39: be 90 70 00 00 movl $0x7090, %esi # imm = 0x7090
// 3e: 48 03 35 00 00 00 00 addq (%rip), %rsi # 0x45 <_JIT_ENTRY+0x45>
// 0000000000000041: R_X86_64_REX_GOTPCRELX _PyRuntime-0x4
// 45: 4c 89 ef movq %r13, %rdi
// 48: ff 15 00 00 00 00 callq *(%rip) # 0x4e <_JIT_ENTRY+0x4e>
// 000000000000004a: R_X86_64_GOTPCRELX _PyObject_LookupSpecial-0x4
// 4e: 48 85 c0 testq %rax, %rax
// 51: 0f 84 a9 00 00 00 je 0x100 <_JIT_ENTRY+0x100>
// 57: 48 89 c5 movq %rax, %rbp
// 5a: 49 8b 45 00 movq (%r13), %rax
// 5e: 85 c0 testl %eax, %eax
// 60: 78 12 js 0x74 <_JIT_ENTRY+0x74>
// 62: 48 ff c8 decq %rax
// 65: 49 89 45 00 movq %rax, (%r13)
// 69: 75 09 jne 0x74 <_JIT_ENTRY+0x74>
// 6b: 4c 89 ef movq %r13, %rdi
// 6e: ff 15 00 00 00 00 callq *(%rip) # 0x74 <_JIT_ENTRY+0x74>
// 0000000000000070: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 74: 4c 89 e7 movq %r12, %rdi
// 77: ff 15 00 00 00 00 callq *(%rip) # 0x7d <_JIT_ENTRY+0x7d>
// 0000000000000079: R_X86_64_GOTPCRELX PyObject_CallNoArgs-0x4
// 7d: 49 89 c5 movq %rax, %r13
// 80: 49 8b 04 24 movq (%r12), %rax
// 84: 85 c0 testl %eax, %eax
// 86: 78 0d js 0x95 <_JIT_ENTRY+0x95>
// 88: 48 ff c8 decq %rax
// 8b: 49 89 04 24 movq %rax, (%r12)
// 8f: 0f 84 b5 00 00 00 je 0x14a <_JIT_ENTRY+0x14a>
// 95: 4d 85 ed testq %r13, %r13
// 98: 0f 84 be 00 00 00 je 0x15c <_JIT_ENTRY+0x15c>
// 9e: 48 89 6b f8 movq %rbp, -0x8(%rbx)
// a2: 4c 89 2b movq %r13, (%rbx)
// a5: 48 83 c3 08 addq $0x8, %rbx
// a9: 4c 89 f7 movq %r14, %rdi
// ac: 48 89 de movq %rbx, %rsi
// af: 4c 89 fa movq %r15, %rdx
// b2: 48 83 c4 08 addq $0x8, %rsp
// b6: 5b popq %rbx
// b7: 41 5c popq %r12
// b9: 41 5d popq %r13
// bb: 41 5e popq %r14
// bd: 41 5f popq %r15
// bf: 5d popq %rbp
// c0: ff 25 00 00 00 00 jmpq *(%rip) # 0xc6 <_JIT_ENTRY+0xc6>
// 00000000000000c2: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// c6: 49 8b 47 70 movq 0x70(%r15), %rax
// ca: 48 85 c0 testq %rax, %rax
// cd: 74 0b je 0xda <_JIT_ENTRY+0xda>
// cf: 48 83 78 08 00 cmpq $0x0, 0x8(%rax)
// d4: 0f 85 a0 00 00 00 jne 0x17a <_JIT_ENTRY+0x17a>
// da: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xe1 <_JIT_ENTRY+0xe1>
// 00000000000000dd: R_X86_64_REX_GOTPCRELX PyExc_TypeError-0x4
// e1: 48 8b 30 movq (%rax), %rsi
// e4: 49 8b 45 08 movq 0x8(%r13), %rax
// e8: 48 8b 48 18 movq 0x18(%rax), %rcx
// ec: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0xf3 <_JIT_ENTRY+0xf3>
// 00000000000000ef: R_X86_64_PC32 .L.str.17-0x4
// f3: 4c 89 ff movq %r15, %rdi
// f6: 31 c0 xorl %eax, %eax
// f8: ff 15 00 00 00 00 callq *(%rip) # 0xfe <_JIT_ENTRY+0xfe>
// 00000000000000fa: R_X86_64_GOTPCRELX _PyErr_Format-0x4
// fe: eb 7a jmp 0x17a <_JIT_ENTRY+0x17a>
// 100: 49 8b 47 70 movq 0x70(%r15), %rax
// 104: 48 85 c0 testq %rax, %rax
// 107: 74 07 je 0x110 <_JIT_ENTRY+0x110>
// 109: 48 83 78 08 00 cmpq $0x0, 0x8(%rax)
// 10e: 75 24 jne 0x134 <_JIT_ENTRY+0x134>
// 110: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x117 <_JIT_ENTRY+0x117>
// 0000000000000113: R_X86_64_REX_GOTPCRELX PyExc_TypeError-0x4
// 117: 48 8b 30 movq (%rax), %rsi
// 11a: 49 8b 45 08 movq 0x8(%r13), %rax
// 11e: 48 8b 48 18 movq 0x18(%rax), %rcx
// 122: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0x129 <_JIT_ENTRY+0x129>
// 0000000000000125: R_X86_64_PC32 .L.str.18-0x4
// 129: 4c 89 ff movq %r15, %rdi
// 12c: 31 c0 xorl %eax, %eax
// 12e: ff 15 00 00 00 00 callq *(%rip) # 0x134 <_JIT_ENTRY+0x134>
// 0000000000000130: R_X86_64_GOTPCRELX _PyErr_Format-0x4
// 134: 49 8b 04 24 movq (%r12), %rax
// 138: 85 c0 testl %eax, %eax
// 13a: 78 3e js 0x17a <_JIT_ENTRY+0x17a>
// 13c: 48 ff c8 decq %rax
// 13f: 49 89 04 24 movq %rax, (%r12)
// 143: 75 35 jne 0x17a <_JIT_ENTRY+0x17a>
// 145: 4c 89 e7 movq %r12, %rdi
// 148: eb 2a jmp 0x174 <_JIT_ENTRY+0x174>
// 14a: 4c 89 e7 movq %r12, %rdi
// 14d: ff 15 00 00 00 00 callq *(%rip) # 0x153 <_JIT_ENTRY+0x153>
// 000000000000014f: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 153: 4d 85 ed testq %r13, %r13
// 156: 0f 85 42 ff ff ff jne 0x9e <_JIT_ENTRY+0x9e>
// 15c: 48 83 c3 f8 addq $-0x8, %rbx
// 160: 48 8b 45 00 movq (%rbp), %rax
// 164: 85 c0 testl %eax, %eax
// 166: 78 12 js 0x17a <_JIT_ENTRY+0x17a>
// 168: 48 ff c8 decq %rax
// 16b: 48 89 45 00 movq %rax, (%rbp)
// 16f: 75 09 jne 0x17a <_JIT_ENTRY+0x17a>
// 171: 48 89 ef movq %rbp, %rdi
// 174: ff 15 00 00 00 00 callq *(%rip) # 0x17a <_JIT_ENTRY+0x17a>
// 0000000000000176: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 17a: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x181 <_JIT_ENTRY+0x181>
// 000000000000017d: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 181: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 188: 4c 29 f3 subq %r14, %rbx
// 18b: 48 83 c3 b8 addq $-0x48, %rbx
// 18f: 48 c1 eb 03 shrq $0x3, %rbx
// 193: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 197: 31 c0 xorl %eax, %eax
// 199: 48 83 c4 08 addq $0x8, %rsp
// 19d: 5b popq %rbx
// 19e: 41 5c popq %r12
// 1a0: 41 5d popq %r13
// 1a2: 41 5e popq %r14
// 1a4: 41 5f popq %r15
// 1a6: 5d popq %rbp
// 1a7: c3 retq
// 1a8:
static const unsigned char _BEFORE_WITH_code_body[425] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x48, 0x89,
0xf3, 0x49, 0x89, 0xfe, 0x4c, 0x8b, 0x6e, 0xf8,
0xbe, 0x28, 0x70, 0x00, 0x00, 0x48, 0x03, 0x35,
0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xef, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x85, 0xc0,
0x0f, 0x84, 0x90, 0x00, 0x00, 0x00, 0x49, 0x89,
0xc4, 0xbe, 0x90, 0x70, 0x00, 0x00, 0x48, 0x03,
0x35, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xef,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x85,
0xc0, 0x0f, 0x84, 0xa9, 0x00, 0x00, 0x00, 0x48,
0x89, 0xc5, 0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0,
0x78, 0x12, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x45,
0x00, 0x75, 0x09, 0x4c, 0x89, 0xef, 0xff, 0x15,
0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xe7, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0xc5,
0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, 0x0d,
0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, 0x0f,
0x84, 0xb5, 0x00, 0x00, 0x00, 0x4d, 0x85, 0xed,
0x0f, 0x84, 0xbe, 0x00, 0x00, 0x00, 0x48, 0x89,
0x6b, 0xf8, 0x4c, 0x89, 0x2b, 0x48, 0x83, 0xc3,
0x08, 0x4c, 0x89, 0xf7, 0x48, 0x89, 0xde, 0x4c,
0x89, 0xfa, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41,
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d,
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x49, 0x8b,
0x47, 0x70, 0x48, 0x85, 0xc0, 0x74, 0x0b, 0x48,
0x83, 0x78, 0x08, 0x00, 0x0f, 0x85, 0xa0, 0x00,
0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x48, 0x8b, 0x30, 0x49, 0x8b, 0x45, 0x08,
0x48, 0x8b, 0x48, 0x18, 0x48, 0x8d, 0x15, 0x00,
0x00, 0x00, 0x00, 0x4c, 0x89, 0xff, 0x31, 0xc0,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x7a,
0x49, 0x8b, 0x47, 0x70, 0x48, 0x85, 0xc0, 0x74,
0x07, 0x48, 0x83, 0x78, 0x08, 0x00, 0x75, 0x24,
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48,
0x8b, 0x30, 0x49, 0x8b, 0x45, 0x08, 0x48, 0x8b,
0x48, 0x18, 0x48, 0x8d, 0x15, 0x00, 0x00, 0x00,
0x00, 0x4c, 0x89, 0xff, 0x31, 0xc0, 0xff, 0x15,
0x00, 0x00, 0x00, 0x00, 0x49, 0x8b, 0x04, 0x24,
0x85, 0xc0, 0x78, 0x3e, 0x48, 0xff, 0xc8, 0x49,
0x89, 0x04, 0x24, 0x75, 0x35, 0x4c, 0x89, 0xe7,
0xeb, 0x2a, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x4d, 0x85, 0xed, 0x0f, 0x85,
0x42, 0xff, 0xff, 0xff, 0x48, 0x83, 0xc3, 0xf8,
0x48, 0x8b, 0x45, 0x00, 0x85, 0xc0, 0x78, 0x12,
0x48, 0xff, 0xc8, 0x48, 0x89, 0x45, 0x00, 0x75,
0x09, 0x48, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00,
0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00, 0x00,
0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8, 0x48,
0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, 0x31,
0xc0, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c,
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xc3,
};
static const Hole _BEFORE_WITH_code_holes[17] = {
{0x20, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x94},
{0x29, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x9c},
{0x41, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x94},
{0x4a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x9c},
{0x70, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xa4},
{0x79, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xac},
{0xc2, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xb4},
{0xdd, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xbc},
{0xef, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4},
{0xfa, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc4},
{0x113, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xbc},
{0x125, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, 0x3a},
{0x130, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc4},
{0x14f, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xa4},
{0x176, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xa4},
{0x17d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xcc},
};
// 0: "'%.200s' object does not support the context manager protocol\x00'%.200s' object does not support the context manager protocol (missed __exit__ method)\x00"
// 95: 00 00 00
// 98: &_PyRuntime+0x0
// a0: &_PyObject_LookupSpecial+0x0
// a8: &_Py_Dealloc+0x0
// b0: &PyObject_CallNoArgs+0x0
// b8: CONTINUE
// c0: &PyExc_TypeError+0x0
// c8: &_PyErr_Format+0x0
// d0: EXECUTOR
static const unsigned char _BEFORE_WITH_data_body[217] = {
0x27, 0x25, 0x2e, 0x32, 0x30, 0x30, 0x73, 0x27,
0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20,
0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74,
0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74,
0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e,
0x74, 0x65, 0x78, 0x74, 0x20, 0x6d, 0x61, 0x6e,
0x61, 0x67, 0x65, 0x72, 0x20, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x00, 0x27, 0x25,
0x2e, 0x32, 0x30, 0x30, 0x73, 0x27, 0x20, 0x6f,
0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x64, 0x6f,
0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73,
0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74,
0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65,
0x78, 0x74, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67,
0x65, 0x72, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x63, 0x6f, 0x6c, 0x20, 0x28, 0x6d, 0x69, 0x73,
0x73, 0x65, 0x64, 0x20, 0x5f, 0x5f, 0x65, 0x78,
0x69, 0x74, 0x5f, 0x5f, 0x20, 0x6d, 0x65, 0x74,
0x68, 0x6f, 0x64, 0x29, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _BEFORE_WITH_data_holes[9] = {
{0x98, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyRuntime, 0x0},
{0xa0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyObject_LookupSpecial, 0x0},
{0xa8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0xb0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_CallNoArgs, 0x0},
{0xb8, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0xc0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_TypeError, 0x0},
{0xc8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_Format, 0x0},
{0xd0, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _BINARY_OP
//
// /tmp/tmp2mfmnab2/_BINARY_OP.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d6 movq %rdx, %r14
// e: 49 89 f7 movq %rsi, %r15
// 11: 48 89 fb movq %rdi, %rbx
// 14: 48 8b 6e f0 movq -0x10(%rsi), %rbp
// 18: 4c 8b 6e f8 movq -0x8(%rsi), %r13
// 1c: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x23 <_JIT_ENTRY+0x23>
// 000000000000001f: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 23: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x2a <_JIT_ENTRY+0x2a>
// 0000000000000026: R_X86_64_REX_GOTPCRELX _PyEval_BinaryOps-0x4
// 2a: 48 89 ef movq %rbp, %rdi
// 2d: 4c 89 ee movq %r13, %rsi
// 30: ff 14 c1 callq *(%rcx,%rax,8)
// 33: 49 89 c4 movq %rax, %r12
// 36: 48 8b 45 00 movq (%rbp), %rax
// 3a: 85 c0 testl %eax, %eax
// 3c: 78 09 js 0x47 <_JIT_ENTRY+0x47>
// 3e: 48 ff c8 decq %rax
// 41: 48 89 45 00 movq %rax, (%rbp)
// 45: 74 1c je 0x63 <_JIT_ENTRY+0x63>
// 47: 49 8b 45 00 movq (%r13), %rax
// 4b: 85 c0 testl %eax, %eax
// 4d: 78 25 js 0x74 <_JIT_ENTRY+0x74>
// 4f: 48 ff c8 decq %rax
// 52: 49 89 45 00 movq %rax, (%r13)
// 56: 75 1c jne 0x74 <_JIT_ENTRY+0x74>
// 58: 4c 89 ef movq %r13, %rdi
// 5b: ff 15 00 00 00 00 callq *(%rip) # 0x61 <_JIT_ENTRY+0x61>
// 000000000000005d: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 61: eb 11 jmp 0x74 <_JIT_ENTRY+0x74>
// 63: 48 89 ef movq %rbp, %rdi
// 66: ff 15 00 00 00 00 callq *(%rip) # 0x6c <_JIT_ENTRY+0x6c>
// 0000000000000068: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 6c: 49 8b 45 00 movq (%r13), %rax
// 70: 85 c0 testl %eax, %eax
// 72: 79 db jns 0x4f <_JIT_ENTRY+0x4f>
// 74: 49 8d 47 f0 leaq -0x10(%r15), %rax
// 78: 4d 85 e4 testq %r12, %r12
// 7b: 74 24 je 0xa1 <_JIT_ENTRY+0xa1>
// 7d: 49 83 c7 f8 addq $-0x8, %r15
// 81: 4c 89 20 movq %r12, (%rax)
// 84: 48 89 df movq %rbx, %rdi
// 87: 4c 89 fe movq %r15, %rsi
// 8a: 4c 89 f2 movq %r14, %rdx
// 8d: 48 83 c4 08 addq $0x8, %rsp
// 91: 5b popq %rbx
// 92: 41 5c popq %r12
// 94: 41 5d popq %r13
// 96: 41 5e popq %r14
// 98: 41 5f popq %r15
// 9a: 5d popq %rbp
// 9b: ff 25 00 00 00 00 jmpq *(%rip) # 0xa1 <_JIT_ENTRY+0xa1>
// 000000000000009d: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// a1: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xa8 <_JIT_ENTRY+0xa8>
// 00000000000000a4: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// a8: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14)
// af: 48 29 d8 subq %rbx, %rax
// b2: 48 83 c0 b8 addq $-0x48, %rax
// b6: 48 c1 e8 03 shrq $0x3, %rax
// ba: 89 43 40 movl %eax, 0x40(%rbx)
// bd: 31 c0 xorl %eax, %eax
// bf: 48 83 c4 08 addq $0x8, %rsp
// c3: 5b popq %rbx
// c4: 41 5c popq %r12
// c6: 41 5d popq %r13
// c8: 41 5e popq %r14
// ca: 41 5f popq %r15
// cc: 5d popq %rbp
// cd: c3 retq
// ce:
static const unsigned char _BINARY_OP_code_body[207] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89,
0xf7, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x6e, 0xf0,
0x4c, 0x8b, 0x6e, 0xf8, 0x0f, 0xb7, 0x05, 0x00,
0x00, 0x00, 0x00, 0x48, 0x8b, 0x0d, 0x00, 0x00,
0x00, 0x00, 0x48, 0x89, 0xef, 0x4c, 0x89, 0xee,
0xff, 0x14, 0xc1, 0x49, 0x89, 0xc4, 0x48, 0x8b,
0x45, 0x00, 0x85, 0xc0, 0x78, 0x09, 0x48, 0xff,
0xc8, 0x48, 0x89, 0x45, 0x00, 0x74, 0x1c, 0x49,
0x8b, 0x45, 0x00, 0x85, 0xc0, 0x78, 0x25, 0x48,
0xff, 0xc8, 0x49, 0x89, 0x45, 0x00, 0x75, 0x1c,
0x4c, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0xeb, 0x11, 0x48, 0x89, 0xef, 0xff, 0x15,
0x00, 0x00, 0x00, 0x00, 0x49, 0x8b, 0x45, 0x00,
0x85, 0xc0, 0x79, 0xdb, 0x49, 0x8d, 0x47, 0xf0,
0x4d, 0x85, 0xe4, 0x74, 0x24, 0x49, 0x83, 0xc7,
0xf8, 0x4c, 0x89, 0x20, 0x48, 0x89, 0xdf, 0x4c,
0x89, 0xfe, 0x4c, 0x89, 0xf2, 0x48, 0x83, 0xc4,
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e,
0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00, 0x00, 0x00,
0x00, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00,
0x49, 0x89, 0x8e, 0x28, 0x01, 0x00, 0x00, 0x48,
0x29, 0xd8, 0x48, 0x83, 0xc0, 0xb8, 0x48, 0xc1,
0xe8, 0x03, 0x89, 0x43, 0x40, 0x31, 0xc0, 0x48,
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d,
0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xc3,
};
static const Hole _BINARY_OP_code_holes[7] = {
{0x1f, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x26, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x5d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x68, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x9d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0xa4, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
};
// 0:
// 0: OPARG
// 8: &_PyEval_BinaryOps+0x0
// 10: &_Py_Dealloc+0x0
// 18: CONTINUE
// 20: EXECUTOR
static const unsigned char _BINARY_OP_data_body[41] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _BINARY_OP_data_holes[6] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyEval_BinaryOps, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _BINARY_OP_ADD_FLOAT
//
// /tmp/tmp2mfmnab2/_BINARY_OP_ADD_FLOAT.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 55 pushq %r13
// 6: 41 54 pushq %r12
// 8: 53 pushq %rbx
// 9: 49 89 d7 movq %rdx, %r15
// c: 48 89 f3 movq %rsi, %rbx
// f: 49 89 fe movq %rdi, %r14
// 12: 4c 8b 6e f0 movq -0x10(%rsi), %r13
// 16: 4c 8b 66 f8 movq -0x8(%rsi), %r12
// 1a: f2 41 0f 10 45 10 movsd 0x10(%r13), %xmm0 # xmm0 = mem[0],zero
// 20: f2 41 0f 58 44 24 10 addsd 0x10(%r12), %xmm0
// 27: 49 83 7d 00 01 cmpq $0x1, (%r13)
// 2c: 75 22 jne 0x50 <_JIT_ENTRY+0x50>
// 2e: f2 41 0f 11 45 10 movsd %xmm0, 0x10(%r13)
// 34: 49 8b 04 24 movq (%r12), %rax
// 38: 85 c0 testl %eax, %eax
// 3a: 78 62 js 0x9e <_JIT_ENTRY+0x9e>
// 3c: 48 ff c8 decq %rax
// 3f: 49 89 04 24 movq %rax, (%r12)
// 43: 75 59 jne 0x9e <_JIT_ENTRY+0x9e>
// 45: 4c 89 e7 movq %r12, %rdi
// 48: ff 15 00 00 00 00 callq *(%rip) # 0x4e <_JIT_ENTRY+0x4e>
// 000000000000004a: R_X86_64_GOTPCRELX _PyFloat_ExactDealloc-0x4
// 4e: eb 4e jmp 0x9e <_JIT_ENTRY+0x9e>
// 50: 49 83 3c 24 01 cmpq $0x1, (%r12)
// 55: 75 1b jne 0x72 <_JIT_ENTRY+0x72>
// 57: f2 41 0f 11 44 24 10 movsd %xmm0, 0x10(%r12)
// 5e: 49 8b 45 00 movq (%r13), %rax
// 62: 85 c0 testl %eax, %eax
// 64: 78 07 js 0x6d <_JIT_ENTRY+0x6d>
// 66: 48 ff c8 decq %rax
// 69: 49 89 45 00 movq %rax, (%r13)
// 6d: 4d 89 e5 movq %r12, %r13
// 70: eb 2c jmp 0x9e <_JIT_ENTRY+0x9e>
// 72: ff 15 00 00 00 00 callq *(%rip) # 0x78 <_JIT_ENTRY+0x78>
// 0000000000000074: R_X86_64_GOTPCRELX PyFloat_FromDouble-0x4
// 78: 48 85 c0 testq %rax, %rax
// 7b: 74 41 je 0xbe <_JIT_ENTRY+0xbe>
// 7d: 49 8b 4d 00 movq (%r13), %rcx
// 81: 85 c9 testl %ecx, %ecx
// 83: 78 07 js 0x8c <_JIT_ENTRY+0x8c>
// 85: 48 ff c9 decq %rcx
// 88: 49 89 4d 00 movq %rcx, (%r13)
// 8c: 49 8b 0c 24 movq (%r12), %rcx
// 90: 85 c9 testl %ecx, %ecx
// 92: 78 07 js 0x9b <_JIT_ENTRY+0x9b>
// 94: 48 ff c9 decq %rcx
// 97: 49 89 0c 24 movq %rcx, (%r12)
// 9b: 49 89 c5 movq %rax, %r13
// 9e: 4c 89 6b f0 movq %r13, -0x10(%rbx)
// a2: 48 83 c3 f8 addq $-0x8, %rbx
// a6: 4c 89 f7 movq %r14, %rdi
// a9: 48 89 de movq %rbx, %rsi
// ac: 4c 89 fa movq %r15, %rdx
// af: 5b popq %rbx
// b0: 41 5c popq %r12
// b2: 41 5d popq %r13
// b4: 41 5e popq %r14
// b6: 41 5f popq %r15
// b8: ff 25 00 00 00 00 jmpq *(%rip) # 0xbe <_JIT_ENTRY+0xbe>
// 00000000000000ba: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// be: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xc5 <_JIT_ENTRY+0xc5>
// 00000000000000c1: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// c5: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// cc: 4c 29 f3 subq %r14, %rbx
// cf: 48 83 c3 b8 addq $-0x48, %rbx
// d3: 48 c1 eb 03 shrq $0x3, %rbx
// d7: 41 89 5e 40 movl %ebx, 0x40(%r14)
// db: 31 c0 xorl %eax, %eax
// dd: 5b popq %rbx
// de: 41 5c popq %r12
// e0: 41 5d popq %r13
// e2: 41 5e popq %r14
// e4: 41 5f popq %r15
// e6: c3 retq
// e7:
static const unsigned char _BINARY_OP_ADD_FLOAT_code_body[232] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54,
0x53, 0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49,
0x89, 0xfe, 0x4c, 0x8b, 0x6e, 0xf0, 0x4c, 0x8b,
0x66, 0xf8, 0xf2, 0x41, 0x0f, 0x10, 0x45, 0x10,
0xf2, 0x41, 0x0f, 0x58, 0x44, 0x24, 0x10, 0x49,
0x83, 0x7d, 0x00, 0x01, 0x75, 0x22, 0xf2, 0x41,
0x0f, 0x11, 0x45, 0x10, 0x49, 0x8b, 0x04, 0x24,
0x85, 0xc0, 0x78, 0x62, 0x48, 0xff, 0xc8, 0x49,
0x89, 0x04, 0x24, 0x75, 0x59, 0x4c, 0x89, 0xe7,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x4e,
0x49, 0x83, 0x3c, 0x24, 0x01, 0x75, 0x1b, 0xf2,
0x41, 0x0f, 0x11, 0x44, 0x24, 0x10, 0x49, 0x8b,
0x45, 0x00, 0x85, 0xc0, 0x78, 0x07, 0x48, 0xff,
0xc8, 0x49, 0x89, 0x45, 0x00, 0x4d, 0x89, 0xe5,
0xeb, 0x2c, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x48, 0x85, 0xc0, 0x74, 0x41, 0x49, 0x8b, 0x4d,
0x00, 0x85, 0xc9, 0x78, 0x07, 0x48, 0xff, 0xc9,
0x49, 0x89, 0x4d, 0x00, 0x49, 0x8b, 0x0c, 0x24,
0x85, 0xc9, 0x78, 0x07, 0x48, 0xff, 0xc9, 0x49,
0x89, 0x0c, 0x24, 0x49, 0x89, 0xc5, 0x4c, 0x89,
0x6b, 0xf0, 0x48, 0x83, 0xc3, 0xf8, 0x4c, 0x89,
0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, 0x5b,
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f,
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b,
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87,
0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, 0xf3, 0x48,
0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb, 0x03, 0x41,
0x89, 0x5e, 0x40, 0x31, 0xc0, 0x5b, 0x41, 0x5c,
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0xc3,
};
static const Hole _BINARY_OP_ADD_FLOAT_code_holes[5] = {
{0x4a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x74, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0xba, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0xc1, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
};
// 0:
// 0: &_PyFloat_ExactDealloc+0x0
// 8: &PyFloat_FromDouble+0x0
// 10: CONTINUE
// 18: EXECUTOR
static const unsigned char _BINARY_OP_ADD_FLOAT_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _BINARY_OP_ADD_FLOAT_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyFloat_ExactDealloc, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyFloat_FromDouble, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _BINARY_OP_ADD_INT
//
// /tmp/tmp2mfmnab2/_BINARY_OP_ADD_INT.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d6 movq %rdx, %r14
// e: 49 89 f7 movq %rsi, %r15
// 11: 48 89 fb movq %rdi, %rbx
// 14: 4c 8b 6e f0 movq -0x10(%rsi), %r13
// 18: 48 8b 6e f8 movq -0x8(%rsi), %rbp
// 1c: 4c 89 ef movq %r13, %rdi
// 1f: 48 89 ee movq %rbp, %rsi
// 22: ff 15 00 00 00 00 callq *(%rip) # 0x28 <_JIT_ENTRY+0x28>
// 0000000000000024: R_X86_64_GOTPCRELX _PyLong_Add-0x4
// 28: 49 89 c4 movq %rax, %r12
// 2b: 48 8b 45 00 movq (%rbp), %rax
// 2f: 85 c0 testl %eax, %eax
// 31: 78 09 js 0x3c <_JIT_ENTRY+0x3c>
// 33: 48 ff c8 decq %rax
// 36: 48 89 45 00 movq %rax, (%rbp)
// 3a: 74 1c je 0x58 <_JIT_ENTRY+0x58>
// 3c: 49 8b 45 00 movq (%r13), %rax
// 40: 85 c0 testl %eax, %eax
// 42: 78 25 js 0x69 <_JIT_ENTRY+0x69>
// 44: 48 ff c8 decq %rax
// 47: 49 89 45 00 movq %rax, (%r13)
// 4b: 75 1c jne 0x69 <_JIT_ENTRY+0x69>
// 4d: 4c 89 ef movq %r13, %rdi
// 50: ff 15 00 00 00 00 callq *(%rip) # 0x56 <_JIT_ENTRY+0x56>
// 0000000000000052: R_X86_64_GOTPCRELX PyObject_Free-0x4
// 56: eb 11 jmp 0x69 <_JIT_ENTRY+0x69>
// 58: 48 89 ef movq %rbp, %rdi
// 5b: ff 15 00 00 00 00 callq *(%rip) # 0x61 <_JIT_ENTRY+0x61>
// 000000000000005d: R_X86_64_GOTPCRELX PyObject_Free-0x4
// 61: 49 8b 45 00 movq (%r13), %rax
// 65: 85 c0 testl %eax, %eax
// 67: 79 db jns 0x44 <_JIT_ENTRY+0x44>
// 69: 49 8d 47 f0 leaq -0x10(%r15), %rax
// 6d: 4d 85 e4 testq %r12, %r12
// 70: 74 24 je 0x96 <_JIT_ENTRY+0x96>
// 72: 49 83 c7 f8 addq $-0x8, %r15
// 76: 4c 89 20 movq %r12, (%rax)
// 79: 48 89 df movq %rbx, %rdi
// 7c: 4c 89 fe movq %r15, %rsi
// 7f: 4c 89 f2 movq %r14, %rdx
// 82: 48 83 c4 08 addq $0x8, %rsp
// 86: 5b popq %rbx
// 87: 41 5c popq %r12
// 89: 41 5d popq %r13
// 8b: 41 5e popq %r14
// 8d: 41 5f popq %r15
// 8f: 5d popq %rbp
// 90: ff 25 00 00 00 00 jmpq *(%rip) # 0x96 <_JIT_ENTRY+0x96>
// 0000000000000092: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 96: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x9d <_JIT_ENTRY+0x9d>
// 0000000000000099: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 9d: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14)
// a4: 48 29 d8 subq %rbx, %rax
// a7: 48 83 c0 b8 addq $-0x48, %rax
// ab: 48 c1 e8 03 shrq $0x3, %rax
// af: 89 43 40 movl %eax, 0x40(%rbx)
// b2: 31 c0 xorl %eax, %eax
// b4: 48 83 c4 08 addq $0x8, %rsp
// b8: 5b popq %rbx
// b9: 41 5c popq %r12
// bb: 41 5d popq %r13
// bd: 41 5e popq %r14
// bf: 41 5f popq %r15
// c1: 5d popq %rbp
// c2: c3 retq
// c3:
static const unsigned char _BINARY_OP_ADD_INT_code_body[196] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89,
0xf7, 0x48, 0x89, 0xfb, 0x4c, 0x8b, 0x6e, 0xf0,
0x48, 0x8b, 0x6e, 0xf8, 0x4c, 0x89, 0xef, 0x48,
0x89, 0xee, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x49, 0x89, 0xc4, 0x48, 0x8b, 0x45, 0x00, 0x85,
0xc0, 0x78, 0x09, 0x48, 0xff, 0xc8, 0x48, 0x89,
0x45, 0x00, 0x74, 0x1c, 0x49, 0x8b, 0x45, 0x00,
0x85, 0xc0, 0x78, 0x25, 0x48, 0xff, 0xc8, 0x49,
0x89, 0x45, 0x00, 0x75, 0x1c, 0x4c, 0x89, 0xef,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x11,
0x48, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0, 0x79,
0xdb, 0x49, 0x8d, 0x47, 0xf0, 0x4d, 0x85, 0xe4,
0x74, 0x24, 0x49, 0x83, 0xc7, 0xf8, 0x4c, 0x89,
0x20, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c,
0x89, 0xf2, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41,
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d,
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b,
0x0d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x8e,
0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xd8, 0x48,
0x83, 0xc0, 0xb8, 0x48, 0xc1, 0xe8, 0x03, 0x89,
0x43, 0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4, 0x08,
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41,
0x5f, 0x5d, 0xc3,
};
static const Hole _BINARY_OP_ADD_INT_code_holes[6] = {
{0x24, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x52, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x5d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x92, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x99, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
};
// 0:
// 0: &_PyLong_Add+0x0
// 8: &PyObject_Free+0x0
// 10: CONTINUE
// 18: EXECUTOR
static const unsigned char _BINARY_OP_ADD_INT_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _BINARY_OP_ADD_INT_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyLong_Add, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_Free, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _BINARY_OP_ADD_UNICODE
//
// /tmp/tmp2mfmnab2/_BINARY_OP_ADD_UNICODE.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d6 movq %rdx, %r14
// e: 49 89 f7 movq %rsi, %r15
// 11: 48 89 fb movq %rdi, %rbx
// 14: 48 8b 6e f0 movq -0x10(%rsi), %rbp
// 18: 4c 8b 6e f8 movq -0x8(%rsi), %r13
// 1c: 48 89 ef movq %rbp, %rdi
// 1f: 4c 89 ee movq %r13, %rsi
// 22: ff 15 00 00 00 00 callq *(%rip) # 0x28 <_JIT_ENTRY+0x28>
// 0000000000000024: R_X86_64_GOTPCRELX PyUnicode_Concat-0x4
// 28: 49 89 c4 movq %rax, %r12
// 2b: 48 8b 45 00 movq (%rbp), %rax
// 2f: 85 c0 testl %eax, %eax
// 31: 78 09 js 0x3c <_JIT_ENTRY+0x3c>
// 33: 48 ff c8 decq %rax
// 36: 48 89 45 00 movq %rax, (%rbp)
// 3a: 74 1c je 0x58 <_JIT_ENTRY+0x58>
// 3c: 49 8b 45 00 movq (%r13), %rax
// 40: 85 c0 testl %eax, %eax
// 42: 78 25 js 0x69 <_JIT_ENTRY+0x69>
// 44: 48 ff c8 decq %rax
// 47: 49 89 45 00 movq %rax, (%r13)
// 4b: 75 1c jne 0x69 <_JIT_ENTRY+0x69>
// 4d: 4c 89 ef movq %r13, %rdi
// 50: ff 15 00 00 00 00 callq *(%rip) # 0x56 <_JIT_ENTRY+0x56>
// 0000000000000052: R_X86_64_GOTPCRELX _PyUnicode_ExactDealloc-0x4
// 56: eb 11 jmp 0x69 <_JIT_ENTRY+0x69>
// 58: 48 89 ef movq %rbp, %rdi
// 5b: ff 15 00 00 00 00 callq *(%rip) # 0x61 <_JIT_ENTRY+0x61>
// 000000000000005d: R_X86_64_GOTPCRELX _PyUnicode_ExactDealloc-0x4
// 61: 49 8b 45 00 movq (%r13), %rax
// 65: 85 c0 testl %eax, %eax
// 67: 79 db jns 0x44 <_JIT_ENTRY+0x44>
// 69: 49 8d 47 f0 leaq -0x10(%r15), %rax
// 6d: 4d 85 e4 testq %r12, %r12
// 70: 74 24 je 0x96 <_JIT_ENTRY+0x96>
// 72: 49 83 c7 f8 addq $-0x8, %r15
// 76: 4c 89 20 movq %r12, (%rax)
// 79: 48 89 df movq %rbx, %rdi
// 7c: 4c 89 fe movq %r15, %rsi
// 7f: 4c 89 f2 movq %r14, %rdx
// 82: 48 83 c4 08 addq $0x8, %rsp
// 86: 5b popq %rbx
// 87: 41 5c popq %r12
// 89: 41 5d popq %r13
// 8b: 41 5e popq %r14
// 8d: 41 5f popq %r15
// 8f: 5d popq %rbp
// 90: ff 25 00 00 00 00 jmpq *(%rip) # 0x96 <_JIT_ENTRY+0x96>
// 0000000000000092: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 96: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x9d <_JIT_ENTRY+0x9d>
// 0000000000000099: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 9d: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14)
// a4: 48 29 d8 subq %rbx, %rax
// a7: 48 83 c0 b8 addq $-0x48, %rax
// ab: 48 c1 e8 03 shrq $0x3, %rax
// af: 89 43 40 movl %eax, 0x40(%rbx)
// b2: 31 c0 xorl %eax, %eax
// b4: 48 83 c4 08 addq $0x8, %rsp
// b8: 5b popq %rbx
// b9: 41 5c popq %r12
// bb: 41 5d popq %r13
// bd: 41 5e popq %r14
// bf: 41 5f popq %r15
// c1: 5d popq %rbp
// c2: c3 retq
// c3:
static const unsigned char _BINARY_OP_ADD_UNICODE_code_body[196] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89,
0xf7, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x6e, 0xf0,
0x4c, 0x8b, 0x6e, 0xf8, 0x48, 0x89, 0xef, 0x4c,
0x89, 0xee, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x49, 0x89, 0xc4, 0x48, 0x8b, 0x45, 0x00, 0x85,
0xc0, 0x78, 0x09, 0x48, 0xff, 0xc8, 0x48, 0x89,
0x45, 0x00, 0x74, 0x1c, 0x49, 0x8b, 0x45, 0x00,
0x85, 0xc0, 0x78, 0x25, 0x48, 0xff, 0xc8, 0x49,
0x89, 0x45, 0x00, 0x75, 0x1c, 0x4c, 0x89, 0xef,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x11,
0x48, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0, 0x79,
0xdb, 0x49, 0x8d, 0x47, 0xf0, 0x4d, 0x85, 0xe4,
0x74, 0x24, 0x49, 0x83, 0xc7, 0xf8, 0x4c, 0x89,
0x20, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c,
0x89, 0xf2, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41,
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d,
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b,
0x0d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x8e,
0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xd8, 0x48,
0x83, 0xc0, 0xb8, 0x48, 0xc1, 0xe8, 0x03, 0x89,
0x43, 0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4, 0x08,
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41,
0x5f, 0x5d, 0xc3,
};
static const Hole _BINARY_OP_ADD_UNICODE_code_holes[6] = {
{0x24, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x52, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x5d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x92, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x99, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
};
// 0:
// 0: &PyUnicode_Concat+0x0
// 8: &_PyUnicode_ExactDealloc+0x0
// 10: CONTINUE
// 18: EXECUTOR
static const unsigned char _BINARY_OP_ADD_UNICODE_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _BINARY_OP_ADD_UNICODE_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyUnicode_Concat, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyUnicode_ExactDealloc, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _BINARY_OP_MULTIPLY_FLOAT
//
// /tmp/tmp2mfmnab2/_BINARY_OP_MULTIPLY_FLOAT.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 55 pushq %r13
// 6: 41 54 pushq %r12
// 8: 53 pushq %rbx
// 9: 49 89 d7 movq %rdx, %r15
// c: 48 89 f3 movq %rsi, %rbx
// f: 49 89 fe movq %rdi, %r14
// 12: 4c 8b 6e f0 movq -0x10(%rsi), %r13
// 16: 4c 8b 66 f8 movq -0x8(%rsi), %r12
// 1a: f2 41 0f 10 45 10 movsd 0x10(%r13), %xmm0 # xmm0 = mem[0],zero
// 20: f2 41 0f 59 44 24 10 mulsd 0x10(%r12), %xmm0
// 27: 49 83 7d 00 01 cmpq $0x1, (%r13)
// 2c: 75 22 jne 0x50 <_JIT_ENTRY+0x50>
// 2e: f2 41 0f 11 45 10 movsd %xmm0, 0x10(%r13)
// 34: 49 8b 04 24 movq (%r12), %rax
// 38: 85 c0 testl %eax, %eax
// 3a: 78 62 js 0x9e <_JIT_ENTRY+0x9e>
// 3c: 48 ff c8 decq %rax
// 3f: 49 89 04 24 movq %rax, (%r12)
// 43: 75 59 jne 0x9e <_JIT_ENTRY+0x9e>
// 45: 4c 89 e7 movq %r12, %rdi
// 48: ff 15 00 00 00 00 callq *(%rip) # 0x4e <_JIT_ENTRY+0x4e>
// 000000000000004a: R_X86_64_GOTPCRELX _PyFloat_ExactDealloc-0x4
// 4e: eb 4e jmp 0x9e <_JIT_ENTRY+0x9e>
// 50: 49 83 3c 24 01 cmpq $0x1, (%r12)
// 55: 75 1b jne 0x72 <_JIT_ENTRY+0x72>
// 57: f2 41 0f 11 44 24 10 movsd %xmm0, 0x10(%r12)
// 5e: 49 8b 45 00 movq (%r13), %rax
// 62: 85 c0 testl %eax, %eax
// 64: 78 07 js 0x6d <_JIT_ENTRY+0x6d>
// 66: 48 ff c8 decq %rax
// 69: 49 89 45 00 movq %rax, (%r13)
// 6d: 4d 89 e5 movq %r12, %r13
// 70: eb 2c jmp 0x9e <_JIT_ENTRY+0x9e>
// 72: ff 15 00 00 00 00 callq *(%rip) # 0x78 <_JIT_ENTRY+0x78>
// 0000000000000074: R_X86_64_GOTPCRELX PyFloat_FromDouble-0x4
// 78: 48 85 c0 testq %rax, %rax
// 7b: 74 41 je 0xbe <_JIT_ENTRY+0xbe>
// 7d: 49 8b 4d 00 movq (%r13), %rcx
// 81: 85 c9 testl %ecx, %ecx
// 83: 78 07 js 0x8c <_JIT_ENTRY+0x8c>
// 85: 48 ff c9 decq %rcx
// 88: 49 89 4d 00 movq %rcx, (%r13)
// 8c: 49 8b 0c 24 movq (%r12), %rcx
// 90: 85 c9 testl %ecx, %ecx
// 92: 78 07 js 0x9b <_JIT_ENTRY+0x9b>
// 94: 48 ff c9 decq %rcx
// 97: 49 89 0c 24 movq %rcx, (%r12)
// 9b: 49 89 c5 movq %rax, %r13
// 9e: 4c 89 6b f0 movq %r13, -0x10(%rbx)
// a2: 48 83 c3 f8 addq $-0x8, %rbx
// a6: 4c 89 f7 movq %r14, %rdi
// a9: 48 89 de movq %rbx, %rsi
// ac: 4c 89 fa movq %r15, %rdx
// af: 5b popq %rbx
// b0: 41 5c popq %r12
// b2: 41 5d popq %r13
// b4: 41 5e popq %r14
// b6: 41 5f popq %r15
// b8: ff 25 00 00 00 00 jmpq *(%rip) # 0xbe <_JIT_ENTRY+0xbe>
// 00000000000000ba: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// be: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xc5 <_JIT_ENTRY+0xc5>
// 00000000000000c1: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// c5: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// cc: 4c 29 f3 subq %r14, %rbx
// cf: 48 83 c3 b8 addq $-0x48, %rbx
// d3: 48 c1 eb 03 shrq $0x3, %rbx
// d7: 41 89 5e 40 movl %ebx, 0x40(%r14)
// db: 31 c0 xorl %eax, %eax
// dd: 5b popq %rbx
// de: 41 5c popq %r12
// e0: 41 5d popq %r13
// e2: 41 5e popq %r14
// e4: 41 5f popq %r15
// e6: c3 retq
// e7:
static const unsigned char _BINARY_OP_MULTIPLY_FLOAT_code_body[232] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54,
0x53, 0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49,
0x89, 0xfe, 0x4c, 0x8b, 0x6e, 0xf0, 0x4c, 0x8b,
0x66, 0xf8, 0xf2, 0x41, 0x0f, 0x10, 0x45, 0x10,
0xf2, 0x41, 0x0f, 0x59, 0x44, 0x24, 0x10, 0x49,
0x83, 0x7d, 0x00, 0x01, 0x75, 0x22, 0xf2, 0x41,
0x0f, 0x11, 0x45, 0x10, 0x49, 0x8b, 0x04, 0x24,
0x85, 0xc0, 0x78, 0x62, 0x48, 0xff, 0xc8, 0x49,
0x89, 0x04, 0x24, 0x75, 0x59, 0x4c, 0x89, 0xe7,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x4e,
0x49, 0x83, 0x3c, 0x24, 0x01, 0x75, 0x1b, 0xf2,
0x41, 0x0f, 0x11, 0x44, 0x24, 0x10, 0x49, 0x8b,
0x45, 0x00, 0x85, 0xc0, 0x78, 0x07, 0x48, 0xff,
0xc8, 0x49, 0x89, 0x45, 0x00, 0x4d, 0x89, 0xe5,
0xeb, 0x2c, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x48, 0x85, 0xc0, 0x74, 0x41, 0x49, 0x8b, 0x4d,
0x00, 0x85, 0xc9, 0x78, 0x07, 0x48, 0xff, 0xc9,
0x49, 0x89, 0x4d, 0x00, 0x49, 0x8b, 0x0c, 0x24,
0x85, 0xc9, 0x78, 0x07, 0x48, 0xff, 0xc9, 0x49,
0x89, 0x0c, 0x24, 0x49, 0x89, 0xc5, 0x4c, 0x89,
0x6b, 0xf0, 0x48, 0x83, 0xc3, 0xf8, 0x4c, 0x89,
0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, 0x5b,
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f,
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b,
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87,
0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, 0xf3, 0x48,
0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb, 0x03, 0x41,
0x89, 0x5e, 0x40, 0x31, 0xc0, 0x5b, 0x41, 0x5c,
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0xc3,
};
static const Hole _BINARY_OP_MULTIPLY_FLOAT_code_holes[5] = {
{0x4a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x74, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0xba, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0xc1, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
};
// 0:
// 0: &_PyFloat_ExactDealloc+0x0
// 8: &PyFloat_FromDouble+0x0
// 10: CONTINUE
// 18: EXECUTOR
static const unsigned char _BINARY_OP_MULTIPLY_FLOAT_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _BINARY_OP_MULTIPLY_FLOAT_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyFloat_ExactDealloc, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyFloat_FromDouble, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _BINARY_OP_MULTIPLY_INT
//
// /tmp/tmp2mfmnab2/_BINARY_OP_MULTIPLY_INT.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d6 movq %rdx, %r14
// e: 49 89 f7 movq %rsi, %r15
// 11: 48 89 fb movq %rdi, %rbx
// 14: 4c 8b 6e f0 movq -0x10(%rsi), %r13
// 18: 48 8b 6e f8 movq -0x8(%rsi), %rbp
// 1c: 4c 89 ef movq %r13, %rdi
// 1f: 48 89 ee movq %rbp, %rsi
// 22: ff 15 00 00 00 00 callq *(%rip) # 0x28 <_JIT_ENTRY+0x28>
// 0000000000000024: R_X86_64_GOTPCRELX _PyLong_Multiply-0x4
// 28: 49 89 c4 movq %rax, %r12
// 2b: 48 8b 45 00 movq (%rbp), %rax
// 2f: 85 c0 testl %eax, %eax
// 31: 78 09 js 0x3c <_JIT_ENTRY+0x3c>
// 33: 48 ff c8 decq %rax
// 36: 48 89 45 00 movq %rax, (%rbp)
// 3a: 74 1c je 0x58 <_JIT_ENTRY+0x58>
// 3c: 49 8b 45 00 movq (%r13), %rax
// 40: 85 c0 testl %eax, %eax
// 42: 78 25 js 0x69 <_JIT_ENTRY+0x69>
// 44: 48 ff c8 decq %rax
// 47: 49 89 45 00 movq %rax, (%r13)
// 4b: 75 1c jne 0x69 <_JIT_ENTRY+0x69>
// 4d: 4c 89 ef movq %r13, %rdi
// 50: ff 15 00 00 00 00 callq *(%rip) # 0x56 <_JIT_ENTRY+0x56>
// 0000000000000052: R_X86_64_GOTPCRELX PyObject_Free-0x4
// 56: eb 11 jmp 0x69 <_JIT_ENTRY+0x69>
// 58: 48 89 ef movq %rbp, %rdi
// 5b: ff 15 00 00 00 00 callq *(%rip) # 0x61 <_JIT_ENTRY+0x61>
// 000000000000005d: R_X86_64_GOTPCRELX PyObject_Free-0x4
// 61: 49 8b 45 00 movq (%r13), %rax
// 65: 85 c0 testl %eax, %eax
// 67: 79 db jns 0x44 <_JIT_ENTRY+0x44>
// 69: 49 8d 47 f0 leaq -0x10(%r15), %rax
// 6d: 4d 85 e4 testq %r12, %r12
// 70: 74 24 je 0x96 <_JIT_ENTRY+0x96>
// 72: 49 83 c7 f8 addq $-0x8, %r15
// 76: 4c 89 20 movq %r12, (%rax)
// 79: 48 89 df movq %rbx, %rdi
// 7c: 4c 89 fe movq %r15, %rsi
// 7f: 4c 89 f2 movq %r14, %rdx
// 82: 48 83 c4 08 addq $0x8, %rsp
// 86: 5b popq %rbx
// 87: 41 5c popq %r12
// 89: 41 5d popq %r13
// 8b: 41 5e popq %r14
// 8d: 41 5f popq %r15
// 8f: 5d popq %rbp
// 90: ff 25 00 00 00 00 jmpq *(%rip) # 0x96 <_JIT_ENTRY+0x96>
// 0000000000000092: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 96: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x9d <_JIT_ENTRY+0x9d>
// 0000000000000099: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 9d: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14)
// a4: 48 29 d8 subq %rbx, %rax
// a7: 48 83 c0 b8 addq $-0x48, %rax
// ab: 48 c1 e8 03 shrq $0x3, %rax
// af: 89 43 40 movl %eax, 0x40(%rbx)
// b2: 31 c0 xorl %eax, %eax
// b4: 48 83 c4 08 addq $0x8, %rsp
// b8: 5b popq %rbx
// b9: 41 5c popq %r12
// bb: 41 5d popq %r13
// bd: 41 5e popq %r14
// bf: 41 5f popq %r15
// c1: 5d popq %rbp
// c2: c3 retq
// c3:
static const unsigned char _BINARY_OP_MULTIPLY_INT_code_body[196] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89,
0xf7, 0x48, 0x89, 0xfb, 0x4c, 0x8b, 0x6e, 0xf0,
0x48, 0x8b, 0x6e, 0xf8, 0x4c, 0x89, 0xef, 0x48,
0x89, 0xee, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x49, 0x89, 0xc4, 0x48, 0x8b, 0x45, 0x00, 0x85,
0xc0, 0x78, 0x09, 0x48, 0xff, 0xc8, 0x48, 0x89,
0x45, 0x00, 0x74, 0x1c, 0x49, 0x8b, 0x45, 0x00,
0x85, 0xc0, 0x78, 0x25, 0x48, 0xff, 0xc8, 0x49,
0x89, 0x45, 0x00, 0x75, 0x1c, 0x4c, 0x89, 0xef,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x11,
0x48, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0, 0x79,
0xdb, 0x49, 0x8d, 0x47, 0xf0, 0x4d, 0x85, 0xe4,
0x74, 0x24, 0x49, 0x83, 0xc7, 0xf8, 0x4c, 0x89,
0x20, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c,
0x89, 0xf2, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41,
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d,
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b,
0x0d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x8e,
0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xd8, 0x48,
0x83, 0xc0, 0xb8, 0x48, 0xc1, 0xe8, 0x03, 0x89,
0x43, 0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4, 0x08,
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41,
0x5f, 0x5d, 0xc3,
};
static const Hole _BINARY_OP_MULTIPLY_INT_code_holes[6] = {
{0x24, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x52, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x5d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x92, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x99, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
};
// 0:
// 0: &_PyLong_Multiply+0x0
// 8: &PyObject_Free+0x0
// 10: CONTINUE
// 18: EXECUTOR
static const unsigned char _BINARY_OP_MULTIPLY_INT_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _BINARY_OP_MULTIPLY_INT_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyLong_Multiply, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_Free, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _BINARY_OP_SUBTRACT_FLOAT
//
// /tmp/tmp2mfmnab2/_BINARY_OP_SUBTRACT_FLOAT.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 55 pushq %r13
// 6: 41 54 pushq %r12
// 8: 53 pushq %rbx
// 9: 49 89 d7 movq %rdx, %r15
// c: 48 89 f3 movq %rsi, %rbx
// f: 49 89 fe movq %rdi, %r14
// 12: 4c 8b 6e f0 movq -0x10(%rsi), %r13
// 16: 4c 8b 66 f8 movq -0x8(%rsi), %r12
// 1a: f2 41 0f 10 45 10 movsd 0x10(%r13), %xmm0 # xmm0 = mem[0],zero
// 20: f2 41 0f 5c 44 24 10 subsd 0x10(%r12), %xmm0
// 27: 49 83 7d 00 01 cmpq $0x1, (%r13)
// 2c: 75 22 jne 0x50 <_JIT_ENTRY+0x50>
// 2e: f2 41 0f 11 45 10 movsd %xmm0, 0x10(%r13)
// 34: 49 8b 04 24 movq (%r12), %rax
// 38: 85 c0 testl %eax, %eax
// 3a: 78 62 js 0x9e <_JIT_ENTRY+0x9e>
// 3c: 48 ff c8 decq %rax
// 3f: 49 89 04 24 movq %rax, (%r12)
// 43: 75 59 jne 0x9e <_JIT_ENTRY+0x9e>
// 45: 4c 89 e7 movq %r12, %rdi
// 48: ff 15 00 00 00 00 callq *(%rip) # 0x4e <_JIT_ENTRY+0x4e>
// 000000000000004a: R_X86_64_GOTPCRELX _PyFloat_ExactDealloc-0x4
// 4e: eb 4e jmp 0x9e <_JIT_ENTRY+0x9e>
// 50: 49 83 3c 24 01 cmpq $0x1, (%r12)
// 55: 75 1b jne 0x72 <_JIT_ENTRY+0x72>
// 57: f2 41 0f 11 44 24 10 movsd %xmm0, 0x10(%r12)
// 5e: 49 8b 45 00 movq (%r13), %rax
// 62: 85 c0 testl %eax, %eax
// 64: 78 07 js 0x6d <_JIT_ENTRY+0x6d>
// 66: 48 ff c8 decq %rax
// 69: 49 89 45 00 movq %rax, (%r13)
// 6d: 4d 89 e5 movq %r12, %r13
// 70: eb 2c jmp 0x9e <_JIT_ENTRY+0x9e>
// 72: ff 15 00 00 00 00 callq *(%rip) # 0x78 <_JIT_ENTRY+0x78>
// 0000000000000074: R_X86_64_GOTPCRELX PyFloat_FromDouble-0x4
// 78: 48 85 c0 testq %rax, %rax
// 7b: 74 41 je 0xbe <_JIT_ENTRY+0xbe>
// 7d: 49 8b 4d 00 movq (%r13), %rcx
// 81: 85 c9 testl %ecx, %ecx
// 83: 78 07 js 0x8c <_JIT_ENTRY+0x8c>
// 85: 48 ff c9 decq %rcx
// 88: 49 89 4d 00 movq %rcx, (%r13)
// 8c: 49 8b 0c 24 movq (%r12), %rcx
// 90: 85 c9 testl %ecx, %ecx
// 92: 78 07 js 0x9b <_JIT_ENTRY+0x9b>
// 94: 48 ff c9 decq %rcx
// 97: 49 89 0c 24 movq %rcx, (%r12)
// 9b: 49 89 c5 movq %rax, %r13
// 9e: 4c 89 6b f0 movq %r13, -0x10(%rbx)
// a2: 48 83 c3 f8 addq $-0x8, %rbx
// a6: 4c 89 f7 movq %r14, %rdi
// a9: 48 89 de movq %rbx, %rsi
// ac: 4c 89 fa movq %r15, %rdx
// af: 5b popq %rbx
// b0: 41 5c popq %r12
// b2: 41 5d popq %r13
// b4: 41 5e popq %r14
// b6: 41 5f popq %r15
// b8: ff 25 00 00 00 00 jmpq *(%rip) # 0xbe <_JIT_ENTRY+0xbe>
// 00000000000000ba: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// be: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xc5 <_JIT_ENTRY+0xc5>
// 00000000000000c1: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// c5: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// cc: 4c 29 f3 subq %r14, %rbx
// cf: 48 83 c3 b8 addq $-0x48, %rbx
// d3: 48 c1 eb 03 shrq $0x3, %rbx
// d7: 41 89 5e 40 movl %ebx, 0x40(%r14)
// db: 31 c0 xorl %eax, %eax
// dd: 5b popq %rbx
// de: 41 5c popq %r12
// e0: 41 5d popq %r13
// e2: 41 5e popq %r14
// e4: 41 5f popq %r15
// e6: c3 retq
// e7:
static const unsigned char _BINARY_OP_SUBTRACT_FLOAT_code_body[232] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54,
0x53, 0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49,
0x89, 0xfe, 0x4c, 0x8b, 0x6e, 0xf0, 0x4c, 0x8b,
0x66, 0xf8, 0xf2, 0x41, 0x0f, 0x10, 0x45, 0x10,
0xf2, 0x41, 0x0f, 0x5c, 0x44, 0x24, 0x10, 0x49,
0x83, 0x7d, 0x00, 0x01, 0x75, 0x22, 0xf2, 0x41,
0x0f, 0x11, 0x45, 0x10, 0x49, 0x8b, 0x04, 0x24,
0x85, 0xc0, 0x78, 0x62, 0x48, 0xff, 0xc8, 0x49,
0x89, 0x04, 0x24, 0x75, 0x59, 0x4c, 0x89, 0xe7,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x4e,
0x49, 0x83, 0x3c, 0x24, 0x01, 0x75, 0x1b, 0xf2,
0x41, 0x0f, 0x11, 0x44, 0x24, 0x10, 0x49, 0x8b,
0x45, 0x00, 0x85, 0xc0, 0x78, 0x07, 0x48, 0xff,
0xc8, 0x49, 0x89, 0x45, 0x00, 0x4d, 0x89, 0xe5,
0xeb, 0x2c, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x48, 0x85, 0xc0, 0x74, 0x41, 0x49, 0x8b, 0x4d,
0x00, 0x85, 0xc9, 0x78, 0x07, 0x48, 0xff, 0xc9,
0x49, 0x89, 0x4d, 0x00, 0x49, 0x8b, 0x0c, 0x24,
0x85, 0xc9, 0x78, 0x07, 0x48, 0xff, 0xc9, 0x49,
0x89, 0x0c, 0x24, 0x49, 0x89, 0xc5, 0x4c, 0x89,
0x6b, 0xf0, 0x48, 0x83, 0xc3, 0xf8, 0x4c, 0x89,
0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, 0x5b,
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f,
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b,
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87,
0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, 0xf3, 0x48,
0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb, 0x03, 0x41,
0x89, 0x5e, 0x40, 0x31, 0xc0, 0x5b, 0x41, 0x5c,
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0xc3,
};
static const Hole _BINARY_OP_SUBTRACT_FLOAT_code_holes[5] = {
{0x4a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x74, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0xba, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0xc1, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
};
// 0:
// 0: &_PyFloat_ExactDealloc+0x0
// 8: &PyFloat_FromDouble+0x0
// 10: CONTINUE
// 18: EXECUTOR
static const unsigned char _BINARY_OP_SUBTRACT_FLOAT_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _BINARY_OP_SUBTRACT_FLOAT_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyFloat_ExactDealloc, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyFloat_FromDouble, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _BINARY_OP_SUBTRACT_INT
//
// /tmp/tmp2mfmnab2/_BINARY_OP_SUBTRACT_INT.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d6 movq %rdx, %r14
// e: 49 89 f7 movq %rsi, %r15
// 11: 48 89 fb movq %rdi, %rbx
// 14: 4c 8b 6e f0 movq -0x10(%rsi), %r13
// 18: 48 8b 6e f8 movq -0x8(%rsi), %rbp
// 1c: 4c 89 ef movq %r13, %rdi
// 1f: 48 89 ee movq %rbp, %rsi
// 22: ff 15 00 00 00 00 callq *(%rip) # 0x28 <_JIT_ENTRY+0x28>
// 0000000000000024: R_X86_64_GOTPCRELX _PyLong_Subtract-0x4
// 28: 49 89 c4 movq %rax, %r12
// 2b: 48 8b 45 00 movq (%rbp), %rax
// 2f: 85 c0 testl %eax, %eax
// 31: 78 09 js 0x3c <_JIT_ENTRY+0x3c>
// 33: 48 ff c8 decq %rax
// 36: 48 89 45 00 movq %rax, (%rbp)
// 3a: 74 1c je 0x58 <_JIT_ENTRY+0x58>
// 3c: 49 8b 45 00 movq (%r13), %rax
// 40: 85 c0 testl %eax, %eax
// 42: 78 25 js 0x69 <_JIT_ENTRY+0x69>
// 44: 48 ff c8 decq %rax
// 47: 49 89 45 00 movq %rax, (%r13)
// 4b: 75 1c jne 0x69 <_JIT_ENTRY+0x69>
// 4d: 4c 89 ef movq %r13, %rdi
// 50: ff 15 00 00 00 00 callq *(%rip) # 0x56 <_JIT_ENTRY+0x56>
// 0000000000000052: R_X86_64_GOTPCRELX PyObject_Free-0x4
// 56: eb 11 jmp 0x69 <_JIT_ENTRY+0x69>
// 58: 48 89 ef movq %rbp, %rdi
// 5b: ff 15 00 00 00 00 callq *(%rip) # 0x61 <_JIT_ENTRY+0x61>
// 000000000000005d: R_X86_64_GOTPCRELX PyObject_Free-0x4
// 61: 49 8b 45 00 movq (%r13), %rax
// 65: 85 c0 testl %eax, %eax
// 67: 79 db jns 0x44 <_JIT_ENTRY+0x44>
// 69: 49 8d 47 f0 leaq -0x10(%r15), %rax
// 6d: 4d 85 e4 testq %r12, %r12
// 70: 74 24 je 0x96 <_JIT_ENTRY+0x96>
// 72: 49 83 c7 f8 addq $-0x8, %r15
// 76: 4c 89 20 movq %r12, (%rax)
// 79: 48 89 df movq %rbx, %rdi
// 7c: 4c 89 fe movq %r15, %rsi
// 7f: 4c 89 f2 movq %r14, %rdx
// 82: 48 83 c4 08 addq $0x8, %rsp
// 86: 5b popq %rbx
// 87: 41 5c popq %r12
// 89: 41 5d popq %r13
// 8b: 41 5e popq %r14
// 8d: 41 5f popq %r15
// 8f: 5d popq %rbp
// 90: ff 25 00 00 00 00 jmpq *(%rip) # 0x96 <_JIT_ENTRY+0x96>
// 0000000000000092: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 96: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x9d <_JIT_ENTRY+0x9d>
// 0000000000000099: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 9d: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14)
// a4: 48 29 d8 subq %rbx, %rax
// a7: 48 83 c0 b8 addq $-0x48, %rax
// ab: 48 c1 e8 03 shrq $0x3, %rax
// af: 89 43 40 movl %eax, 0x40(%rbx)
// b2: 31 c0 xorl %eax, %eax
// b4: 48 83 c4 08 addq $0x8, %rsp
// b8: 5b popq %rbx
// b9: 41 5c popq %r12
// bb: 41 5d popq %r13
// bd: 41 5e popq %r14
// bf: 41 5f popq %r15
// c1: 5d popq %rbp
// c2: c3 retq
// c3:
static const unsigned char _BINARY_OP_SUBTRACT_INT_code_body[196] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89,
0xf7, 0x48, 0x89, 0xfb, 0x4c, 0x8b, 0x6e, 0xf0,
0x48, 0x8b, 0x6e, 0xf8, 0x4c, 0x89, 0xef, 0x48,
0x89, 0xee, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x49, 0x89, 0xc4, 0x48, 0x8b, 0x45, 0x00, 0x85,
0xc0, 0x78, 0x09, 0x48, 0xff, 0xc8, 0x48, 0x89,
0x45, 0x00, 0x74, 0x1c, 0x49, 0x8b, 0x45, 0x00,
0x85, 0xc0, 0x78, 0x25, 0x48, 0xff, 0xc8, 0x49,
0x89, 0x45, 0x00, 0x75, 0x1c, 0x4c, 0x89, 0xef,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x11,
0x48, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0, 0x79,
0xdb, 0x49, 0x8d, 0x47, 0xf0, 0x4d, 0x85, 0xe4,
0x74, 0x24, 0x49, 0x83, 0xc7, 0xf8, 0x4c, 0x89,
0x20, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c,
0x89, 0xf2, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41,
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d,
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b,
0x0d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x8e,
0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xd8, 0x48,
0x83, 0xc0, 0xb8, 0x48, 0xc1, 0xe8, 0x03, 0x89,
0x43, 0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4, 0x08,
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41,
0x5f, 0x5d, 0xc3,
};
static const Hole _BINARY_OP_SUBTRACT_INT_code_holes[6] = {
{0x24, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x52, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x5d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x92, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x99, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
};
// 0:
// 0: &_PyLong_Subtract+0x0
// 8: &PyObject_Free+0x0
// 10: CONTINUE
// 18: EXECUTOR
static const unsigned char _BINARY_OP_SUBTRACT_INT_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _BINARY_OP_SUBTRACT_INT_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyLong_Subtract, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_Free, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _BINARY_SLICE
//
// /tmp/tmp2mfmnab2/_BINARY_SLICE.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d6 movq %rdx, %r14
// e: 49 89 f7 movq %rsi, %r15
// 11: 48 89 fb movq %rdi, %rbx
// 14: 48 8b 76 f8 movq -0x8(%rsi), %rsi
// 18: 4d 8b 67 e8 movq -0x18(%r15), %r12
// 1c: 49 8b 7f f0 movq -0x10(%r15), %rdi
// 20: ff 15 00 00 00 00 callq *(%rip) # 0x26 <_JIT_ENTRY+0x26>
// 0000000000000022: R_X86_64_GOTPCRELX _PyBuildSlice_ConsumeRefs-0x4
// 26: 48 85 c0 testq %rax, %rax
// 29: 74 2e je 0x59 <_JIT_ENTRY+0x59>
// 2b: 48 89 c5 movq %rax, %rbp
// 2e: 4c 89 e7 movq %r12, %rdi
// 31: 48 89 c6 movq %rax, %rsi
// 34: ff 15 00 00 00 00 callq *(%rip) # 0x3a <_JIT_ENTRY+0x3a>
// 0000000000000036: R_X86_64_GOTPCRELX PyObject_GetItem-0x4
// 3a: 49 89 c5 movq %rax, %r13
// 3d: 48 8b 45 00 movq (%rbp), %rax
// 41: 85 c0 testl %eax, %eax
// 43: 78 17 js 0x5c <_JIT_ENTRY+0x5c>
// 45: 48 ff c8 decq %rax
// 48: 48 89 45 00 movq %rax, (%rbp)
// 4c: 75 0e jne 0x5c <_JIT_ENTRY+0x5c>
// 4e: 48 89 ef movq %rbp, %rdi
// 51: ff 15 00 00 00 00 callq *(%rip) # 0x57 <_JIT_ENTRY+0x57>
// 0000000000000053: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 57: eb 03 jmp 0x5c <_JIT_ENTRY+0x5c>
// 59: 45 31 ed xorl %r13d, %r13d
// 5c: 49 8b 04 24 movq (%r12), %rax
// 60: 85 c0 testl %eax, %eax
// 62: 78 09 js 0x6d <_JIT_ENTRY+0x6d>
// 64: 48 ff c8 decq %rax
// 67: 49 89 04 24 movq %rax, (%r12)
// 6b: 74 2d je 0x9a <_JIT_ENTRY+0x9a>
// 6d: 49 8d 47 e8 leaq -0x18(%r15), %rax
// 71: 4d 85 ed testq %r13, %r13
// 74: 74 36 je 0xac <_JIT_ENTRY+0xac>
// 76: 49 83 c7 f0 addq $-0x10, %r15
// 7a: 4c 89 28 movq %r13, (%rax)
// 7d: 48 89 df movq %rbx, %rdi
// 80: 4c 89 fe movq %r15, %rsi
// 83: 4c 89 f2 movq %r14, %rdx
// 86: 48 83 c4 08 addq $0x8, %rsp
// 8a: 5b popq %rbx
// 8b: 41 5c popq %r12
// 8d: 41 5d popq %r13
// 8f: 41 5e popq %r14
// 91: 41 5f popq %r15
// 93: 5d popq %rbp
// 94: ff 25 00 00 00 00 jmpq *(%rip) # 0x9a <_JIT_ENTRY+0x9a>
// 0000000000000096: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 9a: 4c 89 e7 movq %r12, %rdi
// 9d: ff 15 00 00 00 00 callq *(%rip) # 0xa3 <_JIT_ENTRY+0xa3>
// 000000000000009f: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// a3: 49 8d 47 e8 leaq -0x18(%r15), %rax
// a7: 4d 85 ed testq %r13, %r13
// aa: 75 ca jne 0x76 <_JIT_ENTRY+0x76>
// ac: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xb3 <_JIT_ENTRY+0xb3>
// 00000000000000af: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// b3: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14)
// ba: 48 29 d8 subq %rbx, %rax
// bd: 48 83 c0 b8 addq $-0x48, %rax
// c1: 48 c1 e8 03 shrq $0x3, %rax
// c5: 89 43 40 movl %eax, 0x40(%rbx)
// c8: 31 c0 xorl %eax, %eax
// ca: 48 83 c4 08 addq $0x8, %rsp
// ce: 5b popq %rbx
// cf: 41 5c popq %r12
// d1: 41 5d popq %r13
// d3: 41 5e popq %r14
// d5: 41 5f popq %r15
// d7: 5d popq %rbp
// d8: c3 retq
// d9:
static const unsigned char _BINARY_SLICE_code_body[218] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89,
0xf7, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x76, 0xf8,
0x4d, 0x8b, 0x67, 0xe8, 0x49, 0x8b, 0x7f, 0xf0,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x85,
0xc0, 0x74, 0x2e, 0x48, 0x89, 0xc5, 0x4c, 0x89,
0xe7, 0x48, 0x89, 0xc6, 0xff, 0x15, 0x00, 0x00,
0x00, 0x00, 0x49, 0x89, 0xc5, 0x48, 0x8b, 0x45,
0x00, 0x85, 0xc0, 0x78, 0x17, 0x48, 0xff, 0xc8,
0x48, 0x89, 0x45, 0x00, 0x75, 0x0e, 0x48, 0x89,
0xef, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb,
0x03, 0x45, 0x31, 0xed, 0x49, 0x8b, 0x04, 0x24,
0x85, 0xc0, 0x78, 0x09, 0x48, 0xff, 0xc8, 0x49,
0x89, 0x04, 0x24, 0x74, 0x2d, 0x49, 0x8d, 0x47,
0xe8, 0x4d, 0x85, 0xed, 0x74, 0x36, 0x49, 0x83,
0xc7, 0xf0, 0x4c, 0x89, 0x28, 0x48, 0x89, 0xdf,
0x4c, 0x89, 0xfe, 0x4c, 0x89, 0xf2, 0x48, 0x83,
0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41,
0x5e, 0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00, 0x00,
0x00, 0x00, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x49, 0x8d, 0x47, 0xe8, 0x4d,
0x85, 0xed, 0x75, 0xca, 0x48, 0x8b, 0x0d, 0x00,
0x00, 0x00, 0x00, 0x49, 0x89, 0x8e, 0x28, 0x01,
0x00, 0x00, 0x48, 0x29, 0xd8, 0x48, 0x83, 0xc0,
0xb8, 0x48, 0xc1, 0xe8, 0x03, 0x89, 0x43, 0x40,
0x31, 0xc0, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41,
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d,
0xc3,
};
static const Hole _BINARY_SLICE_code_holes[7] = {
{0x22, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x36, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x53, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x96, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x9f, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0xaf, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
};
// 0:
// 0: &_PyBuildSlice_ConsumeRefs+0x0
// 8: &PyObject_GetItem+0x0
// 10: &_Py_Dealloc+0x0
// 18: CONTINUE
// 20: EXECUTOR
static const unsigned char _BINARY_SLICE_data_body[41] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _BINARY_SLICE_data_holes[6] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyBuildSlice_ConsumeRefs, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_GetItem, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _BINARY_SUBSCR
//
// /tmp/tmp2mfmnab2/_BINARY_SUBSCR.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d6 movq %rdx, %r14
// e: 49 89 f7 movq %rsi, %r15
// 11: 48 89 fb movq %rdi, %rbx
// 14: 48 8b 6e f0 movq -0x10(%rsi), %rbp
// 18: 4c 8b 6e f8 movq -0x8(%rsi), %r13
// 1c: 48 89 ef movq %rbp, %rdi
// 1f: 4c 89 ee movq %r13, %rsi
// 22: ff 15 00 00 00 00 callq *(%rip) # 0x28 <_JIT_ENTRY+0x28>
// 0000000000000024: R_X86_64_GOTPCRELX PyObject_GetItem-0x4
// 28: 49 89 c4 movq %rax, %r12
// 2b: 48 8b 45 00 movq (%rbp), %rax
// 2f: 85 c0 testl %eax, %eax
// 31: 78 09 js 0x3c <_JIT_ENTRY+0x3c>
// 33: 48 ff c8 decq %rax
// 36: 48 89 45 00 movq %rax, (%rbp)
// 3a: 74 1c je 0x58 <_JIT_ENTRY+0x58>
// 3c: 49 8b 45 00 movq (%r13), %rax
// 40: 85 c0 testl %eax, %eax
// 42: 78 25 js 0x69 <_JIT_ENTRY+0x69>
// 44: 48 ff c8 decq %rax
// 47: 49 89 45 00 movq %rax, (%r13)
// 4b: 75 1c jne 0x69 <_JIT_ENTRY+0x69>
// 4d: 4c 89 ef movq %r13, %rdi
// 50: ff 15 00 00 00 00 callq *(%rip) # 0x56 <_JIT_ENTRY+0x56>
// 0000000000000052: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 56: eb 11 jmp 0x69 <_JIT_ENTRY+0x69>
// 58: 48 89 ef movq %rbp, %rdi
// 5b: ff 15 00 00 00 00 callq *(%rip) # 0x61 <_JIT_ENTRY+0x61>
// 000000000000005d: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 61: 49 8b 45 00 movq (%r13), %rax
// 65: 85 c0 testl %eax, %eax
// 67: 79 db jns 0x44 <_JIT_ENTRY+0x44>
// 69: 49 8d 47 f0 leaq -0x10(%r15), %rax
// 6d: 4d 85 e4 testq %r12, %r12
// 70: 74 24 je 0x96 <_JIT_ENTRY+0x96>
// 72: 49 83 c7 f8 addq $-0x8, %r15
// 76: 4c 89 20 movq %r12, (%rax)
// 79: 48 89 df movq %rbx, %rdi
// 7c: 4c 89 fe movq %r15, %rsi
// 7f: 4c 89 f2 movq %r14, %rdx
// 82: 48 83 c4 08 addq $0x8, %rsp
// 86: 5b popq %rbx
// 87: 41 5c popq %r12
// 89: 41 5d popq %r13
// 8b: 41 5e popq %r14
// 8d: 41 5f popq %r15
// 8f: 5d popq %rbp
// 90: ff 25 00 00 00 00 jmpq *(%rip) # 0x96 <_JIT_ENTRY+0x96>
// 0000000000000092: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 96: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x9d <_JIT_ENTRY+0x9d>
// 0000000000000099: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 9d: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14)
// a4: 48 29 d8 subq %rbx, %rax
// a7: 48 83 c0 b8 addq $-0x48, %rax
// ab: 48 c1 e8 03 shrq $0x3, %rax
// af: 89 43 40 movl %eax, 0x40(%rbx)
// b2: 31 c0 xorl %eax, %eax
// b4: 48 83 c4 08 addq $0x8, %rsp
// b8: 5b popq %rbx
// b9: 41 5c popq %r12
// bb: 41 5d popq %r13
// bd: 41 5e popq %r14
// bf: 41 5f popq %r15
// c1: 5d popq %rbp
// c2: c3 retq
// c3:
static const unsigned char _BINARY_SUBSCR_code_body[196] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89,
0xf7, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x6e, 0xf0,
0x4c, 0x8b, 0x6e, 0xf8, 0x48, 0x89, 0xef, 0x4c,
0x89, 0xee, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x49, 0x89, 0xc4, 0x48, 0x8b, 0x45, 0x00, 0x85,
0xc0, 0x78, 0x09, 0x48, 0xff, 0xc8, 0x48, 0x89,
0x45, 0x00, 0x74, 0x1c, 0x49, 0x8b, 0x45, 0x00,
0x85, 0xc0, 0x78, 0x25, 0x48, 0xff, 0xc8, 0x49,
0x89, 0x45, 0x00, 0x75, 0x1c, 0x4c, 0x89, 0xef,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x11,
0x48, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0, 0x79,
0xdb, 0x49, 0x8d, 0x47, 0xf0, 0x4d, 0x85, 0xe4,
0x74, 0x24, 0x49, 0x83, 0xc7, 0xf8, 0x4c, 0x89,
0x20, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c,
0x89, 0xf2, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41,
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d,
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b,
0x0d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x8e,
0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xd8, 0x48,
0x83, 0xc0, 0xb8, 0x48, 0xc1, 0xe8, 0x03, 0x89,
0x43, 0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4, 0x08,
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41,
0x5f, 0x5d, 0xc3,
};
static const Hole _BINARY_SUBSCR_code_holes[6] = {
{0x24, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x52, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x5d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x92, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x99, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
};
// 0:
// 0: &PyObject_GetItem+0x0
// 8: &_Py_Dealloc+0x0
// 10: CONTINUE
// 18: EXECUTOR
static const unsigned char _BINARY_SUBSCR_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _BINARY_SUBSCR_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_GetItem, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _BINARY_SUBSCR_DICT
//
// /tmp/tmp2mfmnab2/_BINARY_SUBSCR_DICT.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d7 movq %rdx, %r15
// e: 49 89 f6 movq %rsi, %r14
// 11: 48 89 fb movq %rdi, %rbx
// 14: 4c 8b 6e f0 movq -0x10(%rsi), %r13
// 18: 49 8b 45 08 movq 0x8(%r13), %rax
// 1c: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x23 <_JIT_ENTRY+0x23>
// 000000000000001f: R_X86_64_REX_GOTPCRELX PyDict_Type-0x4
// 23: 74 3f je 0x64 <_JIT_ENTRY+0x64>
// 25: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x2c <_JIT_ENTRY+0x2c>
// 0000000000000028: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 2c: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 33: 49 29 de subq %rbx, %r14
// 36: 49 83 c6 b8 addq $-0x48, %r14
// 3a: 49 c1 ee 03 shrq $0x3, %r14
// 3e: 44 89 73 40 movl %r14d, 0x40(%rbx)
// 42: 48 8b 03 movq (%rbx), %rax
// 45: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4b <_JIT_ENTRY+0x4b>
// 0000000000000047: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 4b: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 4f: 48 05 c8 00 00 00 addq $0xc8, %rax
// 55: 48 83 c4 08 addq $0x8, %rsp
// 59: 5b popq %rbx
// 5a: 41 5c popq %r12
// 5c: 41 5d popq %r13
// 5e: 41 5e popq %r14
// 60: 41 5f popq %r15
// 62: 5d popq %rbp
// 63: c3 retq
// 64: 4d 8b 66 f8 movq -0x8(%r14), %r12
// 68: 48 89 e2 movq %rsp, %rdx
// 6b: 4c 89 ef movq %r13, %rdi
// 6e: 4c 89 e6 movq %r12, %rsi
// 71: ff 15 00 00 00 00 callq *(%rip) # 0x77 <_JIT_ENTRY+0x77>
// 0000000000000073: R_X86_64_GOTPCRELX PyDict_GetItemRef-0x4
// 77: 89 c5 movl %eax, %ebp
// 79: 85 c0 testl %eax, %eax
// 7b: 74 0a je 0x87 <_JIT_ENTRY+0x87>
// 7d: 49 8b 45 00 movq (%r13), %rax
// 81: 85 c0 testl %eax, %eax
// 83: 79 13 jns 0x98 <_JIT_ENTRY+0x98>
// 85: eb 23 jmp 0xaa <_JIT_ENTRY+0xaa>
// 87: 4c 89 e7 movq %r12, %rdi
// 8a: ff 15 00 00 00 00 callq *(%rip) # 0x90 <_JIT_ENTRY+0x90>
// 000000000000008c: R_X86_64_GOTPCRELX _PyErr_SetKeyError-0x4
// 90: 49 8b 45 00 movq (%r13), %rax
// 94: 85 c0 testl %eax, %eax
// 96: 78 12 js 0xaa <_JIT_ENTRY+0xaa>
// 98: 48 ff c8 decq %rax
// 9b: 49 89 45 00 movq %rax, (%r13)
// 9f: 75 09 jne 0xaa <_JIT_ENTRY+0xaa>
// a1: 4c 89 ef movq %r13, %rdi
// a4: ff 15 00 00 00 00 callq *(%rip) # 0xaa <_JIT_ENTRY+0xaa>
// 00000000000000a6: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// aa: 49 8b 04 24 movq (%r12), %rax
// ae: 85 c0 testl %eax, %eax
// b0: 78 09 js 0xbb <_JIT_ENTRY+0xbb>
// b2: 48 ff c8 decq %rax
// b5: 49 89 04 24 movq %rax, (%r12)
// b9: 74 30 je 0xeb <_JIT_ENTRY+0xeb>
// bb: 49 8d 46 f0 leaq -0x10(%r14), %rax
// bf: 85 ed testl %ebp, %ebp
// c1: 7e 39 jle 0xfc <_JIT_ENTRY+0xfc>
// c3: 49 83 c6 f8 addq $-0x8, %r14
// c7: 48 8b 0c 24 movq (%rsp), %rcx
// cb: 48 89 08 movq %rcx, (%rax)
// ce: 48 89 df movq %rbx, %rdi
// d1: 4c 89 f6 movq %r14, %rsi
// d4: 4c 89 fa movq %r15, %rdx
// d7: 48 83 c4 08 addq $0x8, %rsp
// db: 5b popq %rbx
// dc: 41 5c popq %r12
// de: 41 5d popq %r13
// e0: 41 5e popq %r14
// e2: 41 5f popq %r15
// e4: 5d popq %rbp
// e5: ff 25 00 00 00 00 jmpq *(%rip) # 0xeb <_JIT_ENTRY+0xeb>
// 00000000000000e7: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// eb: 4c 89 e7 movq %r12, %rdi
// ee: ff 15 00 00 00 00 callq *(%rip) # 0xf4 <_JIT_ENTRY+0xf4>
// 00000000000000f0: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// f4: 49 8d 46 f0 leaq -0x10(%r14), %rax
// f8: 85 ed testl %ebp, %ebp
// fa: 7f c7 jg 0xc3 <_JIT_ENTRY+0xc3>
// fc: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x103 <_JIT_ENTRY+0x103>
// 00000000000000ff: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 103: 49 89 8f 28 01 00 00 movq %rcx, 0x128(%r15)
// 10a: 48 29 d8 subq %rbx, %rax
// 10d: 48 83 c0 b8 addq $-0x48, %rax
// 111: 48 c1 e8 03 shrq $0x3, %rax
// 115: 89 43 40 movl %eax, 0x40(%rbx)
// 118: 31 c0 xorl %eax, %eax
// 11a: e9 36 ff ff ff jmp 0x55 <_JIT_ENTRY+0x55>
// 11f:
static const unsigned char _BINARY_SUBSCR_DICT_code_body[288] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x49, 0x89,
0xf6, 0x48, 0x89, 0xfb, 0x4c, 0x8b, 0x6e, 0xf0,
0x49, 0x8b, 0x45, 0x08, 0x48, 0x3b, 0x05, 0x00,
0x00, 0x00, 0x00, 0x74, 0x3f, 0x48, 0x8b, 0x05,
0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87, 0x28,
0x01, 0x00, 0x00, 0x49, 0x29, 0xde, 0x49, 0x83,
0xc6, 0xb8, 0x49, 0xc1, 0xee, 0x03, 0x44, 0x89,
0x73, 0x40, 0x48, 0x8b, 0x03, 0x8b, 0x0d, 0x00,
0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, 0x48,
0x05, 0xc8, 0x00, 0x00, 0x00, 0x48, 0x83, 0xc4,
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e,
0x41, 0x5f, 0x5d, 0xc3, 0x4d, 0x8b, 0x66, 0xf8,
0x48, 0x89, 0xe2, 0x4c, 0x89, 0xef, 0x4c, 0x89,
0xe6, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x89,
0xc5, 0x85, 0xc0, 0x74, 0x0a, 0x49, 0x8b, 0x45,
0x00, 0x85, 0xc0, 0x79, 0x13, 0xeb, 0x23, 0x4c,
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0, 0x78, 0x12,
0x48, 0xff, 0xc8, 0x49, 0x89, 0x45, 0x00, 0x75,
0x09, 0x4c, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00,
0x00, 0x00, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0,
0x78, 0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x04,
0x24, 0x74, 0x30, 0x49, 0x8d, 0x46, 0xf0, 0x85,
0xed, 0x7e, 0x39, 0x49, 0x83, 0xc6, 0xf8, 0x48,
0x8b, 0x0c, 0x24, 0x48, 0x89, 0x08, 0x48, 0x89,
0xdf, 0x4c, 0x89, 0xf6, 0x4c, 0x89, 0xfa, 0x48,
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d,
0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00,
0x00, 0x00, 0x00, 0x4c, 0x89, 0xe7, 0xff, 0x15,
0x00, 0x00, 0x00, 0x00, 0x49, 0x8d, 0x46, 0xf0,
0x85, 0xed, 0x7f, 0xc7, 0x48, 0x8b, 0x0d, 0x00,
0x00, 0x00, 0x00, 0x49, 0x89, 0x8f, 0x28, 0x01,
0x00, 0x00, 0x48, 0x29, 0xd8, 0x48, 0x83, 0xc0,
0xb8, 0x48, 0xc1, 0xe8, 0x03, 0x89, 0x43, 0x40,
0x31, 0xc0, 0xe9, 0x36, 0xff, 0xff, 0xff,
};
static const Hole _BINARY_SUBSCR_DICT_code_holes[10] = {
{0x1f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x28, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x47, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x73, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x8c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0xa6, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0xe7, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
{0xf0, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0xff, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
};
// 0:
// 0: &PyDict_Type+0x0
// 8: EXECUTOR
// 10: TARGET
// 18: &PyDict_GetItemRef+0x0
// 20: &_PyErr_SetKeyError+0x0
// 28: &_Py_Dealloc+0x0
// 30: CONTINUE
static const unsigned char _BINARY_SUBSCR_DICT_data_body[57] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _BINARY_SUBSCR_DICT_data_holes[8] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyDict_Type, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyDict_GetItemRef, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_SetKeyError, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x30, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
};
// _BINARY_SUBSCR_LIST_INT
//
// /tmp/tmp2mfmnab2/_BINARY_SUBSCR_LIST_INT.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d7 movq %rdx, %r15
// e: 49 89 f6 movq %rsi, %r14
// 11: 48 89 fb movq %rdi, %rbx
// 14: 48 8b 7e f8 movq -0x8(%rsi), %rdi
// 18: 48 8b 47 08 movq 0x8(%rdi), %rax
// 1c: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x23 <_JIT_ENTRY+0x23>
// 000000000000001f: R_X86_64_REX_GOTPCRELX PyLong_Type-0x4
// 23: 0f 85 8a 00 00 00 jne 0xb3 <_JIT_ENTRY+0xb3>
// 29: 4d 8b 66 f0 movq -0x10(%r14), %r12
// 2d: 49 8b 44 24 08 movq 0x8(%r12), %rax
// 32: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x39 <_JIT_ENTRY+0x39>
// 0000000000000035: R_X86_64_REX_GOTPCRELX PyList_Type-0x4
// 39: 75 78 jne 0xb3 <_JIT_ENTRY+0xb3>
// 3b: 48 83 7f 10 08 cmpq $0x8, 0x10(%rdi)
// 40: 77 71 ja 0xb3 <_JIT_ENTRY+0xb3>
// 42: 8b 47 18 movl 0x18(%rdi), %eax
// 45: 49 39 44 24 10 cmpq %rax, 0x10(%r12)
// 4a: 7e 67 jle 0xb3 <_JIT_ENTRY+0xb3>
// 4c: 49 8b 4c 24 18 movq 0x18(%r12), %rcx
// 51: 48 8b 2c c1 movq (%rcx,%rax,8), %rbp
// 55: 8b 45 00 movl (%rbp), %eax
// 58: ff c0 incl %eax
// 5a: 74 03 je 0x5f <_JIT_ENTRY+0x5f>
// 5c: 89 45 00 movl %eax, (%rbp)
// 5f: 48 8b 07 movq (%rdi), %rax
// 62: 85 c0 testl %eax, %eax
// 64: 78 0e js 0x74 <_JIT_ENTRY+0x74>
// 66: 48 ff c8 decq %rax
// 69: 48 89 07 movq %rax, (%rdi)
// 6c: 75 06 jne 0x74 <_JIT_ENTRY+0x74>
// 6e: ff 15 00 00 00 00 callq *(%rip) # 0x74 <_JIT_ENTRY+0x74>
// 0000000000000070: R_X86_64_GOTPCRELX PyObject_Free-0x4
// 74: 4d 8d 6e f8 leaq -0x8(%r14), %r13
// 78: 49 8b 04 24 movq (%r12), %rax
// 7c: 85 c0 testl %eax, %eax
// 7e: 78 12 js 0x92 <_JIT_ENTRY+0x92>
// 80: 48 ff c8 decq %rax
// 83: 49 89 04 24 movq %rax, (%r12)
// 87: 75 09 jne 0x92 <_JIT_ENTRY+0x92>
// 89: 4c 89 e7 movq %r12, %rdi
// 8c: ff 15 00 00 00 00 callq *(%rip) # 0x92 <_JIT_ENTRY+0x92>
// 000000000000008e: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 92: 49 89 6e f0 movq %rbp, -0x10(%r14)
// 96: 48 89 df movq %rbx, %rdi
// 99: 4c 89 ee movq %r13, %rsi
// 9c: 4c 89 fa movq %r15, %rdx
// 9f: 48 83 c4 08 addq $0x8, %rsp
// a3: 5b popq %rbx
// a4: 41 5c popq %r12
// a6: 41 5d popq %r13
// a8: 41 5e popq %r14
// aa: 41 5f popq %r15
// ac: 5d popq %rbp
// ad: ff 25 00 00 00 00 jmpq *(%rip) # 0xb3 <_JIT_ENTRY+0xb3>
// 00000000000000af: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// b3: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xba <_JIT_ENTRY+0xba>
// 00000000000000b6: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// ba: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// c1: 49 29 de subq %rbx, %r14
// c4: 49 83 c6 b8 addq $-0x48, %r14
// c8: 49 c1 ee 03 shrq $0x3, %r14
// cc: 44 89 73 40 movl %r14d, 0x40(%rbx)
// d0: 48 8b 03 movq (%rbx), %rax
// d3: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0xd9 <_JIT_ENTRY+0xd9>
// 00000000000000d5: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// d9: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// dd: 48 05 c8 00 00 00 addq $0xc8, %rax
// e3: 48 83 c4 08 addq $0x8, %rsp
// e7: 5b popq %rbx
// e8: 41 5c popq %r12
// ea: 41 5d popq %r13
// ec: 41 5e popq %r14
// ee: 41 5f popq %r15
// f0: 5d popq %rbp
// f1: c3 retq
// f2:
static const unsigned char _BINARY_SUBSCR_LIST_INT_code_body[243] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x49, 0x89,
0xf6, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x7e, 0xf8,
0x48, 0x8b, 0x47, 0x08, 0x48, 0x3b, 0x05, 0x00,
0x00, 0x00, 0x00, 0x0f, 0x85, 0x8a, 0x00, 0x00,
0x00, 0x4d, 0x8b, 0x66, 0xf0, 0x49, 0x8b, 0x44,
0x24, 0x08, 0x48, 0x3b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x75, 0x78, 0x48, 0x83, 0x7f, 0x10, 0x08,
0x77, 0x71, 0x8b, 0x47, 0x18, 0x49, 0x39, 0x44,
0x24, 0x10, 0x7e, 0x67, 0x49, 0x8b, 0x4c, 0x24,
0x18, 0x48, 0x8b, 0x2c, 0xc1, 0x8b, 0x45, 0x00,
0xff, 0xc0, 0x74, 0x03, 0x89, 0x45, 0x00, 0x48,
0x8b, 0x07, 0x85, 0xc0, 0x78, 0x0e, 0x48, 0xff,
0xc8, 0x48, 0x89, 0x07, 0x75, 0x06, 0xff, 0x15,
0x00, 0x00, 0x00, 0x00, 0x4d, 0x8d, 0x6e, 0xf8,
0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, 0x12,
0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, 0x75,
0x09, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00,
0x00, 0x00, 0x49, 0x89, 0x6e, 0xf0, 0x48, 0x89,
0xdf, 0x4c, 0x89, 0xee, 0x4c, 0x89, 0xfa, 0x48,
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d,
0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00,
0x00, 0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00,
0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00,
0x00, 0x49, 0x29, 0xde, 0x49, 0x83, 0xc6, 0xb8,
0x49, 0xc1, 0xee, 0x03, 0x44, 0x89, 0x73, 0x40,
0x48, 0x8b, 0x03, 0x8b, 0x0d, 0x00, 0x00, 0x00,
0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05, 0xc8,
0x00, 0x00, 0x00, 0x48, 0x83, 0xc4, 0x08, 0x5b,
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f,
0x5d, 0xc3,
};
static const Hole _BINARY_SUBSCR_LIST_INT_code_holes[8] = {
{0x1f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x35, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x70, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x8e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0xaf, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0xb6, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0xd5, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
};
// 0:
// 0: &PyLong_Type+0x0
// 8: &PyList_Type+0x0
// 10: &PyObject_Free+0x0
// 18: &_Py_Dealloc+0x0
// 20: CONTINUE
// 28: EXECUTOR
// 30: TARGET
static const unsigned char _BINARY_SUBSCR_LIST_INT_data_body[57] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _BINARY_SUBSCR_LIST_INT_data_holes[8] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyLong_Type, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyList_Type, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_Free, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x30, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _BINARY_SUBSCR_STR_INT
//
// /tmp/tmp2mfmnab2/_BINARY_SUBSCR_STR_INT.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d7 movq %rdx, %r15
// e: 49 89 f6 movq %rsi, %r14
// 11: 48 89 fb movq %rdi, %rbx
// 14: 48 8b 7e f8 movq -0x8(%rsi), %rdi
// 18: 48 8b 47 08 movq 0x8(%rdi), %rax
// 1c: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x23 <_JIT_ENTRY+0x23>
// 000000000000001f: R_X86_64_REX_GOTPCRELX PyLong_Type-0x4
// 23: 0f 85 c2 00 00 00 jne 0xeb <_JIT_ENTRY+0xeb>
// 29: 4d 8b 66 f0 movq -0x10(%r14), %r12
// 2d: 49 8b 44 24 08 movq 0x8(%r12), %rax
// 32: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x39 <_JIT_ENTRY+0x39>
// 0000000000000035: R_X86_64_REX_GOTPCRELX PyUnicode_Type-0x4
// 39: 0f 85 ac 00 00 00 jne 0xeb <_JIT_ENTRY+0xeb>
// 3f: 48 83 7f 10 08 cmpq $0x8, 0x10(%rdi)
// 44: 0f 87 a1 00 00 00 ja 0xeb <_JIT_ENTRY+0xeb>
// 4a: 8b 47 18 movl 0x18(%rdi), %eax
// 4d: 49 39 44 24 10 cmpq %rax, 0x10(%r12)
// 52: 0f 8e 93 00 00 00 jle 0xeb <_JIT_ENTRY+0xeb>
// 58: 41 8b 4c 24 20 movl 0x20(%r12), %ecx
// 5d: 89 ca movl %ecx, %edx
// 5f: c1 ea 02 shrl $0x2, %edx
// 62: 83 e2 07 andl $0x7, %edx
// 65: 83 fa 02 cmpl $0x2, %edx
// 68: 74 15 je 0x7f <_JIT_ENTRY+0x7f>
// 6a: 83 fa 01 cmpl $0x1, %edx
// 6d: 75 20 jne 0x8f <_JIT_ENTRY+0x8f>
// 6f: f6 c1 20 testb $0x20, %cl
// 72: 75 27 jne 0x9b <_JIT_ENTRY+0x9b>
// 74: 49 8b 4c 24 38 movq 0x38(%r12), %rcx
// 79: 0f b6 2c 01 movzbl (%rcx,%rax), %ebp
// 7d: eb 67 jmp 0xe6 <_JIT_ENTRY+0xe6>
// 7f: f6 c1 20 testb $0x20, %cl
// 82: 75 31 jne 0xb5 <_JIT_ENTRY+0xb5>
// 84: 49 8b 4c 24 38 movq 0x38(%r12), %rcx
// 89: 0f b7 2c 41 movzwl (%rcx,%rax,2), %ebp
// 8d: eb 57 jmp 0xe6 <_JIT_ENTRY+0xe6>
// 8f: f6 c1 20 testb $0x20, %cl
// 92: 75 3b jne 0xcf <_JIT_ENTRY+0xcf>
// 94: 49 8b 4c 24 38 movq 0x38(%r12), %rcx
// 99: eb 48 jmp 0xe3 <_JIT_ENTRY+0xe3>
// 9b: 31 d2 xorl %edx, %edx
// 9d: f6 c1 40 testb $0x40, %cl
// a0: 0f 94 c2 sete %dl
// a3: 48 c1 e2 04 shlq $0x4, %rdx
// a7: 4a 8d 0c 22 leaq (%rdx,%r12), %rcx
// ab: 48 83 c1 28 addq $0x28, %rcx
// af: 0f b6 2c 01 movzbl (%rcx,%rax), %ebp
// b3: eb 31 jmp 0xe6 <_JIT_ENTRY+0xe6>
// b5: 31 d2 xorl %edx, %edx
// b7: f6 c1 40 testb $0x40, %cl
// ba: 0f 94 c2 sete %dl
// bd: 48 c1 e2 04 shlq $0x4, %rdx
// c1: 4a 8d 0c 22 leaq (%rdx,%r12), %rcx
// c5: 48 83 c1 28 addq $0x28, %rcx
// c9: 0f b7 2c 41 movzwl (%rcx,%rax,2), %ebp
// cd: eb 17 jmp 0xe6 <_JIT_ENTRY+0xe6>
// cf: 31 d2 xorl %edx, %edx
// d1: f6 c1 40 testb $0x40, %cl
// d4: 0f 94 c2 sete %dl
// d7: 48 c1 e2 04 shlq $0x4, %rdx
// db: 4a 8d 0c 22 leaq (%rdx,%r12), %rcx
// df: 48 83 c1 28 addq $0x28, %rcx
// e3: 8b 2c 81 movl (%rcx,%rax,4), %ebp
// e6: 83 fd 7f cmpl $0x7f, %ebp
// e9: 76 3f jbe 0x12a <_JIT_ENTRY+0x12a>
// eb: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xf2 <_JIT_ENTRY+0xf2>
// 00000000000000ee: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// f2: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// f9: 49 29 de subq %rbx, %r14
// fc: 49 83 c6 b8 addq $-0x48, %r14
// 100: 49 c1 ee 03 shrq $0x3, %r14
// 104: 44 89 73 40 movl %r14d, 0x40(%rbx)
// 108: 48 8b 03 movq (%rbx), %rax
// 10b: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x111 <_JIT_ENTRY+0x111>
// 000000000000010d: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 111: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 115: 48 05 c8 00 00 00 addq $0xc8, %rax
// 11b: 48 83 c4 08 addq $0x8, %rsp
// 11f: 5b popq %rbx
// 120: 41 5c popq %r12
// 122: 41 5d popq %r13
// 124: 41 5e popq %r14
// 126: 41 5f popq %r15
// 128: 5d popq %rbp
// 129: c3 retq
// 12a: 48 8b 07 movq (%rdi), %rax
// 12d: 85 c0 testl %eax, %eax
// 12f: 78 0e js 0x13f <_JIT_ENTRY+0x13f>
// 131: 48 ff c8 decq %rax
// 134: 48 89 07 movq %rax, (%rdi)
// 137: 75 06 jne 0x13f <_JIT_ENTRY+0x13f>
// 139: ff 15 00 00 00 00 callq *(%rip) # 0x13f <_JIT_ENTRY+0x13f>
// 000000000000013b: R_X86_64_GOTPCRELX PyObject_Free-0x4
// 13f: 4d 8d 6e f8 leaq -0x8(%r14), %r13
// 143: 49 8b 04 24 movq (%r12), %rax
// 147: 85 c0 testl %eax, %eax
// 149: 78 12 js 0x15d <_JIT_ENTRY+0x15d>
// 14b: 48 ff c8 decq %rax
// 14e: 49 89 04 24 movq %rax, (%r12)
// 152: 75 09 jne 0x15d <_JIT_ENTRY+0x15d>
// 154: 4c 89 e7 movq %r12, %rdi
// 157: ff 15 00 00 00 00 callq *(%rip) # 0x15d <_JIT_ENTRY+0x15d>
// 0000000000000159: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 15d: 89 e8 movl %ebp, %eax
// 15f: 48 8d 04 40 leaq (%rax,%rax,2), %rax
// 163: 48 c1 e0 04 shlq $0x4, %rax
// 167: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x16e <_JIT_ENTRY+0x16e>
// 000000000000016a: R_X86_64_REX_GOTPCRELX _PyRuntime-0x4
// 16e: 48 01 c8 addq %rcx, %rax
// 171: 48 05 70 fa 00 00 addq $0xfa70, %rax # imm = 0xFA70
// 177: 49 89 46 f0 movq %rax, -0x10(%r14)
// 17b: 48 89 df movq %rbx, %rdi
// 17e: 4c 89 ee movq %r13, %rsi
// 181: 4c 89 fa movq %r15, %rdx
// 184: 48 83 c4 08 addq $0x8, %rsp
// 188: 5b popq %rbx
// 189: 41 5c popq %r12
// 18b: 41 5d popq %r13
// 18d: 41 5e popq %r14
// 18f: 41 5f popq %r15
// 191: 5d popq %rbp
// 192: ff 25 00 00 00 00 jmpq *(%rip) # 0x198 <_JIT_ENTRY+0x198>
// 0000000000000194: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 192:
static const unsigned char _BINARY_SUBSCR_STR_INT_code_body[403] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x49, 0x89,
0xf6, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x7e, 0xf8,
0x48, 0x8b, 0x47, 0x08, 0x48, 0x3b, 0x05, 0x00,
0x00, 0x00, 0x00, 0x0f, 0x85, 0xc2, 0x00, 0x00,
0x00, 0x4d, 0x8b, 0x66, 0xf0, 0x49, 0x8b, 0x44,
0x24, 0x08, 0x48, 0x3b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x0f, 0x85, 0xac, 0x00, 0x00, 0x00, 0x48,
0x83, 0x7f, 0x10, 0x08, 0x0f, 0x87, 0xa1, 0x00,
0x00, 0x00, 0x8b, 0x47, 0x18, 0x49, 0x39, 0x44,
0x24, 0x10, 0x0f, 0x8e, 0x93, 0x00, 0x00, 0x00,
0x41, 0x8b, 0x4c, 0x24, 0x20, 0x89, 0xca, 0xc1,
0xea, 0x02, 0x83, 0xe2, 0x07, 0x83, 0xfa, 0x02,
0x74, 0x15, 0x83, 0xfa, 0x01, 0x75, 0x20, 0xf6,
0xc1, 0x20, 0x75, 0x27, 0x49, 0x8b, 0x4c, 0x24,
0x38, 0x0f, 0xb6, 0x2c, 0x01, 0xeb, 0x67, 0xf6,
0xc1, 0x20, 0x75, 0x31, 0x49, 0x8b, 0x4c, 0x24,
0x38, 0x0f, 0xb7, 0x2c, 0x41, 0xeb, 0x57, 0xf6,
0xc1, 0x20, 0x75, 0x3b, 0x49, 0x8b, 0x4c, 0x24,
0x38, 0xeb, 0x48, 0x31, 0xd2, 0xf6, 0xc1, 0x40,
0x0f, 0x94, 0xc2, 0x48, 0xc1, 0xe2, 0x04, 0x4a,
0x8d, 0x0c, 0x22, 0x48, 0x83, 0xc1, 0x28, 0x0f,
0xb6, 0x2c, 0x01, 0xeb, 0x31, 0x31, 0xd2, 0xf6,
0xc1, 0x40, 0x0f, 0x94, 0xc2, 0x48, 0xc1, 0xe2,
0x04, 0x4a, 0x8d, 0x0c, 0x22, 0x48, 0x83, 0xc1,
0x28, 0x0f, 0xb7, 0x2c, 0x41, 0xeb, 0x17, 0x31,
0xd2, 0xf6, 0xc1, 0x40, 0x0f, 0x94, 0xc2, 0x48,
0xc1, 0xe2, 0x04, 0x4a, 0x8d, 0x0c, 0x22, 0x48,
0x83, 0xc1, 0x28, 0x8b, 0x2c, 0x81, 0x83, 0xfd,
0x7f, 0x76, 0x3f, 0x48, 0x8b, 0x05, 0x00, 0x00,
0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00,
0x00, 0x49, 0x29, 0xde, 0x49, 0x83, 0xc6, 0xb8,
0x49, 0xc1, 0xee, 0x03, 0x44, 0x89, 0x73, 0x40,
0x48, 0x8b, 0x03, 0x8b, 0x0d, 0x00, 0x00, 0x00,
0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05, 0xc8,
0x00, 0x00, 0x00, 0x48, 0x83, 0xc4, 0x08, 0x5b,
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f,
0x5d, 0xc3, 0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78,
0x0e, 0x48, 0xff, 0xc8, 0x48, 0x89, 0x07, 0x75,
0x06, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x4d,
0x8d, 0x6e, 0xf8, 0x49, 0x8b, 0x04, 0x24, 0x85,
0xc0, 0x78, 0x12, 0x48, 0xff, 0xc8, 0x49, 0x89,
0x04, 0x24, 0x75, 0x09, 0x4c, 0x89, 0xe7, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0x89, 0xe8, 0x48,
0x8d, 0x04, 0x40, 0x48, 0xc1, 0xe0, 0x04, 0x48,
0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x01,
0xc8, 0x48, 0x05, 0x70, 0xfa, 0x00, 0x00, 0x49,
0x89, 0x46, 0xf0, 0x48, 0x89, 0xdf, 0x4c, 0x89,
0xee, 0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4, 0x08,
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41,
0x5f, 0x5d,
};
static const Hole _BINARY_SUBSCR_STR_INT_code_holes[8] = {
{0x1f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x35, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0xee, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x10d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x13b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0x159, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0x16a, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
};
// 0:
// 0: &PyLong_Type+0x0
// 8: &PyUnicode_Type+0x0
// 10: EXECUTOR
// 18: TARGET
// 20: &PyObject_Free+0x0
// 28: &_Py_Dealloc+0x0
// 30: &_PyRuntime+0x0
static const unsigned char _BINARY_SUBSCR_STR_INT_data_body[57] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _BINARY_SUBSCR_STR_INT_data_holes[8] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyLong_Type, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyUnicode_Type, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_Free, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x30, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyRuntime, 0x0},
};
// _BINARY_SUBSCR_TUPLE_INT
//
// /tmp/tmp2mfmnab2/_BINARY_SUBSCR_TUPLE_INT.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d7 movq %rdx, %r15
// e: 49 89 f6 movq %rsi, %r14
// 11: 48 89 fb movq %rdi, %rbx
// 14: 48 8b 7e f8 movq -0x8(%rsi), %rdi
// 18: 48 8b 47 08 movq 0x8(%rdi), %rax
// 1c: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x23 <_JIT_ENTRY+0x23>
// 000000000000001f: R_X86_64_REX_GOTPCRELX PyLong_Type-0x4
// 23: 0f 85 86 00 00 00 jne 0xaf <_JIT_ENTRY+0xaf>
// 29: 4d 8b 66 f0 movq -0x10(%r14), %r12
// 2d: 49 8b 44 24 08 movq 0x8(%r12), %rax
// 32: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x39 <_JIT_ENTRY+0x39>
// 0000000000000035: R_X86_64_REX_GOTPCRELX PyTuple_Type-0x4
// 39: 75 74 jne 0xaf <_JIT_ENTRY+0xaf>
// 3b: 48 83 7f 10 08 cmpq $0x8, 0x10(%rdi)
// 40: 77 6d ja 0xaf <_JIT_ENTRY+0xaf>
// 42: 8b 47 18 movl 0x18(%rdi), %eax
// 45: 49 39 44 24 10 cmpq %rax, 0x10(%r12)
// 4a: 7e 63 jle 0xaf <_JIT_ENTRY+0xaf>
// 4c: 49 8b 6c c4 18 movq 0x18(%r12,%rax,8), %rbp
// 51: 8b 45 00 movl (%rbp), %eax
// 54: ff c0 incl %eax
// 56: 74 03 je 0x5b <_JIT_ENTRY+0x5b>
// 58: 89 45 00 movl %eax, (%rbp)
// 5b: 48 8b 07 movq (%rdi), %rax
// 5e: 85 c0 testl %eax, %eax
// 60: 78 0e js 0x70 <_JIT_ENTRY+0x70>
// 62: 48 ff c8 decq %rax
// 65: 48 89 07 movq %rax, (%rdi)
// 68: 75 06 jne 0x70 <_JIT_ENTRY+0x70>
// 6a: ff 15 00 00 00 00 callq *(%rip) # 0x70 <_JIT_ENTRY+0x70>
// 000000000000006c: R_X86_64_GOTPCRELX PyObject_Free-0x4
// 70: 4d 8d 6e f8 leaq -0x8(%r14), %r13
// 74: 49 8b 04 24 movq (%r12), %rax
// 78: 85 c0 testl %eax, %eax
// 7a: 78 12 js 0x8e <_JIT_ENTRY+0x8e>
// 7c: 48 ff c8 decq %rax
// 7f: 49 89 04 24 movq %rax, (%r12)
// 83: 75 09 jne 0x8e <_JIT_ENTRY+0x8e>
// 85: 4c 89 e7 movq %r12, %rdi
// 88: ff 15 00 00 00 00 callq *(%rip) # 0x8e <_JIT_ENTRY+0x8e>
// 000000000000008a: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 8e: 49 89 6e f0 movq %rbp, -0x10(%r14)
// 92: 48 89 df movq %rbx, %rdi
// 95: 4c 89 ee movq %r13, %rsi
// 98: 4c 89 fa movq %r15, %rdx
// 9b: 48 83 c4 08 addq $0x8, %rsp
// 9f: 5b popq %rbx
// a0: 41 5c popq %r12
// a2: 41 5d popq %r13
// a4: 41 5e popq %r14
// a6: 41 5f popq %r15
// a8: 5d popq %rbp
// a9: ff 25 00 00 00 00 jmpq *(%rip) # 0xaf <_JIT_ENTRY+0xaf>
// 00000000000000ab: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// af: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xb6 <_JIT_ENTRY+0xb6>
// 00000000000000b2: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// b6: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// bd: 49 29 de subq %rbx, %r14
// c0: 49 83 c6 b8 addq $-0x48, %r14
// c4: 49 c1 ee 03 shrq $0x3, %r14
// c8: 44 89 73 40 movl %r14d, 0x40(%rbx)
// cc: 48 8b 03 movq (%rbx), %rax
// cf: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0xd5 <_JIT_ENTRY+0xd5>
// 00000000000000d1: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// d5: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// d9: 48 05 c8 00 00 00 addq $0xc8, %rax
// df: 48 83 c4 08 addq $0x8, %rsp
// e3: 5b popq %rbx
// e4: 41 5c popq %r12
// e6: 41 5d popq %r13
// e8: 41 5e popq %r14
// ea: 41 5f popq %r15
// ec: 5d popq %rbp
// ed: c3 retq
// ee:
static const unsigned char _BINARY_SUBSCR_TUPLE_INT_code_body[239] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x49, 0x89,
0xf6, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x7e, 0xf8,
0x48, 0x8b, 0x47, 0x08, 0x48, 0x3b, 0x05, 0x00,
0x00, 0x00, 0x00, 0x0f, 0x85, 0x86, 0x00, 0x00,
0x00, 0x4d, 0x8b, 0x66, 0xf0, 0x49, 0x8b, 0x44,
0x24, 0x08, 0x48, 0x3b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x75, 0x74, 0x48, 0x83, 0x7f, 0x10, 0x08,
0x77, 0x6d, 0x8b, 0x47, 0x18, 0x49, 0x39, 0x44,
0x24, 0x10, 0x7e, 0x63, 0x49, 0x8b, 0x6c, 0xc4,
0x18, 0x8b, 0x45, 0x00, 0xff, 0xc0, 0x74, 0x03,
0x89, 0x45, 0x00, 0x48, 0x8b, 0x07, 0x85, 0xc0,
0x78, 0x0e, 0x48, 0xff, 0xc8, 0x48, 0x89, 0x07,
0x75, 0x06, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x4d, 0x8d, 0x6e, 0xf8, 0x49, 0x8b, 0x04, 0x24,
0x85, 0xc0, 0x78, 0x12, 0x48, 0xff, 0xc8, 0x49,
0x89, 0x04, 0x24, 0x75, 0x09, 0x4c, 0x89, 0xe7,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89,
0x6e, 0xf0, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xee,
0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4, 0x08, 0x5b,
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f,
0x5d, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48,
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89,
0x87, 0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xde,
0x49, 0x83, 0xc6, 0xb8, 0x49, 0xc1, 0xee, 0x03,
0x44, 0x89, 0x73, 0x40, 0x48, 0x8b, 0x03, 0x8b,
0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04,
0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0x48,
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d,
0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xc3,
};
static const Hole _BINARY_SUBSCR_TUPLE_INT_code_holes[8] = {
{0x1f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x35, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x6c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x8a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0xab, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0xb2, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0xd1, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
};
// 0:
// 0: &PyLong_Type+0x0
// 8: &PyTuple_Type+0x0
// 10: &PyObject_Free+0x0
// 18: &_Py_Dealloc+0x0
// 20: CONTINUE
// 28: EXECUTOR
// 30: TARGET
static const unsigned char _BINARY_SUBSCR_TUPLE_INT_data_body[57] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _BINARY_SUBSCR_TUPLE_INT_data_holes[8] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyLong_Type, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyTuple_Type, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_Free, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x30, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _BUILD_CONST_KEY_MAP
//
// /tmp/tmp2mfmnab2/_BUILD_CONST_KEY_MAP.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d6 movq %rdx, %r14
// e: 49 89 f7 movq %rsi, %r15
// 11: 48 89 fb movq %rdi, %rbx
// 14: 4c 8b 6e f8 movq -0x8(%rsi), %r13
// 18: 49 8b 45 08 movq 0x8(%r13), %rax
// 1c: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x23 <_JIT_ENTRY+0x23>
// 000000000000001f: R_X86_64_REX_GOTPCRELX PyTuple_Type-0x4
// 23: 0f 85 8e 00 00 00 jne 0xb7 <_JIT_ENTRY+0xb7>
// 29: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x30 <_JIT_ENTRY+0x30>
// 000000000000002c: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 30: 49 39 45 10 cmpq %rax, 0x10(%r13)
// 34: 0f 85 7d 00 00 00 jne 0xb7 <_JIT_ENTRY+0xb7>
// 3a: 8b 05 00 00 00 00 movl (%rip), %eax # 0x40 <_JIT_ENTRY+0x40>
// 000000000000003c: R_X86_64_GOTPCRELX _JIT_OPARG-0x4
// 40: f7 d0 notl %eax
// 42: 0d 00 00 ff ff orl $0xffff0000, %eax # imm = 0xFFFF0000
// 47: 48 98 cltq
// 49: 4d 8d 24 c7 leaq (%r15,%rax,8), %r12
// 4d: 49 8d 7d 18 leaq 0x18(%r13), %rdi
// 51: 48 8b 2d 00 00 00 00 movq (%rip), %rbp # 0x58 <_JIT_ENTRY+0x58>
// 0000000000000054: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 58: 44 0f b7 c5 movzwl %bp, %r8d
// 5c: be 01 00 00 00 movl $0x1, %esi
// 61: b9 01 00 00 00 movl $0x1, %ecx
// 66: 4c 89 e2 movq %r12, %rdx
// 69: ff 15 00 00 00 00 callq *(%rip) # 0x6f <_JIT_ENTRY+0x6f>
// 000000000000006b: R_X86_64_GOTPCRELX _PyDict_FromItems-0x4
// 6f: 48 89 04 24 movq %rax, (%rsp)
// 73: f7 c5 ff ff 00 00 testl $0xffff, %ebp # imm = 0xFFFF
// 79: 0f 8e 83 00 00 00 jle 0x102 <_JIT_ENTRY+0x102>
// 7f: 0f b7 2d 00 00 00 00 movzwl (%rip), %ebp # 0x86 <_JIT_ENTRY+0x86>
// 0000000000000082: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 86: 48 ff c5 incq %rbp
// 89: eb 0e jmp 0x99 <_JIT_ENTRY+0x99>
// 8b: 0f 1f 44 00 00 nopl (%rax,%rax)
// 90: 48 ff cd decq %rbp
// 93: 48 83 fd 01 cmpq $0x1, %rbp
// 97: 7e 69 jle 0x102 <_JIT_ENTRY+0x102>
// 99: 8d 45 fe leal -0x2(%rbp), %eax
// 9c: 49 8b 3c c4 movq (%r12,%rax,8), %rdi
// a0: 48 8b 07 movq (%rdi), %rax
// a3: 85 c0 testl %eax, %eax
// a5: 78 e9 js 0x90 <_JIT_ENTRY+0x90>
// a7: 48 ff c8 decq %rax
// aa: 48 89 07 movq %rax, (%rdi)
// ad: 75 e1 jne 0x90 <_JIT_ENTRY+0x90>
// af: ff 15 00 00 00 00 callq *(%rip) # 0xb5 <_JIT_ENTRY+0xb5>
// 00000000000000b1: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// b5: eb d9 jmp 0x90 <_JIT_ENTRY+0x90>
// b7: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xbe <_JIT_ENTRY+0xbe>
// 00000000000000ba: R_X86_64_REX_GOTPCRELX PyExc_SystemError-0x4
// be: 48 8b 30 movq (%rax), %rsi
// c1: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0xc8 <_JIT_ENTRY+0xc8>
// 00000000000000c4: R_X86_64_PC32 .L.str.12-0x4
// c8: 4c 89 f7 movq %r14, %rdi
// cb: ff 15 00 00 00 00 callq *(%rip) # 0xd1 <_JIT_ENTRY+0xd1>
// 00000000000000cd: R_X86_64_GOTPCRELX _PyErr_SetString-0x4
// d1: 4d 89 fc movq %r15, %r12
// d4: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xdb <_JIT_ENTRY+0xdb>
// 00000000000000d7: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// db: 49 89 86 28 01 00 00 movq %rax, 0x128(%r14)
// e2: 49 29 dc subq %rbx, %r12
// e5: 49 83 c4 b8 addq $-0x48, %r12
// e9: 49 c1 ec 03 shrq $0x3, %r12
// ed: 44 89 63 40 movl %r12d, 0x40(%rbx)
// f1: 31 c0 xorl %eax, %eax
// f3: 48 83 c4 08 addq $0x8, %rsp
// f7: 5b popq %rbx
// f8: 41 5c popq %r12
// fa: 41 5d popq %r13
// fc: 41 5e popq %r14
// fe: 41 5f popq %r15
// 100: 5d popq %rbp
// 101: c3 retq
// 102: 49 8b 45 00 movq (%r13), %rax
// 106: 85 c0 testl %eax, %eax
// 108: 78 12 js 0x11c <_JIT_ENTRY+0x11c>
// 10a: 48 ff c8 decq %rax
// 10d: 49 89 45 00 movq %rax, (%r13)
// 111: 75 09 jne 0x11c <_JIT_ENTRY+0x11c>
// 113: 4c 89 ef movq %r13, %rdi
// 116: ff 15 00 00 00 00 callq *(%rip) # 0x11c <_JIT_ENTRY+0x11c>
// 0000000000000118: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 11c: 48 8b 14 24 movq (%rsp), %rdx
// 120: 48 85 d2 testq %rdx, %rdx
// 123: 74 af je 0xd4 <_JIT_ENTRY+0xd4>
// 125: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x12c <_JIT_ENTRY+0x12c>
// 0000000000000128: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 12c: 0f b7 c8 movzwl %ax, %ecx
// 12f: f7 d0 notl %eax
// 131: 0d 00 00 ff ff orl $0xffff0000, %eax # imm = 0xFFFF0000
// 136: 48 98 cltq
// 138: 49 89 14 c7 movq %rdx, (%r15,%rax,8)
// 13c: 48 c1 e1 03 shlq $0x3, %rcx
// 140: 49 29 cf subq %rcx, %r15
// 143: 48 89 df movq %rbx, %rdi
// 146: 4c 89 fe movq %r15, %rsi
// 149: 4c 89 f2 movq %r14, %rdx
// 14c: 48 83 c4 08 addq $0x8, %rsp
// 150: 5b popq %rbx
// 151: 41 5c popq %r12
// 153: 41 5d popq %r13
// 155: 41 5e popq %r14
// 157: 41 5f popq %r15
// 159: 5d popq %rbp
// 15a: ff 25 00 00 00 00 jmpq *(%rip) # 0x160 <_JIT_ENTRY+0x160>
// 000000000000015c: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 15a:
static const unsigned char _BUILD_CONST_KEY_MAP_code_body[347] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89,
0xf7, 0x48, 0x89, 0xfb, 0x4c, 0x8b, 0x6e, 0xf8,
0x49, 0x8b, 0x45, 0x08, 0x48, 0x3b, 0x05, 0x00,
0x00, 0x00, 0x00, 0x0f, 0x85, 0x8e, 0x00, 0x00,
0x00, 0x0f, 0xb7, 0x05, 0x00, 0x00, 0x00, 0x00,
0x49, 0x39, 0x45, 0x10, 0x0f, 0x85, 0x7d, 0x00,
0x00, 0x00, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00,
0xf7, 0xd0, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x48,
0x98, 0x4d, 0x8d, 0x24, 0xc7, 0x49, 0x8d, 0x7d,
0x18, 0x48, 0x8b, 0x2d, 0x00, 0x00, 0x00, 0x00,
0x44, 0x0f, 0xb7, 0xc5, 0xbe, 0x01, 0x00, 0x00,
0x00, 0xb9, 0x01, 0x00, 0x00, 0x00, 0x4c, 0x89,
0xe2, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48,
0x89, 0x04, 0x24, 0xf7, 0xc5, 0xff, 0xff, 0x00,
0x00, 0x0f, 0x8e, 0x83, 0x00, 0x00, 0x00, 0x0f,
0xb7, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x48, 0xff,
0xc5, 0xeb, 0x0e, 0x0f, 0x1f, 0x44, 0x00, 0x00,
0x48, 0xff, 0xcd, 0x48, 0x83, 0xfd, 0x01, 0x7e,
0x69, 0x8d, 0x45, 0xfe, 0x49, 0x8b, 0x3c, 0xc4,
0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78, 0xe9, 0x48,
0xff, 0xc8, 0x48, 0x89, 0x07, 0x75, 0xe1, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0xd9, 0x48,
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b,
0x30, 0x48, 0x8d, 0x15, 0x00, 0x00, 0x00, 0x00,
0x4c, 0x89, 0xf7, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0x4d, 0x89, 0xfc, 0x48, 0x8b, 0x05, 0x00,
0x00, 0x00, 0x00, 0x49, 0x89, 0x86, 0x28, 0x01,
0x00, 0x00, 0x49, 0x29, 0xdc, 0x49, 0x83, 0xc4,
0xb8, 0x49, 0xc1, 0xec, 0x03, 0x44, 0x89, 0x63,
0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4, 0x08, 0x5b,
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f,
0x5d, 0xc3, 0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0,
0x78, 0x12, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x45,
0x00, 0x75, 0x09, 0x4c, 0x89, 0xef, 0xff, 0x15,
0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x14, 0x24,
0x48, 0x85, 0xd2, 0x74, 0xaf, 0x48, 0x8b, 0x05,
0x00, 0x00, 0x00, 0x00, 0x0f, 0xb7, 0xc8, 0xf7,
0xd0, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x48, 0x98,
0x49, 0x89, 0x14, 0xc7, 0x48, 0xc1, 0xe1, 0x03,
0x49, 0x29, 0xcf, 0x48, 0x89, 0xdf, 0x4c, 0x89,
0xfe, 0x4c, 0x89, 0xf2, 0x48, 0x83, 0xc4, 0x08,
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41,
0x5f, 0x5d,
};
static const Hole _BUILD_CONST_KEY_MAP_code_holes[14] = {
{0x1f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0x2c, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x2c},
{0x3c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
{0x54, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
{0x6b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x34},
{0x82, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x2c},
{0xb1, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c},
{0xba, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x44},
{0xc4, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4},
{0xcd, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4c},
{0xd7, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x54},
{0x118, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c},
{0x128, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
};
// 0: 'bad BUILD_CONST_KEY_MAP keys argument\x00'
// 26: 00 00
// 28: &PyTuple_Type+0x0
// 30: OPARG
// 38: &_PyDict_FromItems+0x0
// 40: &_Py_Dealloc+0x0
// 48: &PyExc_SystemError+0x0
// 50: &_PyErr_SetString+0x0
// 58: EXECUTOR
static const unsigned char _BUILD_CONST_KEY_MAP_data_body[97] = {
0x62, 0x61, 0x64, 0x20, 0x42, 0x55, 0x49, 0x4c,
0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x54, 0x5f,
0x4b, 0x45, 0x59, 0x5f, 0x4d, 0x41, 0x50, 0x20,
0x6b, 0x65, 0x79, 0x73, 0x20, 0x61, 0x72, 0x67,
0x75, 0x6d, 0x65, 0x6e, 0x74, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _BUILD_CONST_KEY_MAP_data_holes[8] = {
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyTuple_Type, 0x0},
{0x30, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x38, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyDict_FromItems, 0x0},
{0x40, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x48, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_SystemError, 0x0},
{0x50, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_SetString, 0x0},
{0x58, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _BUILD_LIST
//
// /tmp/tmp2mfmnab2/_BUILD_LIST.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 54 pushq %r12
// 6: 53 pushq %rbx
// 7: 50 pushq %rax
// 8: 49 89 d6 movq %rdx, %r14
// b: 49 89 f7 movq %rsi, %r15
// e: 48 89 fb movq %rdi, %rbx
// 11: 0f b7 35 00 00 00 00 movzwl (%rip), %esi # 0x18 <_JIT_ENTRY+0x18>
// 0000000000000014: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 18: 48 8d 04 f5 00 00 00 00 leaq (,%rsi,8), %rax
// 20: 4d 89 fc movq %r15, %r12
// 23: 49 29 c4 subq %rax, %r12
// 26: 4c 89 e7 movq %r12, %rdi
// 29: ff 15 00 00 00 00 callq *(%rip) # 0x2f <_JIT_ENTRY+0x2f>
// 000000000000002b: R_X86_64_GOTPCRELX _PyList_FromArraySteal-0x4
// 2f: 48 85 c0 testq %rax, %rax
// 32: 74 3c je 0x70 <_JIT_ENTRY+0x70>
// 34: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x3b <_JIT_ENTRY+0x3b>
// 0000000000000037: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 3b: 0f b7 d1 movzwl %cx, %edx
// 3e: 0f b7 c9 movzwl %cx, %ecx
// 41: 48 c1 e1 03 shlq $0x3, %rcx
// 45: 48 f7 d9 negq %rcx
// 48: 49 89 04 0f movq %rax, (%r15,%rcx)
// 4c: b8 01 00 00 00 movl $0x1, %eax
// 51: 29 d0 subl %edx, %eax
// 53: 48 98 cltq
// 55: 49 8d 34 c7 leaq (%r15,%rax,8), %rsi
// 59: 48 89 df movq %rbx, %rdi
// 5c: 4c 89 f2 movq %r14, %rdx
// 5f: 48 83 c4 08 addq $0x8, %rsp
// 63: 5b popq %rbx
// 64: 41 5c popq %r12
// 66: 41 5e popq %r14
// 68: 41 5f popq %r15
// 6a: ff 25 00 00 00 00 jmpq *(%rip) # 0x70 <_JIT_ENTRY+0x70>
// 000000000000006c: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 70: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x77 <_JIT_ENTRY+0x77>
// 0000000000000073: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 77: 49 89 86 28 01 00 00 movq %rax, 0x128(%r14)
// 7e: 49 29 dc subq %rbx, %r12
// 81: 49 83 c4 b8 addq $-0x48, %r12
// 85: 49 c1 ec 03 shrq $0x3, %r12
// 89: 44 89 63 40 movl %r12d, 0x40(%rbx)
// 8d: 31 c0 xorl %eax, %eax
// 8f: 48 83 c4 08 addq $0x8, %rsp
// 93: 5b popq %rbx
// 94: 41 5c popq %r12
// 96: 41 5e popq %r14
// 98: 41 5f popq %r15
// 9a: c3 retq
// 9b:
static const unsigned char _BUILD_LIST_code_body[156] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x54, 0x53, 0x50,
0x49, 0x89, 0xd6, 0x49, 0x89, 0xf7, 0x48, 0x89,
0xfb, 0x0f, 0xb7, 0x35, 0x00, 0x00, 0x00, 0x00,
0x48, 0x8d, 0x04, 0xf5, 0x00, 0x00, 0x00, 0x00,
0x4d, 0x89, 0xfc, 0x49, 0x29, 0xc4, 0x4c, 0x89,
0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48,
0x85, 0xc0, 0x74, 0x3c, 0x48, 0x8b, 0x0d, 0x00,
0x00, 0x00, 0x00, 0x0f, 0xb7, 0xd1, 0x0f, 0xb7,
0xc9, 0x48, 0xc1, 0xe1, 0x03, 0x48, 0xf7, 0xd9,
0x49, 0x89, 0x04, 0x0f, 0xb8, 0x01, 0x00, 0x00,
0x00, 0x29, 0xd0, 0x48, 0x98, 0x49, 0x8d, 0x34,
0xc7, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xf2, 0x48,
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5e,
0x41, 0x5f, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00,
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49,
0x89, 0x86, 0x28, 0x01, 0x00, 0x00, 0x49, 0x29,
0xdc, 0x49, 0x83, 0xc4, 0xb8, 0x49, 0xc1, 0xec,
0x03, 0x44, 0x89, 0x63, 0x40, 0x31, 0xc0, 0x48,
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5e,
0x41, 0x5f, 0xc3,
};
static const Hole _BUILD_LIST_code_holes[6] = {
{0x14, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x2b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x37, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x6c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x73, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
};
// 0:
// 0: OPARG
// 8: &_PyList_FromArraySteal+0x0
// 10: CONTINUE
// 18: EXECUTOR
static const unsigned char _BUILD_LIST_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _BUILD_LIST_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyList_FromArraySteal, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _BUILD_MAP
//
// /tmp/tmp2mfmnab2/_BUILD_MAP.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 48 89 14 24 movq %rdx, (%rsp)
// f: 49 89 f7 movq %rsi, %r15
// 12: 48 89 fb movq %rdi, %rbx
// 15: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x1c <_JIT_ENTRY+0x1c>
// 0000000000000018: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 1c: 0f b7 e8 movzwl %ax, %ebp
// 1f: 89 e9 movl %ebp, %ecx
// 21: f7 d9 negl %ecx
// 23: 01 c9 addl %ecx, %ecx
// 25: 48 63 c9 movslq %ecx, %rcx
// 28: 4c 8d 24 ce leaq (%rsi,%rcx,8), %r12
// 2c: 48 8d 14 ce leaq (%rsi,%rcx,8), %rdx
// 30: 48 83 c2 08 addq $0x8, %rdx
// 34: 44 0f b7 c0 movzwl %ax, %r8d
// 38: be 02 00 00 00 movl $0x2, %esi
// 3d: b9 02 00 00 00 movl $0x2, %ecx
// 42: 4c 89 e7 movq %r12, %rdi
// 45: ff 15 00 00 00 00 callq *(%rip) # 0x4b <_JIT_ENTRY+0x4b>
// 0000000000000047: R_X86_64_GOTPCRELX _PyDict_FromItems-0x4
// 4b: 49 89 c5 movq %rax, %r13
// 4e: 01 ed addl %ebp, %ebp
// 50: 85 ed testl %ebp, %ebp
// 52: 7e 40 jle 0x94 <_JIT_ENTRY+0x94>
// 54: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x5b <_JIT_ENTRY+0x5b>
// 0000000000000057: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 5b: 48 8d 2c 00 leaq (%rax,%rax), %rbp
// 5f: 48 ff c5 incq %rbp
// 62: 4c 8b 35 00 00 00 00 movq (%rip), %r14 # 0x69 <_JIT_ENTRY+0x69>
// 0000000000000065: R_X86_64_REX_GOTPCRELX _Py_Dealloc-0x4
// 69: eb 0e jmp 0x79 <_JIT_ENTRY+0x79>
// 6b: 0f 1f 44 00 00 nopl (%rax,%rax)
// 70: 48 ff cd decq %rbp
// 73: 48 83 fd 01 cmpq $0x1, %rbp
// 77: 7e 1b jle 0x94 <_JIT_ENTRY+0x94>
// 79: 8d 45 fe leal -0x2(%rbp), %eax
// 7c: 49 8b 3c c4 movq (%r12,%rax,8), %rdi
// 80: 48 8b 07 movq (%rdi), %rax
// 83: 85 c0 testl %eax, %eax
// 85: 78 e9 js 0x70 <_JIT_ENTRY+0x70>
// 87: 48 ff c8 decq %rax
// 8a: 48 89 07 movq %rax, (%rdi)
// 8d: 75 e1 jne 0x70 <_JIT_ENTRY+0x70>
// 8f: 41 ff d6 callq *%r14
// 92: eb dc jmp 0x70 <_JIT_ENTRY+0x70>
// 94: 4d 85 ed testq %r13, %r13
// 97: 74 3f je 0xd8 <_JIT_ENTRY+0xd8>
// 99: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0xa0 <_JIT_ENTRY+0xa0>
// 000000000000009c: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// a0: 89 c1 movl %eax, %ecx
// a2: f7 d9 negl %ecx
// a4: 01 c9 addl %ecx, %ecx
// a6: 48 63 c9 movslq %ecx, %rcx
// a9: 4d 89 2c cf movq %r13, (%r15,%rcx,8)
// ad: 01 c0 addl %eax, %eax
// af: b9 01 00 00 00 movl $0x1, %ecx
// b4: 29 c1 subl %eax, %ecx
// b6: 48 63 c1 movslq %ecx, %rax
// b9: 49 8d 34 c7 leaq (%r15,%rax,8), %rsi
// bd: 48 89 df movq %rbx, %rdi
// c0: 48 8b 14 24 movq (%rsp), %rdx
// c4: 48 83 c4 08 addq $0x8, %rsp
// c8: 5b popq %rbx
// c9: 41 5c popq %r12
// cb: 41 5d popq %r13
// cd: 41 5e popq %r14
// cf: 41 5f popq %r15
// d1: 5d popq %rbp
// d2: ff 25 00 00 00 00 jmpq *(%rip) # 0xd8 <_JIT_ENTRY+0xd8>
// 00000000000000d4: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// d8: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xdf <_JIT_ENTRY+0xdf>
// 00000000000000db: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// df: 48 8b 0c 24 movq (%rsp), %rcx
// e3: 48 89 81 28 01 00 00 movq %rax, 0x128(%rcx)
// ea: 49 29 dc subq %rbx, %r12
// ed: 49 83 c4 b8 addq $-0x48, %r12
// f1: 49 c1 ec 03 shrq $0x3, %r12
// f5: 44 89 63 40 movl %r12d, 0x40(%rbx)
// f9: 31 c0 xorl %eax, %eax
// fb: 48 83 c4 08 addq $0x8, %rsp
// ff: 5b popq %rbx
// 100: 41 5c popq %r12
// 102: 41 5d popq %r13
// 104: 41 5e popq %r14
// 106: 41 5f popq %r15
// 108: 5d popq %rbp
// 109: c3 retq
// 10a:
static const unsigned char _BUILD_MAP_code_body[267] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x48, 0x89, 0x14, 0x24, 0x49,
0x89, 0xf7, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x05,
0x00, 0x00, 0x00, 0x00, 0x0f, 0xb7, 0xe8, 0x89,
0xe9, 0xf7, 0xd9, 0x01, 0xc9, 0x48, 0x63, 0xc9,
0x4c, 0x8d, 0x24, 0xce, 0x48, 0x8d, 0x14, 0xce,
0x48, 0x83, 0xc2, 0x08, 0x44, 0x0f, 0xb7, 0xc0,
0xbe, 0x02, 0x00, 0x00, 0x00, 0xb9, 0x02, 0x00,
0x00, 0x00, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x49, 0x89, 0xc5, 0x01, 0xed,
0x85, 0xed, 0x7e, 0x40, 0x0f, 0xb7, 0x05, 0x00,
0x00, 0x00, 0x00, 0x48, 0x8d, 0x2c, 0x00, 0x48,
0xff, 0xc5, 0x4c, 0x8b, 0x35, 0x00, 0x00, 0x00,
0x00, 0xeb, 0x0e, 0x0f, 0x1f, 0x44, 0x00, 0x00,
0x48, 0xff, 0xcd, 0x48, 0x83, 0xfd, 0x01, 0x7e,
0x1b, 0x8d, 0x45, 0xfe, 0x49, 0x8b, 0x3c, 0xc4,
0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78, 0xe9, 0x48,
0xff, 0xc8, 0x48, 0x89, 0x07, 0x75, 0xe1, 0x41,
0xff, 0xd6, 0xeb, 0xdc, 0x4d, 0x85, 0xed, 0x74,
0x3f, 0x0f, 0xb7, 0x05, 0x00, 0x00, 0x00, 0x00,
0x89, 0xc1, 0xf7, 0xd9, 0x01, 0xc9, 0x48, 0x63,
0xc9, 0x4d, 0x89, 0x2c, 0xcf, 0x01, 0xc0, 0xb9,
0x01, 0x00, 0x00, 0x00, 0x29, 0xc1, 0x48, 0x63,
0xc1, 0x49, 0x8d, 0x34, 0xc7, 0x48, 0x89, 0xdf,
0x48, 0x8b, 0x14, 0x24, 0x48, 0x83, 0xc4, 0x08,
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41,
0x5f, 0x5d, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00,
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48,
0x8b, 0x0c, 0x24, 0x48, 0x89, 0x81, 0x28, 0x01,
0x00, 0x00, 0x49, 0x29, 0xdc, 0x49, 0x83, 0xc4,
0xb8, 0x49, 0xc1, 0xec, 0x03, 0x44, 0x89, 0x63,
0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4, 0x08, 0x5b,
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f,
0x5d, 0xc3,
};
static const Hole _BUILD_MAP_code_holes[8] = {
{0x18, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x47, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x57, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x65, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x9c, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0xd4, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0xdb, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
};
// 0:
// 0: OPARG
// 8: &_PyDict_FromItems+0x0
// 10: &_Py_Dealloc+0x0
// 18: CONTINUE
// 20: EXECUTOR
static const unsigned char _BUILD_MAP_data_body[41] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _BUILD_MAP_data_holes[6] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyDict_FromItems, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _BUILD_SET
//
// /tmp/tmp2mfmnab2/_BUILD_SET.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 48 83 ec 18 subq $0x18, %rsp
// e: 49 89 d6 movq %rdx, %r14
// 11: 49 89 f5 movq %rsi, %r13
// 14: 48 89 fb movq %rdi, %rbx
// 17: 31 ff xorl %edi, %edi
// 19: ff 15 00 00 00 00 callq *(%rip) # 0x1f <_JIT_ENTRY+0x1f>
// 000000000000001b: R_X86_64_GOTPCRELX PySet_New-0x4
// 1f: 48 85 c0 testq %rax, %rax
// 22: 0f 84 92 00 00 00 je 0xba <_JIT_ENTRY+0xba>
// 28: 49 89 c4 movq %rax, %r12
// 2b: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x32 <_JIT_ENTRY+0x32>
// 000000000000002e: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 32: 66 85 c0 testw %ax, %ax
// 35: 0f 84 de 00 00 00 je 0x119 <_JIT_ENTRY+0x119>
// 3b: 4c 89 74 24 08 movq %r14, 0x8(%rsp)
// 40: 48 89 5c 24 10 movq %rbx, 0x10(%rsp)
// 45: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x4c <_JIT_ENTRY+0x4c>
// 0000000000000048: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 4c: 48 8d 0c c5 00 00 00 00 leaq (,%rax,8), %rcx
// 54: 4c 89 2c 24 movq %r13, (%rsp)
// 58: 4d 89 ef movq %r13, %r15
// 5b: 49 29 cf subq %rcx, %r15
// 5e: 83 f8 02 cmpl $0x2, %eax
// 61: bb 01 00 00 00 movl $0x1, %ebx
// 66: 0f 43 d8 cmovael %eax, %ebx
// 69: 45 31 f6 xorl %r14d, %r14d
// 6c: 31 ed xorl %ebp, %ebp
// 6e: eb 08 jmp 0x78 <_JIT_ENTRY+0x78>
// 70: 49 ff c6 incq %r14
// 73: 4c 39 f3 cmpq %r14, %rbx
// 76: 74 47 je 0xbf <_JIT_ENTRY+0xbf>
// 78: 4f 8b 2c f7 movq (%r15,%r14,8), %r13
// 7c: 85 ed testl %ebp, %ebp
// 7e: 74 10 je 0x90 <_JIT_ENTRY+0x90>
// 80: 49 8b 45 00 movq (%r13), %rax
// 84: 85 c0 testl %eax, %eax
// 86: 78 e8 js 0x70 <_JIT_ENTRY+0x70>
// 88: eb 1c jmp 0xa6 <_JIT_ENTRY+0xa6>
// 8a: 66 0f 1f 44 00 00 nopw (%rax,%rax)
// 90: 4c 89 e7 movq %r12, %rdi
// 93: 4c 89 ee movq %r13, %rsi
// 96: ff 15 00 00 00 00 callq *(%rip) # 0x9c <_JIT_ENTRY+0x9c>
// 0000000000000098: R_X86_64_GOTPCRELX PySet_Add-0x4
// 9c: 89 c5 movl %eax, %ebp
// 9e: 49 8b 45 00 movq (%r13), %rax
// a2: 85 c0 testl %eax, %eax
// a4: 78 ca js 0x70 <_JIT_ENTRY+0x70>
// a6: 48 ff c8 decq %rax
// a9: 49 89 45 00 movq %rax, (%r13)
// ad: 75 c1 jne 0x70 <_JIT_ENTRY+0x70>
// af: 4c 89 ef movq %r13, %rdi
// b2: ff 15 00 00 00 00 callq *(%rip) # 0xb8 <_JIT_ENTRY+0xb8>
// 00000000000000b4: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// b8: eb b6 jmp 0x70 <_JIT_ENTRY+0x70>
// ba: 4d 89 ef movq %r13, %r15
// bd: eb 2c jmp 0xeb <_JIT_ENTRY+0xeb>
// bf: 85 ed testl %ebp, %ebp
// c1: 48 8b 5c 24 10 movq 0x10(%rsp), %rbx
// c6: 4c 8b 74 24 08 movq 0x8(%rsp), %r14
// cb: 4c 8b 2c 24 movq (%rsp), %r13
// cf: 74 48 je 0x119 <_JIT_ENTRY+0x119>
// d1: 49 8b 04 24 movq (%r12), %rax
// d5: 85 c0 testl %eax, %eax
// d7: 78 12 js 0xeb <_JIT_ENTRY+0xeb>
// d9: 48 ff c8 decq %rax
// dc: 49 89 04 24 movq %rax, (%r12)
// e0: 75 09 jne 0xeb <_JIT_ENTRY+0xeb>
// e2: 4c 89 e7 movq %r12, %rdi
// e5: ff 15 00 00 00 00 callq *(%rip) # 0xeb <_JIT_ENTRY+0xeb>
// 00000000000000e7: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// eb: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xf2 <_JIT_ENTRY+0xf2>
// 00000000000000ee: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// f2: 49 89 86 28 01 00 00 movq %rax, 0x128(%r14)
// f9: 49 29 df subq %rbx, %r15
// fc: 49 83 c7 b8 addq $-0x48, %r15
// 100: 49 c1 ef 03 shrq $0x3, %r15
// 104: 44 89 7b 40 movl %r15d, 0x40(%rbx)
// 108: 31 c0 xorl %eax, %eax
// 10a: 48 83 c4 18 addq $0x18, %rsp
// 10e: 5b popq %rbx
// 10f: 41 5c popq %r12
// 111: 41 5d popq %r13
// 113: 41 5e popq %r14
// 115: 41 5f popq %r15
// 117: 5d popq %rbp
// 118: c3 retq
// 119: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x120 <_JIT_ENTRY+0x120>
// 000000000000011c: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 120: 0f b7 c8 movzwl %ax, %ecx
// 123: 0f b7 c0 movzwl %ax, %eax
// 126: 48 c1 e0 03 shlq $0x3, %rax
// 12a: 48 f7 d8 negq %rax
// 12d: 4d 89 64 05 00 movq %r12, (%r13,%rax)
// 132: b8 01 00 00 00 movl $0x1, %eax
// 137: 29 c8 subl %ecx, %eax
// 139: 48 98 cltq
// 13b: 48 8d 34 c5 00 00 00 00 leaq (,%rax,8), %rsi
// 143: 4c 01 ee addq %r13, %rsi
// 146: 48 89 df movq %rbx, %rdi
// 149: 4c 89 f2 movq %r14, %rdx
// 14c: 48 83 c4 18 addq $0x18, %rsp
// 150: 5b popq %rbx
// 151: 41 5c popq %r12
// 153: 41 5d popq %r13
// 155: 41 5e popq %r14
// 157: 41 5f popq %r15
// 159: 5d popq %rbp
// 15a: ff 25 00 00 00 00 jmpq *(%rip) # 0x160 <_JIT_ENTRY+0x160>
// 000000000000015c: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 15a:
static const unsigned char _BUILD_SET_code_body[347] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x48, 0x83, 0xec, 0x18, 0x49, 0x89,
0xd6, 0x49, 0x89, 0xf5, 0x48, 0x89, 0xfb, 0x31,
0xff, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48,
0x85, 0xc0, 0x0f, 0x84, 0x92, 0x00, 0x00, 0x00,
0x49, 0x89, 0xc4, 0x48, 0x8b, 0x05, 0x00, 0x00,
0x00, 0x00, 0x66, 0x85, 0xc0, 0x0f, 0x84, 0xde,
0x00, 0x00, 0x00, 0x4c, 0x89, 0x74, 0x24, 0x08,
0x48, 0x89, 0x5c, 0x24, 0x10, 0x0f, 0xb7, 0x05,
0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x0c, 0xc5,
0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0x2c, 0x24,
0x4d, 0x89, 0xef, 0x49, 0x29, 0xcf, 0x83, 0xf8,
0x02, 0xbb, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x43,
0xd8, 0x45, 0x31, 0xf6, 0x31, 0xed, 0xeb, 0x08,
0x49, 0xff, 0xc6, 0x4c, 0x39, 0xf3, 0x74, 0x47,
0x4f, 0x8b, 0x2c, 0xf7, 0x85, 0xed, 0x74, 0x10,
0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0, 0x78, 0xe8,
0xeb, 0x1c, 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00,
0x4c, 0x89, 0xe7, 0x4c, 0x89, 0xee, 0xff, 0x15,
0x00, 0x00, 0x00, 0x00, 0x89, 0xc5, 0x49, 0x8b,
0x45, 0x00, 0x85, 0xc0, 0x78, 0xca, 0x48, 0xff,
0xc8, 0x49, 0x89, 0x45, 0x00, 0x75, 0xc1, 0x4c,
0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0xeb, 0xb6, 0x4d, 0x89, 0xef, 0xeb, 0x2c, 0x85,
0xed, 0x48, 0x8b, 0x5c, 0x24, 0x10, 0x4c, 0x8b,
0x74, 0x24, 0x08, 0x4c, 0x8b, 0x2c, 0x24, 0x74,
0x48, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78,
0x12, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24,
0x75, 0x09, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00,
0x00, 0x00, 0x49, 0x89, 0x86, 0x28, 0x01, 0x00,
0x00, 0x49, 0x29, 0xdf, 0x49, 0x83, 0xc7, 0xb8,
0x49, 0xc1, 0xef, 0x03, 0x44, 0x89, 0x7b, 0x40,
0x31, 0xc0, 0x48, 0x83, 0xc4, 0x18, 0x5b, 0x41,
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d,
0xc3, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x0f, 0xb7, 0xc8, 0x0f, 0xb7, 0xc0, 0x48, 0xc1,
0xe0, 0x03, 0x48, 0xf7, 0xd8, 0x4d, 0x89, 0x64,
0x05, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x00, 0x29,
0xc8, 0x48, 0x98, 0x48, 0x8d, 0x34, 0xc5, 0x00,
0x00, 0x00, 0x00, 0x4c, 0x01, 0xee, 0x48, 0x89,
0xdf, 0x4c, 0x89, 0xf2, 0x48, 0x83, 0xc4, 0x18,
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41,
0x5f, 0x5d,
};
static const Hole _BUILD_SET_code_holes[9] = {
{0x1b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x2e, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x48, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x4},
{0x98, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0xb4, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0xe7, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0xee, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0x11c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
};
// 0:
// 0: &PySet_New+0x0
// 8: OPARG
// 10: &PySet_Add+0x0
// 18: &_Py_Dealloc+0x0
// 20: EXECUTOR
static const unsigned char _BUILD_SET_data_body[41] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _BUILD_SET_data_holes[6] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PySet_New, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &PySet_Add, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _BUILD_SLICE
//
// /tmp/tmp2mfmnab2/_BUILD_SLICE.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 48 83 ec 18 subq $0x18, %rsp
// e: 48 89 14 24 movq %rdx, (%rsp)
// 12: 49 89 f7 movq %rsi, %r15
// 15: 48 89 7c 24 08 movq %rdi, 0x8(%rsp)
// 1a: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x21 <_JIT_ENTRY+0x21>
// 000000000000001d: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 21: 66 83 f8 03 cmpw $0x3, %ax
// 25: 75 17 jne 0x3e <_JIT_ENTRY+0x3e>
// 27: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x2e <_JIT_ENTRY+0x2e>
// 000000000000002a: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 2e: 31 c9 xorl %ecx, %ecx
// 30: 66 83 f8 03 cmpw $0x3, %ax
// 34: 0f 95 c1 setne %cl
// 37: 4d 8b 64 cf f8 movq -0x8(%r15,%rcx,8), %r12
// 3c: eb 03 jmp 0x41 <_JIT_ENTRY+0x41>
// 3e: 45 31 e4 xorl %r12d, %r12d
// 41: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x48 <_JIT_ENTRY+0x48>
// 0000000000000044: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 48: 31 c9 xorl %ecx, %ecx
// 4a: 66 83 f8 03 cmpw $0x3, %ax
// 4e: 0f 94 c1 sete %cl
// 51: b8 fe ff ff ff movl $0xfffffffe, %eax # imm = 0xFFFFFFFE
// 56: 29 c8 subl %ecx, %eax
// 58: f7 d1 notl %ecx
// 5a: 48 63 c9 movslq %ecx, %rcx
// 5d: 48 89 4c 24 10 movq %rcx, 0x10(%rsp)
// 62: 49 8b 2c cf movq (%r15,%rcx,8), %rbp
// 66: 48 63 d8 movslq %eax, %rbx
// 69: 4d 8b 34 df movq (%r15,%rbx,8), %r14
// 6d: 4c 89 f7 movq %r14, %rdi
// 70: 48 89 ee movq %rbp, %rsi
// 73: 4c 89 e2 movq %r12, %rdx
// 76: ff 15 00 00 00 00 callq *(%rip) # 0x7c <_JIT_ENTRY+0x7c>
// 0000000000000078: R_X86_64_GOTPCRELX PySlice_New-0x4
// 7c: 49 89 c5 movq %rax, %r13
// 7f: 49 8b 06 movq (%r14), %rax
// 82: 85 c0 testl %eax, %eax
// 84: 78 08 js 0x8e <_JIT_ENTRY+0x8e>
// 86: 48 ff c8 decq %rax
// 89: 49 89 06 movq %rax, (%r14)
// 8c: 74 1c je 0xaa <_JIT_ENTRY+0xaa>
// 8e: 48 8b 45 00 movq (%rbp), %rax
// 92: 85 c0 testl %eax, %eax
// 94: 78 25 js 0xbb <_JIT_ENTRY+0xbb>
// 96: 48 ff c8 decq %rax
// 99: 48 89 45 00 movq %rax, (%rbp)
// 9d: 75 1c jne 0xbb <_JIT_ENTRY+0xbb>
// 9f: 48 89 ef movq %rbp, %rdi
// a2: ff 15 00 00 00 00 callq *(%rip) # 0xa8 <_JIT_ENTRY+0xa8>
// 00000000000000a4: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// a8: eb 11 jmp 0xbb <_JIT_ENTRY+0xbb>
// aa: 4c 89 f7 movq %r14, %rdi
// ad: ff 15 00 00 00 00 callq *(%rip) # 0xb3 <_JIT_ENTRY+0xb3>
// 00000000000000af: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// b3: 48 8b 45 00 movq (%rbp), %rax
// b7: 85 c0 testl %eax, %eax
// b9: 79 db jns 0x96 <_JIT_ENTRY+0x96>
// bb: 4d 85 e4 testq %r12, %r12
// be: 74 11 je 0xd1 <_JIT_ENTRY+0xd1>
// c0: 49 8b 04 24 movq (%r12), %rax
// c4: 85 c0 testl %eax, %eax
// c6: 78 09 js 0xd1 <_JIT_ENTRY+0xd1>
// c8: 48 ff c8 decq %rax
// cb: 49 89 04 24 movq %rax, (%r12)
// cf: 74 32 je 0x103 <_JIT_ENTRY+0x103>
// d1: 49 8d 04 df leaq (%r15,%rbx,8), %rax
// d5: 4d 85 ed testq %r13, %r13
// d8: 74 3b je 0x115 <_JIT_ENTRY+0x115>
// da: 48 8b 4c 24 10 movq 0x10(%rsp), %rcx
// df: 49 8d 34 cf leaq (%r15,%rcx,8), %rsi
// e3: 4c 89 28 movq %r13, (%rax)
// e6: 48 8b 7c 24 08 movq 0x8(%rsp), %rdi
// eb: 48 8b 14 24 movq (%rsp), %rdx
// ef: 48 83 c4 18 addq $0x18, %rsp
// f3: 5b popq %rbx
// f4: 41 5c popq %r12
// f6: 41 5d popq %r13
// f8: 41 5e popq %r14
// fa: 41 5f popq %r15
// fc: 5d popq %rbp
// fd: ff 25 00 00 00 00 jmpq *(%rip) # 0x103 <_JIT_ENTRY+0x103>
// 00000000000000ff: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 103: 4c 89 e7 movq %r12, %rdi
// 106: ff 15 00 00 00 00 callq *(%rip) # 0x10c <_JIT_ENTRY+0x10c>
// 0000000000000108: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 10c: 49 8d 04 df leaq (%r15,%rbx,8), %rax
// 110: 4d 85 ed testq %r13, %r13
// 113: 75 c5 jne 0xda <_JIT_ENTRY+0xda>
// 115: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x11c <_JIT_ENTRY+0x11c>
// 0000000000000118: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 11c: 48 8b 14 24 movq (%rsp), %rdx
// 120: 48 89 8a 28 01 00 00 movq %rcx, 0x128(%rdx)
// 127: 48 8b 4c 24 08 movq 0x8(%rsp), %rcx
// 12c: 48 29 c8 subq %rcx, %rax
// 12f: 48 83 c0 b8 addq $-0x48, %rax
// 133: 48 c1 e8 03 shrq $0x3, %rax
// 137: 89 41 40 movl %eax, 0x40(%rcx)
// 13a: 31 c0 xorl %eax, %eax
// 13c: 48 83 c4 18 addq $0x18, %rsp
// 140: 5b popq %rbx
// 141: 41 5c popq %r12
// 143: 41 5d popq %r13
// 145: 41 5e popq %r14
// 147: 41 5f popq %r15
// 149: 5d popq %rbp
// 14a: c3 retq
// 14b:
static const unsigned char _BUILD_SLICE_code_body[332] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x48, 0x83, 0xec, 0x18, 0x48, 0x89,
0x14, 0x24, 0x49, 0x89, 0xf7, 0x48, 0x89, 0x7c,
0x24, 0x08, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x66, 0x83, 0xf8, 0x03, 0x75, 0x17, 0x48,
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x31, 0xc9,
0x66, 0x83, 0xf8, 0x03, 0x0f, 0x95, 0xc1, 0x4d,
0x8b, 0x64, 0xcf, 0xf8, 0xeb, 0x03, 0x45, 0x31,
0xe4, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x31, 0xc9, 0x66, 0x83, 0xf8, 0x03, 0x0f, 0x94,
0xc1, 0xb8, 0xfe, 0xff, 0xff, 0xff, 0x29, 0xc8,
0xf7, 0xd1, 0x48, 0x63, 0xc9, 0x48, 0x89, 0x4c,
0x24, 0x10, 0x49, 0x8b, 0x2c, 0xcf, 0x48, 0x63,
0xd8, 0x4d, 0x8b, 0x34, 0xdf, 0x4c, 0x89, 0xf7,
0x48, 0x89, 0xee, 0x4c, 0x89, 0xe2, 0xff, 0x15,
0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0xc5, 0x49,
0x8b, 0x06, 0x85, 0xc0, 0x78, 0x08, 0x48, 0xff,
0xc8, 0x49, 0x89, 0x06, 0x74, 0x1c, 0x48, 0x8b,
0x45, 0x00, 0x85, 0xc0, 0x78, 0x25, 0x48, 0xff,
0xc8, 0x48, 0x89, 0x45, 0x00, 0x75, 0x1c, 0x48,
0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0xeb, 0x11, 0x4c, 0x89, 0xf7, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x48, 0x8b, 0x45, 0x00, 0x85,
0xc0, 0x79, 0xdb, 0x4d, 0x85, 0xe4, 0x74, 0x11,
0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, 0x09,
0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, 0x74,
0x32, 0x49, 0x8d, 0x04, 0xdf, 0x4d, 0x85, 0xed,
0x74, 0x3b, 0x48, 0x8b, 0x4c, 0x24, 0x10, 0x49,
0x8d, 0x34, 0xcf, 0x4c, 0x89, 0x28, 0x48, 0x8b,
0x7c, 0x24, 0x08, 0x48, 0x8b, 0x14, 0x24, 0x48,
0x83, 0xc4, 0x18, 0x5b, 0x41, 0x5c, 0x41, 0x5d,
0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00,
0x00, 0x00, 0x00, 0x4c, 0x89, 0xe7, 0xff, 0x15,
0x00, 0x00, 0x00, 0x00, 0x49, 0x8d, 0x04, 0xdf,
0x4d, 0x85, 0xed, 0x75, 0xc5, 0x48, 0x8b, 0x0d,
0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x14, 0x24,
0x48, 0x89, 0x8a, 0x28, 0x01, 0x00, 0x00, 0x48,
0x8b, 0x4c, 0x24, 0x08, 0x48, 0x29, 0xc8, 0x48,
0x83, 0xc0, 0xb8, 0x48, 0xc1, 0xe8, 0x03, 0x89,
0x41, 0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4, 0x18,
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41,
0x5f, 0x5d, 0xc3,
};
static const Hole _BUILD_SLICE_code_holes[10] = {
{0x1d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x2a, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x44, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x78, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0xa4, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0xaf, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0xff, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x108, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x118, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
};
// 0:
// 0: OPARG
// 8: &PySlice_New+0x0
// 10: &_Py_Dealloc+0x0
// 18: CONTINUE
// 20: EXECUTOR
static const unsigned char _BUILD_SLICE_data_body[41] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _BUILD_SLICE_data_holes[6] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PySlice_New, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _BUILD_STRING
//
// /tmp/tmp2mfmnab2/_BUILD_STRING.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 48 89 14 24 movq %rdx, (%rsp)
// f: 49 89 f7 movq %rsi, %r15
// 12: 48 89 fb movq %rdi, %rbx
// 15: 4c 8b 35 00 00 00 00 movq (%rip), %r14 # 0x1c <_JIT_ENTRY+0x1c>
// 0000000000000018: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 1c: 41 0f b7 d6 movzwl %r14w, %edx
// 20: 48 8d 04 d5 00 00 00 00 leaq (,%rdx,8), %rax
// 28: 49 89 f4 movq %rsi, %r12
// 2b: 49 29 c4 subq %rax, %r12
// 2e: bf d8 62 00 00 movl $0x62d8, %edi # imm = 0x62D8
// 33: 48 03 3d 00 00 00 00 addq (%rip), %rdi # 0x3a <_JIT_ENTRY+0x3a>
// 0000000000000036: R_X86_64_REX_GOTPCRELX _PyRuntime-0x4
// 3a: 4c 89 e6 movq %r12, %rsi
// 3d: ff 15 00 00 00 00 callq *(%rip) # 0x43 <_JIT_ENTRY+0x43>
// 000000000000003f: R_X86_64_GOTPCRELX _PyUnicode_JoinArray-0x4
// 43: 49 89 c5 movq %rax, %r13
// 46: 41 f7 c6 ff ff 00 00 testl $0xffff, %r14d # imm = 0xFFFF
// 4d: 7e 45 jle 0x94 <_JIT_ENTRY+0x94>
// 4f: 0f b7 2d 00 00 00 00 movzwl (%rip), %ebp # 0x56 <_JIT_ENTRY+0x56>
// 0000000000000052: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 56: 48 ff c5 incq %rbp
// 59: 4c 8b 35 00 00 00 00 movq (%rip), %r14 # 0x60 <_JIT_ENTRY+0x60>
// 000000000000005c: R_X86_64_REX_GOTPCRELX _Py_Dealloc-0x4
// 60: eb 17 jmp 0x79 <_JIT_ENTRY+0x79>
// 62: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax)
// 70: 48 ff cd decq %rbp
// 73: 48 83 fd 01 cmpq $0x1, %rbp
// 77: 7e 1b jle 0x94 <_JIT_ENTRY+0x94>
// 79: 8d 45 fe leal -0x2(%rbp), %eax
// 7c: 49 8b 3c c4 movq (%r12,%rax,8), %rdi
// 80: 48 8b 07 movq (%rdi), %rax
// 83: 85 c0 testl %eax, %eax
// 85: 78 e9 js 0x70 <_JIT_ENTRY+0x70>
// 87: 48 ff c8 decq %rax
// 8a: 48 89 07 movq %rax, (%rdi)
// 8d: 75 e1 jne 0x70 <_JIT_ENTRY+0x70>
// 8f: 41 ff d6 callq *%r14
// 92: eb dc jmp 0x70 <_JIT_ENTRY+0x70>
// 94: 4d 85 ed testq %r13, %r13
// 97: 74 40 je 0xd9 <_JIT_ENTRY+0xd9>
// 99: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xa0 <_JIT_ENTRY+0xa0>
// 000000000000009c: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// a0: 0f b7 c8 movzwl %ax, %ecx
// a3: 0f b7 c0 movzwl %ax, %eax
// a6: 48 c1 e0 03 shlq $0x3, %rax
// aa: 48 f7 d8 negq %rax
// ad: 4d 89 2c 07 movq %r13, (%r15,%rax)
// b1: b8 01 00 00 00 movl $0x1, %eax
// b6: 29 c8 subl %ecx, %eax
// b8: 48 98 cltq
// ba: 49 8d 34 c7 leaq (%r15,%rax,8), %rsi
// be: 48 89 df movq %rbx, %rdi
// c1: 48 8b 14 24 movq (%rsp), %rdx
// c5: 48 83 c4 08 addq $0x8, %rsp
// c9: 5b popq %rbx
// ca: 41 5c popq %r12
// cc: 41 5d popq %r13
// ce: 41 5e popq %r14
// d0: 41 5f popq %r15
// d2: 5d popq %rbp
// d3: ff 25 00 00 00 00 jmpq *(%rip) # 0xd9 <_JIT_ENTRY+0xd9>
// 00000000000000d5: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// d9: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xe0 <_JIT_ENTRY+0xe0>
// 00000000000000dc: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// e0: 48 8b 0c 24 movq (%rsp), %rcx
// e4: 48 89 81 28 01 00 00 movq %rax, 0x128(%rcx)
// eb: 49 29 dc subq %rbx, %r12
// ee: 49 83 c4 b8 addq $-0x48, %r12
// f2: 49 c1 ec 03 shrq $0x3, %r12
// f6: 44 89 63 40 movl %r12d, 0x40(%rbx)
// fa: 31 c0 xorl %eax, %eax
// fc: 48 83 c4 08 addq $0x8, %rsp
// 100: 5b popq %rbx
// 101: 41 5c popq %r12
// 103: 41 5d popq %r13
// 105: 41 5e popq %r14
// 107: 41 5f popq %r15
// 109: 5d popq %rbp
// 10a: c3 retq
// 10b:
static const unsigned char _BUILD_STRING_code_body[268] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x48, 0x89, 0x14, 0x24, 0x49,
0x89, 0xf7, 0x48, 0x89, 0xfb, 0x4c, 0x8b, 0x35,
0x00, 0x00, 0x00, 0x00, 0x41, 0x0f, 0xb7, 0xd6,
0x48, 0x8d, 0x04, 0xd5, 0x00, 0x00, 0x00, 0x00,
0x49, 0x89, 0xf4, 0x49, 0x29, 0xc4, 0xbf, 0xd8,
0x62, 0x00, 0x00, 0x48, 0x03, 0x3d, 0x00, 0x00,
0x00, 0x00, 0x4c, 0x89, 0xe6, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x49, 0x89, 0xc5, 0x41, 0xf7,
0xc6, 0xff, 0xff, 0x00, 0x00, 0x7e, 0x45, 0x0f,
0xb7, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x48, 0xff,
0xc5, 0x4c, 0x8b, 0x35, 0x00, 0x00, 0x00, 0x00,
0xeb, 0x17, 0x66, 0x66, 0x66, 0x66, 0x66, 0x2e,
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00,
0x48, 0xff, 0xcd, 0x48, 0x83, 0xfd, 0x01, 0x7e,
0x1b, 0x8d, 0x45, 0xfe, 0x49, 0x8b, 0x3c, 0xc4,
0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78, 0xe9, 0x48,
0xff, 0xc8, 0x48, 0x89, 0x07, 0x75, 0xe1, 0x41,
0xff, 0xd6, 0xeb, 0xdc, 0x4d, 0x85, 0xed, 0x74,
0x40, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x0f, 0xb7, 0xc8, 0x0f, 0xb7, 0xc0, 0x48, 0xc1,
0xe0, 0x03, 0x48, 0xf7, 0xd8, 0x4d, 0x89, 0x2c,
0x07, 0xb8, 0x01, 0x00, 0x00, 0x00, 0x29, 0xc8,
0x48, 0x98, 0x49, 0x8d, 0x34, 0xc7, 0x48, 0x89,
0xdf, 0x48, 0x8b, 0x14, 0x24, 0x48, 0x83, 0xc4,
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e,
0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00, 0x00, 0x00,
0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x48, 0x8b, 0x0c, 0x24, 0x48, 0x89, 0x81, 0x28,
0x01, 0x00, 0x00, 0x49, 0x29, 0xdc, 0x49, 0x83,
0xc4, 0xb8, 0x49, 0xc1, 0xec, 0x03, 0x44, 0x89,
0x63, 0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4, 0x08,
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41,
0x5f, 0x5d, 0xc3,
};
static const Hole _BUILD_STRING_code_holes[9] = {
{0x18, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x36, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x3f, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x52, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x5c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x9c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0xd5, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0xdc, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
};
// 0:
// 0: OPARG
// 8: &_PyRuntime+0x0
// 10: &_PyUnicode_JoinArray+0x0
// 18: &_Py_Dealloc+0x0
// 20: CONTINUE
// 28: EXECUTOR
static const unsigned char _BUILD_STRING_data_body[49] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _BUILD_STRING_data_holes[7] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyRuntime, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyUnicode_JoinArray, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _BUILD_TUPLE
//
// /tmp/tmp2mfmnab2/_BUILD_TUPLE.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 54 pushq %r12
// 6: 53 pushq %rbx
// 7: 50 pushq %rax
// 8: 49 89 d6 movq %rdx, %r14
// b: 49 89 f7 movq %rsi, %r15
// e: 48 89 fb movq %rdi, %rbx
// 11: 0f b7 35 00 00 00 00 movzwl (%rip), %esi # 0x18 <_JIT_ENTRY+0x18>
// 0000000000000014: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 18: 48 8d 04 f5 00 00 00 00 leaq (,%rsi,8), %rax
// 20: 4d 89 fc movq %r15, %r12
// 23: 49 29 c4 subq %rax, %r12
// 26: 4c 89 e7 movq %r12, %rdi
// 29: ff 15 00 00 00 00 callq *(%rip) # 0x2f <_JIT_ENTRY+0x2f>
// 000000000000002b: R_X86_64_GOTPCRELX _PyTuple_FromArraySteal-0x4
// 2f: 48 85 c0 testq %rax, %rax
// 32: 74 3c je 0x70 <_JIT_ENTRY+0x70>
// 34: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x3b <_JIT_ENTRY+0x3b>
// 0000000000000037: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 3b: 0f b7 d1 movzwl %cx, %edx
// 3e: 0f b7 c9 movzwl %cx, %ecx
// 41: 48 c1 e1 03 shlq $0x3, %rcx
// 45: 48 f7 d9 negq %rcx
// 48: 49 89 04 0f movq %rax, (%r15,%rcx)
// 4c: b8 01 00 00 00 movl $0x1, %eax
// 51: 29 d0 subl %edx, %eax
// 53: 48 98 cltq
// 55: 49 8d 34 c7 leaq (%r15,%rax,8), %rsi
// 59: 48 89 df movq %rbx, %rdi
// 5c: 4c 89 f2 movq %r14, %rdx
// 5f: 48 83 c4 08 addq $0x8, %rsp
// 63: 5b popq %rbx
// 64: 41 5c popq %r12
// 66: 41 5e popq %r14
// 68: 41 5f popq %r15
// 6a: ff 25 00 00 00 00 jmpq *(%rip) # 0x70 <_JIT_ENTRY+0x70>
// 000000000000006c: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 70: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x77 <_JIT_ENTRY+0x77>
// 0000000000000073: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 77: 49 89 86 28 01 00 00 movq %rax, 0x128(%r14)
// 7e: 49 29 dc subq %rbx, %r12
// 81: 49 83 c4 b8 addq $-0x48, %r12
// 85: 49 c1 ec 03 shrq $0x3, %r12
// 89: 44 89 63 40 movl %r12d, 0x40(%rbx)
// 8d: 31 c0 xorl %eax, %eax
// 8f: 48 83 c4 08 addq $0x8, %rsp
// 93: 5b popq %rbx
// 94: 41 5c popq %r12
// 96: 41 5e popq %r14
// 98: 41 5f popq %r15
// 9a: c3 retq
// 9b:
static const unsigned char _BUILD_TUPLE_code_body[156] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x54, 0x53, 0x50,
0x49, 0x89, 0xd6, 0x49, 0x89, 0xf7, 0x48, 0x89,
0xfb, 0x0f, 0xb7, 0x35, 0x00, 0x00, 0x00, 0x00,
0x48, 0x8d, 0x04, 0xf5, 0x00, 0x00, 0x00, 0x00,
0x4d, 0x89, 0xfc, 0x49, 0x29, 0xc4, 0x4c, 0x89,
0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48,
0x85, 0xc0, 0x74, 0x3c, 0x48, 0x8b, 0x0d, 0x00,
0x00, 0x00, 0x00, 0x0f, 0xb7, 0xd1, 0x0f, 0xb7,
0xc9, 0x48, 0xc1, 0xe1, 0x03, 0x48, 0xf7, 0xd9,
0x49, 0x89, 0x04, 0x0f, 0xb8, 0x01, 0x00, 0x00,
0x00, 0x29, 0xd0, 0x48, 0x98, 0x49, 0x8d, 0x34,
0xc7, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xf2, 0x48,
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5e,
0x41, 0x5f, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00,
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49,
0x89, 0x86, 0x28, 0x01, 0x00, 0x00, 0x49, 0x29,
0xdc, 0x49, 0x83, 0xc4, 0xb8, 0x49, 0xc1, 0xec,
0x03, 0x44, 0x89, 0x63, 0x40, 0x31, 0xc0, 0x48,
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5e,
0x41, 0x5f, 0xc3,
};
static const Hole _BUILD_TUPLE_code_holes[6] = {
{0x14, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x2b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x37, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x6c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x73, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
};
// 0:
// 0: OPARG
// 8: &_PyTuple_FromArraySteal+0x0
// 10: CONTINUE
// 18: EXECUTOR
static const unsigned char _BUILD_TUPLE_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _BUILD_TUPLE_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyTuple_FromArraySteal, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _CALL_BUILTIN_CLASS
//
// /tmp/tmp2mfmnab2/_CALL_BUILTIN_CLASS.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 48 83 ec 28 subq $0x28, %rsp
// e: 49 89 f7 movq %rsi, %r15
// 11: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x18 <_JIT_ENTRY+0x18>
// 0000000000000014: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 18: 44 0f b7 c9 movzwl %cx, %r9d
// 1c: 44 89 c8 movl %r9d, %eax
// 1f: f7 d0 notl %eax
// 21: 4c 63 d0 movslq %eax, %r10
// 24: 4a 8b 04 d6 movq (%rsi,%r10,8), %rax
// 28: be fe ff ff ff movl $0xfffffffe, %esi # imm = 0xFFFFFFFE
// 2d: 44 29 ce subl %r9d, %esi
// 30: 45 8d 69 01 leal 0x1(%r9), %r13d
// 34: 0f b7 c9 movzwl %cx, %ecx
// 37: 49 89 c8 movq %rcx, %r8
// 3a: 49 f7 d8 negq %r8
// 3d: 48 85 c0 testq %rax, %rax
// 40: 45 0f 44 e9 cmovel %r9d, %r13d
// 44: 4c 63 f6 movslq %esi, %r14
// 47: 48 f7 d1 notq %rcx
// 4a: 49 0f 44 c8 cmoveq %r8, %rcx
// 4e: 4f 8b 24 f7 movq (%r15,%r14,8), %r12
// 52: 49 8b 74 24 08 movq 0x8(%r12), %rsi
// 57: f6 86 ab 00 00 00 80 testb $-0x80, 0xab(%rsi)
// 5e: 0f 84 d0 00 00 00 je 0x134 <_JIT_ENTRY+0x134>
// 64: 4d 8b 84 24 90 01 00 00 movq 0x190(%r12), %r8
// 6c: 4d 85 c0 testq %r8, %r8
// 6f: 0f 84 bf 00 00 00 je 0x134 <_JIT_ENTRY+0x134>
// 75: 4c 89 54 24 08 movq %r10, 0x8(%rsp)
// 7a: 48 89 54 24 18 movq %rdx, 0x18(%rsp)
// 7f: 48 89 7c 24 20 movq %rdi, 0x20(%rsp)
// 84: 49 8d 2c cf leaq (%r15,%rcx,8), %rbp
// 88: 48 85 c0 testq %rax, %rax
// 8b: 0f 94 c3 sete %bl
// 8e: 44 89 ea movl %r13d, %edx
// 91: 4c 89 e7 movq %r12, %rdi
// 94: 48 89 ee movq %rbp, %rsi
// 97: 31 c9 xorl %ecx, %ecx
// 99: 41 ff d0 callq *%r8
// 9c: 48 89 44 24 10 movq %rax, 0x10(%rsp)
// a1: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xa8 <_JIT_ENTRY+0xa8>
// 00000000000000a4: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// a8: 66 85 c0 testw %ax, %ax
// ab: 0f 94 c0 sete %al
// ae: 84 c3 testb %al, %bl
// b0: 0f 84 bd 00 00 00 je 0x173 <_JIT_ENTRY+0x173>
// b6: 49 8b 04 24 movq (%r12), %rax
// ba: 85 c0 testl %eax, %eax
// bc: 78 12 js 0xd0 <_JIT_ENTRY+0xd0>
// be: 48 ff c8 decq %rax
// c1: 49 89 04 24 movq %rax, (%r12)
// c5: 75 09 jne 0xd0 <_JIT_ENTRY+0xd0>
// c7: 4c 89 e7 movq %r12, %rdi
// ca: ff 15 00 00 00 00 callq *(%rip) # 0xd0 <_JIT_ENTRY+0xd0>
// 00000000000000cc: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// d0: 4b 8d 04 f7 leaq (%r15,%r14,8), %rax
// d4: 48 8b 54 24 10 movq 0x10(%rsp), %rdx
// d9: 48 85 d2 testq %rdx, %rdx
// dc: 48 8b 5c 24 20 movq 0x20(%rsp), %rbx
// e1: 4c 8b 74 24 18 movq 0x18(%rsp), %r14
// e6: 74 2c je 0x114 <_JIT_ENTRY+0x114>
// e8: 48 8b 4c 24 08 movq 0x8(%rsp), %rcx
// ed: 4d 8d 3c cf leaq (%r15,%rcx,8), %r15
// f1: 48 89 10 movq %rdx, (%rax)
// f4: 49 8b 46 18 movq 0x18(%r14), %rax
// f8: 84 c0 testb %al, %al
// fa: 0f 84 b8 00 00 00 je 0x1b8 <_JIT_ENTRY+0x1b8>
// 100: 4c 89 f7 movq %r14, %rdi
// 103: ff 15 00 00 00 00 callq *(%rip) # 0x109 <_JIT_ENTRY+0x109>
// 0000000000000105: R_X86_64_GOTPCRELX _Py_HandlePending-0x4
// 109: 85 c0 testl %eax, %eax
// 10b: 0f 84 a7 00 00 00 je 0x1b8 <_JIT_ENTRY+0x1b8>
// 111: 4c 89 f8 movq %r15, %rax
// 114: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x11b <_JIT_ENTRY+0x11b>
// 0000000000000117: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 11b: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14)
// 122: 48 29 d8 subq %rbx, %rax
// 125: 48 83 c0 b8 addq $-0x48, %rax
// 129: 48 c1 e8 03 shrq $0x3, %rax
// 12d: 89 43 40 movl %eax, 0x40(%rbx)
// 130: 31 c0 xorl %eax, %eax
// 132: eb 30 jmp 0x164 <_JIT_ENTRY+0x164>
// 134: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x13b <_JIT_ENTRY+0x13b>
// 0000000000000137: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 13b: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 142: 49 29 ff subq %rdi, %r15
// 145: 49 83 c7 b8 addq $-0x48, %r15
// 149: 49 c1 ef 03 shrq $0x3, %r15
// 14d: 44 89 7f 40 movl %r15d, 0x40(%rdi)
// 151: 48 8b 07 movq (%rdi), %rax
// 154: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x15a <_JIT_ENTRY+0x15a>
// 0000000000000156: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 15a: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 15e: 48 05 c8 00 00 00 addq $0xc8, %rax
// 164: 48 83 c4 28 addq $0x28, %rsp
// 168: 5b popq %rbx
// 169: 41 5c popq %r12
// 16b: 41 5d popq %r13
// 16d: 41 5e popq %r14
// 16f: 41 5f popq %r15
// 171: 5d popq %rbp
// 172: c3 retq
// 173: 41 83 fd 02 cmpl $0x2, %r13d
// 177: bb 01 00 00 00 movl $0x1, %ebx
// 17c: 41 0f 43 dd cmovael %r13d, %ebx
// 180: 45 31 ed xorl %r13d, %r13d
// 183: eb 17 jmp 0x19c <_JIT_ENTRY+0x19c>
// 185: 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax)
// 190: 49 ff c5 incq %r13
// 193: 4c 39 eb cmpq %r13, %rbx
// 196: 0f 84 1a ff ff ff je 0xb6 <_JIT_ENTRY+0xb6>
// 19c: 4a 8b 7c ed 00 movq (%rbp,%r13,8), %rdi
// 1a1: 48 8b 07 movq (%rdi), %rax
// 1a4: 85 c0 testl %eax, %eax
// 1a6: 78 e8 js 0x190 <_JIT_ENTRY+0x190>
// 1a8: 48 ff c8 decq %rax
// 1ab: 48 89 07 movq %rax, (%rdi)
// 1ae: 75 e0 jne 0x190 <_JIT_ENTRY+0x190>
// 1b0: ff 15 00 00 00 00 callq *(%rip) # 0x1b6 <_JIT_ENTRY+0x1b6>
// 00000000000001b2: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 1b6: eb d8 jmp 0x190 <_JIT_ENTRY+0x190>
// 1b8: 48 89 df movq %rbx, %rdi
// 1bb: 4c 89 fe movq %r15, %rsi
// 1be: 4c 89 f2 movq %r14, %rdx
// 1c1: 48 83 c4 28 addq $0x28, %rsp
// 1c5: 5b popq %rbx
// 1c6: 41 5c popq %r12
// 1c8: 41 5d popq %r13
// 1ca: 41 5e popq %r14
// 1cc: 41 5f popq %r15
// 1ce: 5d popq %rbp
// 1cf: ff 25 00 00 00 00 jmpq *(%rip) # 0x1d5 <_JIT_ENTRY+0x1d5>
// 00000000000001d1: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 1cf:
static const unsigned char _CALL_BUILTIN_CLASS_code_body[464] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x48, 0x83, 0xec, 0x28, 0x49, 0x89,
0xf7, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00,
0x44, 0x0f, 0xb7, 0xc9, 0x44, 0x89, 0xc8, 0xf7,
0xd0, 0x4c, 0x63, 0xd0, 0x4a, 0x8b, 0x04, 0xd6,
0xbe, 0xfe, 0xff, 0xff, 0xff, 0x44, 0x29, 0xce,
0x45, 0x8d, 0x69, 0x01, 0x0f, 0xb7, 0xc9, 0x49,
0x89, 0xc8, 0x49, 0xf7, 0xd8, 0x48, 0x85, 0xc0,
0x45, 0x0f, 0x44, 0xe9, 0x4c, 0x63, 0xf6, 0x48,
0xf7, 0xd1, 0x49, 0x0f, 0x44, 0xc8, 0x4f, 0x8b,
0x24, 0xf7, 0x49, 0x8b, 0x74, 0x24, 0x08, 0xf6,
0x86, 0xab, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x84,
0xd0, 0x00, 0x00, 0x00, 0x4d, 0x8b, 0x84, 0x24,
0x90, 0x01, 0x00, 0x00, 0x4d, 0x85, 0xc0, 0x0f,
0x84, 0xbf, 0x00, 0x00, 0x00, 0x4c, 0x89, 0x54,
0x24, 0x08, 0x48, 0x89, 0x54, 0x24, 0x18, 0x48,
0x89, 0x7c, 0x24, 0x20, 0x49, 0x8d, 0x2c, 0xcf,
0x48, 0x85, 0xc0, 0x0f, 0x94, 0xc3, 0x44, 0x89,
0xea, 0x4c, 0x89, 0xe7, 0x48, 0x89, 0xee, 0x31,
0xc9, 0x41, 0xff, 0xd0, 0x48, 0x89, 0x44, 0x24,
0x10, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x66, 0x85, 0xc0, 0x0f, 0x94, 0xc0, 0x84, 0xc3,
0x0f, 0x84, 0xbd, 0x00, 0x00, 0x00, 0x49, 0x8b,
0x04, 0x24, 0x85, 0xc0, 0x78, 0x12, 0x48, 0xff,
0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x09, 0x4c,
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x4b, 0x8d, 0x04, 0xf7, 0x48, 0x8b, 0x54, 0x24,
0x10, 0x48, 0x85, 0xd2, 0x48, 0x8b, 0x5c, 0x24,
0x20, 0x4c, 0x8b, 0x74, 0x24, 0x18, 0x74, 0x2c,
0x48, 0x8b, 0x4c, 0x24, 0x08, 0x4d, 0x8d, 0x3c,
0xcf, 0x48, 0x89, 0x10, 0x49, 0x8b, 0x46, 0x18,
0x84, 0xc0, 0x0f, 0x84, 0xb8, 0x00, 0x00, 0x00,
0x4c, 0x89, 0xf7, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0x85, 0xc0, 0x0f, 0x84, 0xa7, 0x00, 0x00,
0x00, 0x4c, 0x89, 0xf8, 0x48, 0x8b, 0x0d, 0x00,
0x00, 0x00, 0x00, 0x49, 0x89, 0x8e, 0x28, 0x01,
0x00, 0x00, 0x48, 0x29, 0xd8, 0x48, 0x83, 0xc0,
0xb8, 0x48, 0xc1, 0xe8, 0x03, 0x89, 0x43, 0x40,
0x31, 0xc0, 0xeb, 0x30, 0x48, 0x8b, 0x05, 0x00,
0x00, 0x00, 0x00, 0x48, 0x89, 0x82, 0x28, 0x01,
0x00, 0x00, 0x49, 0x29, 0xff, 0x49, 0x83, 0xc7,
0xb8, 0x49, 0xc1, 0xef, 0x03, 0x44, 0x89, 0x7f,
0x40, 0x48, 0x8b, 0x07, 0x8b, 0x0d, 0x00, 0x00,
0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05,
0xc8, 0x00, 0x00, 0x00, 0x48, 0x83, 0xc4, 0x28,
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41,
0x5f, 0x5d, 0xc3, 0x41, 0x83, 0xfd, 0x02, 0xbb,
0x01, 0x00, 0x00, 0x00, 0x41, 0x0f, 0x43, 0xdd,
0x45, 0x31, 0xed, 0xeb, 0x17, 0x66, 0x66, 0x2e,
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00,
0x49, 0xff, 0xc5, 0x4c, 0x39, 0xeb, 0x0f, 0x84,
0x1a, 0xff, 0xff, 0xff, 0x4a, 0x8b, 0x7c, 0xed,
0x00, 0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78, 0xe8,
0x48, 0xff, 0xc8, 0x48, 0x89, 0x07, 0x75, 0xe0,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0xd8,
0x48, 0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c, 0x89,
0xf2, 0x48, 0x83, 0xc4, 0x28, 0x5b, 0x41, 0x5c,
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d,
};
static const Hole _CALL_BUILTIN_CLASS_code_holes[9] = {
{0x14, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0xa4, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0xcc, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x105, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x117, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x137, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x156, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0x1b2, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
};
// 0:
// 0: OPARG
// 8: &_Py_Dealloc+0x0
// 10: &_Py_HandlePending+0x0
// 18: EXECUTOR
// 20: TARGET
static const unsigned char _CALL_BUILTIN_CLASS_data_body[41] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CALL_BUILTIN_CLASS_data_holes[6] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_HandlePending, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _CALL_BUILTIN_FAST
//
// /tmp/tmp2mfmnab2/_CALL_BUILTIN_FAST.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 48 83 ec 28 subq $0x28, %rsp
// e: 49 89 f7 movq %rsi, %r15
// 11: 48 89 fb movq %rdi, %rbx
// 14: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x1b <_JIT_ENTRY+0x1b>
// 0000000000000017: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 1b: 44 0f b7 c1 movzwl %cx, %r8d
// 1f: 44 89 c0 movl %r8d, %eax
// 22: f7 d0 notl %eax
// 24: 4c 63 c8 movslq %eax, %r9
// 27: 4a 8b 04 ce movq (%rsi,%r9,8), %rax
// 2b: be fe ff ff ff movl $0xfffffffe, %esi # imm = 0xFFFFFFFE
// 30: 44 29 c6 subl %r8d, %esi
// 33: 45 8d 68 01 leal 0x1(%r8), %r13d
// 37: 0f b7 c9 movzwl %cx, %ecx
// 3a: 48 89 cf movq %rcx, %rdi
// 3d: 48 f7 df negq %rdi
// 40: 48 85 c0 testq %rax, %rax
// 43: 45 0f 44 e8 cmovel %r8d, %r13d
// 47: 4c 63 d6 movslq %esi, %r10
// 4a: 48 f7 d1 notq %rcx
// 4d: 48 0f 44 cf cmoveq %rdi, %rcx
// 51: 4f 8b 24 d7 movq (%r15,%r10,8), %r12
// 55: 49 8b 74 24 08 movq 0x8(%r12), %rsi
// 5a: 48 3b 35 00 00 00 00 cmpq (%rip), %rsi # 0x61 <_JIT_ENTRY+0x61>
// 000000000000005d: R_X86_64_REX_GOTPCRELX PyCFunction_Type-0x4
// 61: 0f 85 d5 00 00 00 jne 0x13c <_JIT_ENTRY+0x13c>
// 67: 4d 8b 44 24 10 movq 0x10(%r12), %r8
// 6c: 41 81 78 10 80 00 00 00 cmpl $0x80, 0x10(%r8)
// 74: 0f 85 c2 00 00 00 jne 0x13c <_JIT_ENTRY+0x13c>
// 7a: 4c 89 54 24 18 movq %r10, 0x18(%rsp)
// 7f: 4c 89 4c 24 08 movq %r9, 0x8(%rsp)
// 84: 48 89 54 24 20 movq %rdx, 0x20(%rsp)
// 89: 49 8d 2c cf leaq (%r15,%rcx,8), %rbp
// 8d: 48 85 c0 testq %rax, %rax
// 90: 41 0f 94 c6 sete %r14b
// 94: 49 8b 7c 24 18 movq 0x18(%r12), %rdi
// 99: 44 89 ea movl %r13d, %edx
// 9c: 48 89 ee movq %rbp, %rsi
// 9f: 41 ff 50 08 callq *0x8(%r8)
// a3: 48 89 44 24 10 movq %rax, 0x10(%rsp)
// a8: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xaf <_JIT_ENTRY+0xaf>
// 00000000000000ab: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// af: 66 85 c0 testw %ax, %ax
// b2: 0f 94 c0 sete %al
// b5: 41 84 c6 testb %al, %r14b
// b8: 0f 84 bd 00 00 00 je 0x17b <_JIT_ENTRY+0x17b>
// be: 49 8b 04 24 movq (%r12), %rax
// c2: 85 c0 testl %eax, %eax
// c4: 4c 8b 74 24 18 movq 0x18(%rsp), %r14
// c9: 78 12 js 0xdd <_JIT_ENTRY+0xdd>
// cb: 48 ff c8 decq %rax
// ce: 49 89 04 24 movq %rax, (%r12)
// d2: 75 09 jne 0xdd <_JIT_ENTRY+0xdd>
// d4: 4c 89 e7 movq %r12, %rdi
// d7: ff 15 00 00 00 00 callq *(%rip) # 0xdd <_JIT_ENTRY+0xdd>
// 00000000000000d9: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// dd: 4b 8d 04 f7 leaq (%r15,%r14,8), %rax
// e1: 48 8b 54 24 10 movq 0x10(%rsp), %rdx
// e6: 48 85 d2 testq %rdx, %rdx
// e9: 4c 8b 74 24 20 movq 0x20(%rsp), %r14
// ee: 74 2c je 0x11c <_JIT_ENTRY+0x11c>
// f0: 48 8b 4c 24 08 movq 0x8(%rsp), %rcx
// f5: 4d 8d 3c cf leaq (%r15,%rcx,8), %r15
// f9: 48 89 10 movq %rdx, (%rax)
// fc: 49 8b 46 18 movq 0x18(%r14), %rax
// 100: 84 c0 testb %al, %al
// 102: 0f 84 b0 00 00 00 je 0x1b8 <_JIT_ENTRY+0x1b8>
// 108: 4c 89 f7 movq %r14, %rdi
// 10b: ff 15 00 00 00 00 callq *(%rip) # 0x111 <_JIT_ENTRY+0x111>
// 000000000000010d: R_X86_64_GOTPCRELX _Py_HandlePending-0x4
// 111: 85 c0 testl %eax, %eax
// 113: 0f 84 9f 00 00 00 je 0x1b8 <_JIT_ENTRY+0x1b8>
// 119: 4c 89 f8 movq %r15, %rax
// 11c: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x123 <_JIT_ENTRY+0x123>
// 000000000000011f: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 123: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14)
// 12a: 48 29 d8 subq %rbx, %rax
// 12d: 48 83 c0 b8 addq $-0x48, %rax
// 131: 48 c1 e8 03 shrq $0x3, %rax
// 135: 89 43 40 movl %eax, 0x40(%rbx)
// 138: 31 c0 xorl %eax, %eax
// 13a: eb 30 jmp 0x16c <_JIT_ENTRY+0x16c>
// 13c: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x143 <_JIT_ENTRY+0x143>
// 000000000000013f: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 143: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 14a: 49 29 df subq %rbx, %r15
// 14d: 49 83 c7 b8 addq $-0x48, %r15
// 151: 49 c1 ef 03 shrq $0x3, %r15
// 155: 44 89 7b 40 movl %r15d, 0x40(%rbx)
// 159: 48 8b 03 movq (%rbx), %rax
// 15c: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x162 <_JIT_ENTRY+0x162>
// 000000000000015e: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 162: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 166: 48 05 c8 00 00 00 addq $0xc8, %rax
// 16c: 48 83 c4 28 addq $0x28, %rsp
// 170: 5b popq %rbx
// 171: 41 5c popq %r12
// 173: 41 5d popq %r13
// 175: 41 5e popq %r14
// 177: 41 5f popq %r15
// 179: 5d popq %rbp
// 17a: c3 retq
// 17b: 41 83 fd 02 cmpl $0x2, %r13d
// 17f: 41 be 01 00 00 00 movl $0x1, %r14d
// 185: 45 0f 43 f5 cmovael %r13d, %r14d
// 189: 45 31 ed xorl %r13d, %r13d
// 18c: eb 0e jmp 0x19c <_JIT_ENTRY+0x19c>
// 18e: 66 90 nop
// 190: 49 ff c5 incq %r13
// 193: 4d 39 ee cmpq %r13, %r14
// 196: 0f 84 22 ff ff ff je 0xbe <_JIT_ENTRY+0xbe>
// 19c: 4a 8b 7c ed 00 movq (%rbp,%r13,8), %rdi
// 1a1: 48 8b 07 movq (%rdi), %rax
// 1a4: 85 c0 testl %eax, %eax
// 1a6: 78 e8 js 0x190 <_JIT_ENTRY+0x190>
// 1a8: 48 ff c8 decq %rax
// 1ab: 48 89 07 movq %rax, (%rdi)
// 1ae: 75 e0 jne 0x190 <_JIT_ENTRY+0x190>
// 1b0: ff 15 00 00 00 00 callq *(%rip) # 0x1b6 <_JIT_ENTRY+0x1b6>
// 00000000000001b2: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 1b6: eb d8 jmp 0x190 <_JIT_ENTRY+0x190>
// 1b8: 48 89 df movq %rbx, %rdi
// 1bb: 4c 89 fe movq %r15, %rsi
// 1be: 4c 89 f2 movq %r14, %rdx
// 1c1: 48 83 c4 28 addq $0x28, %rsp
// 1c5: 5b popq %rbx
// 1c6: 41 5c popq %r12
// 1c8: 41 5d popq %r13
// 1ca: 41 5e popq %r14
// 1cc: 41 5f popq %r15
// 1ce: 5d popq %rbp
// 1cf: ff 25 00 00 00 00 jmpq *(%rip) # 0x1d5 <_JIT_ENTRY+0x1d5>
// 00000000000001d1: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 1cf:
static const unsigned char _CALL_BUILTIN_FAST_code_body[464] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x48, 0x83, 0xec, 0x28, 0x49, 0x89,
0xf7, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x0d, 0x00,
0x00, 0x00, 0x00, 0x44, 0x0f, 0xb7, 0xc1, 0x44,
0x89, 0xc0, 0xf7, 0xd0, 0x4c, 0x63, 0xc8, 0x4a,
0x8b, 0x04, 0xce, 0xbe, 0xfe, 0xff, 0xff, 0xff,
0x44, 0x29, 0xc6, 0x45, 0x8d, 0x68, 0x01, 0x0f,
0xb7, 0xc9, 0x48, 0x89, 0xcf, 0x48, 0xf7, 0xdf,
0x48, 0x85, 0xc0, 0x45, 0x0f, 0x44, 0xe8, 0x4c,
0x63, 0xd6, 0x48, 0xf7, 0xd1, 0x48, 0x0f, 0x44,
0xcf, 0x4f, 0x8b, 0x24, 0xd7, 0x49, 0x8b, 0x74,
0x24, 0x08, 0x48, 0x3b, 0x35, 0x00, 0x00, 0x00,
0x00, 0x0f, 0x85, 0xd5, 0x00, 0x00, 0x00, 0x4d,
0x8b, 0x44, 0x24, 0x10, 0x41, 0x81, 0x78, 0x10,
0x80, 0x00, 0x00, 0x00, 0x0f, 0x85, 0xc2, 0x00,
0x00, 0x00, 0x4c, 0x89, 0x54, 0x24, 0x18, 0x4c,
0x89, 0x4c, 0x24, 0x08, 0x48, 0x89, 0x54, 0x24,
0x20, 0x49, 0x8d, 0x2c, 0xcf, 0x48, 0x85, 0xc0,
0x41, 0x0f, 0x94, 0xc6, 0x49, 0x8b, 0x7c, 0x24,
0x18, 0x44, 0x89, 0xea, 0x48, 0x89, 0xee, 0x41,
0xff, 0x50, 0x08, 0x48, 0x89, 0x44, 0x24, 0x10,
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x66,
0x85, 0xc0, 0x0f, 0x94, 0xc0, 0x41, 0x84, 0xc6,
0x0f, 0x84, 0xbd, 0x00, 0x00, 0x00, 0x49, 0x8b,
0x04, 0x24, 0x85, 0xc0, 0x4c, 0x8b, 0x74, 0x24,
0x18, 0x78, 0x12, 0x48, 0xff, 0xc8, 0x49, 0x89,
0x04, 0x24, 0x75, 0x09, 0x4c, 0x89, 0xe7, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0x4b, 0x8d, 0x04,
0xf7, 0x48, 0x8b, 0x54, 0x24, 0x10, 0x48, 0x85,
0xd2, 0x4c, 0x8b, 0x74, 0x24, 0x20, 0x74, 0x2c,
0x48, 0x8b, 0x4c, 0x24, 0x08, 0x4d, 0x8d, 0x3c,
0xcf, 0x48, 0x89, 0x10, 0x49, 0x8b, 0x46, 0x18,
0x84, 0xc0, 0x0f, 0x84, 0xb0, 0x00, 0x00, 0x00,
0x4c, 0x89, 0xf7, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0x85, 0xc0, 0x0f, 0x84, 0x9f, 0x00, 0x00,
0x00, 0x4c, 0x89, 0xf8, 0x48, 0x8b, 0x0d, 0x00,
0x00, 0x00, 0x00, 0x49, 0x89, 0x8e, 0x28, 0x01,
0x00, 0x00, 0x48, 0x29, 0xd8, 0x48, 0x83, 0xc0,
0xb8, 0x48, 0xc1, 0xe8, 0x03, 0x89, 0x43, 0x40,
0x31, 0xc0, 0xeb, 0x30, 0x48, 0x8b, 0x05, 0x00,
0x00, 0x00, 0x00, 0x48, 0x89, 0x82, 0x28, 0x01,
0x00, 0x00, 0x49, 0x29, 0xdf, 0x49, 0x83, 0xc7,
0xb8, 0x49, 0xc1, 0xef, 0x03, 0x44, 0x89, 0x7b,
0x40, 0x48, 0x8b, 0x03, 0x8b, 0x0d, 0x00, 0x00,
0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05,
0xc8, 0x00, 0x00, 0x00, 0x48, 0x83, 0xc4, 0x28,
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41,
0x5f, 0x5d, 0xc3, 0x41, 0x83, 0xfd, 0x02, 0x41,
0xbe, 0x01, 0x00, 0x00, 0x00, 0x45, 0x0f, 0x43,
0xf5, 0x45, 0x31, 0xed, 0xeb, 0x0e, 0x66, 0x90,
0x49, 0xff, 0xc5, 0x4d, 0x39, 0xee, 0x0f, 0x84,
0x22, 0xff, 0xff, 0xff, 0x4a, 0x8b, 0x7c, 0xed,
0x00, 0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78, 0xe8,
0x48, 0xff, 0xc8, 0x48, 0x89, 0x07, 0x75, 0xe0,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0xd8,
0x48, 0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c, 0x89,
0xf2, 0x48, 0x83, 0xc4, 0x28, 0x5b, 0x41, 0x5c,
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d,
};
static const Hole _CALL_BUILTIN_FAST_code_holes[10] = {
{0x17, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x5d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0xab, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0xd9, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x10d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x11f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0x13f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0x15e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0x1b2, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
};
// 0:
// 0: OPARG
// 8: &PyCFunction_Type+0x0
// 10: &_Py_Dealloc+0x0
// 18: &_Py_HandlePending+0x0
// 20: EXECUTOR
// 28: TARGET
static const unsigned char _CALL_BUILTIN_FAST_data_body[49] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CALL_BUILTIN_FAST_data_holes[7] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyCFunction_Type, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_HandlePending, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _CALL_BUILTIN_FAST_WITH_KEYWORDS
//
// /tmp/tmp2mfmnab2/_CALL_BUILTIN_FAST_WITH_KEYWORDS.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 48 83 ec 28 subq $0x28, %rsp
// e: 49 89 f7 movq %rsi, %r15
// 11: 48 89 fb movq %rdi, %rbx
// 14: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x1b <_JIT_ENTRY+0x1b>
// 0000000000000017: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 1b: 44 0f b7 c1 movzwl %cx, %r8d
// 1f: 44 89 c0 movl %r8d, %eax
// 22: f7 d0 notl %eax
// 24: 4c 63 c8 movslq %eax, %r9
// 27: 4a 8b 04 ce movq (%rsi,%r9,8), %rax
// 2b: be fe ff ff ff movl $0xfffffffe, %esi # imm = 0xFFFFFFFE
// 30: 44 29 c6 subl %r8d, %esi
// 33: 45 8d 68 01 leal 0x1(%r8), %r13d
// 37: 0f b7 c9 movzwl %cx, %ecx
// 3a: 48 89 cf movq %rcx, %rdi
// 3d: 48 f7 df negq %rdi
// 40: 48 85 c0 testq %rax, %rax
// 43: 45 0f 44 e8 cmovel %r8d, %r13d
// 47: 4c 63 d6 movslq %esi, %r10
// 4a: 48 f7 d1 notq %rcx
// 4d: 48 0f 44 cf cmoveq %rdi, %rcx
// 51: 4f 8b 24 d7 movq (%r15,%r10,8), %r12
// 55: 49 8b 74 24 08 movq 0x8(%r12), %rsi
// 5a: 48 3b 35 00 00 00 00 cmpq (%rip), %rsi # 0x61 <_JIT_ENTRY+0x61>
// 000000000000005d: R_X86_64_REX_GOTPCRELX PyCFunction_Type-0x4
// 61: 0f 85 d7 00 00 00 jne 0x13e <_JIT_ENTRY+0x13e>
// 67: 4d 8b 44 24 10 movq 0x10(%r12), %r8
// 6c: 41 81 78 10 82 00 00 00 cmpl $0x82, 0x10(%r8)
// 74: 0f 85 c4 00 00 00 jne 0x13e <_JIT_ENTRY+0x13e>
// 7a: 4c 89 54 24 18 movq %r10, 0x18(%rsp)
// 7f: 4c 89 4c 24 08 movq %r9, 0x8(%rsp)
// 84: 48 89 54 24 20 movq %rdx, 0x20(%rsp)
// 89: 49 8d 2c cf leaq (%r15,%rcx,8), %rbp
// 8d: 48 85 c0 testq %rax, %rax
// 90: 41 0f 94 c6 sete %r14b
// 94: 49 8b 7c 24 18 movq 0x18(%r12), %rdi
// 99: 44 89 ea movl %r13d, %edx
// 9c: 48 89 ee movq %rbp, %rsi
// 9f: 31 c9 xorl %ecx, %ecx
// a1: 41 ff 50 08 callq *0x8(%r8)
// a5: 48 89 44 24 10 movq %rax, 0x10(%rsp)
// aa: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xb1 <_JIT_ENTRY+0xb1>
// 00000000000000ad: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// b1: 66 85 c0 testw %ax, %ax
// b4: 0f 94 c0 sete %al
// b7: 41 84 c6 testb %al, %r14b
// ba: 0f 84 bd 00 00 00 je 0x17d <_JIT_ENTRY+0x17d>
// c0: 49 8b 04 24 movq (%r12), %rax
// c4: 85 c0 testl %eax, %eax
// c6: 4c 8b 74 24 18 movq 0x18(%rsp), %r14
// cb: 78 12 js 0xdf <_JIT_ENTRY+0xdf>
// cd: 48 ff c8 decq %rax
// d0: 49 89 04 24 movq %rax, (%r12)
// d4: 75 09 jne 0xdf <_JIT_ENTRY+0xdf>
// d6: 4c 89 e7 movq %r12, %rdi
// d9: ff 15 00 00 00 00 callq *(%rip) # 0xdf <_JIT_ENTRY+0xdf>
// 00000000000000db: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// df: 4b 8d 04 f7 leaq (%r15,%r14,8), %rax
// e3: 48 8b 54 24 10 movq 0x10(%rsp), %rdx
// e8: 48 85 d2 testq %rdx, %rdx
// eb: 4c 8b 74 24 20 movq 0x20(%rsp), %r14
// f0: 74 2c je 0x11e <_JIT_ENTRY+0x11e>
// f2: 48 8b 4c 24 08 movq 0x8(%rsp), %rcx
// f7: 4d 8d 3c cf leaq (%r15,%rcx,8), %r15
// fb: 48 89 10 movq %rdx, (%rax)
// fe: 49 8b 46 18 movq 0x18(%r14), %rax
// 102: 84 c0 testb %al, %al
// 104: 0f 84 ae 00 00 00 je 0x1b8 <_JIT_ENTRY+0x1b8>
// 10a: 4c 89 f7 movq %r14, %rdi
// 10d: ff 15 00 00 00 00 callq *(%rip) # 0x113 <_JIT_ENTRY+0x113>
// 000000000000010f: R_X86_64_GOTPCRELX _Py_HandlePending-0x4
// 113: 85 c0 testl %eax, %eax
// 115: 0f 84 9d 00 00 00 je 0x1b8 <_JIT_ENTRY+0x1b8>
// 11b: 4c 89 f8 movq %r15, %rax
// 11e: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x125 <_JIT_ENTRY+0x125>
// 0000000000000121: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 125: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14)
// 12c: 48 29 d8 subq %rbx, %rax
// 12f: 48 83 c0 b8 addq $-0x48, %rax
// 133: 48 c1 e8 03 shrq $0x3, %rax
// 137: 89 43 40 movl %eax, 0x40(%rbx)
// 13a: 31 c0 xorl %eax, %eax
// 13c: eb 30 jmp 0x16e <_JIT_ENTRY+0x16e>
// 13e: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x145 <_JIT_ENTRY+0x145>
// 0000000000000141: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 145: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 14c: 49 29 df subq %rbx, %r15
// 14f: 49 83 c7 b8 addq $-0x48, %r15
// 153: 49 c1 ef 03 shrq $0x3, %r15
// 157: 44 89 7b 40 movl %r15d, 0x40(%rbx)
// 15b: 48 8b 03 movq (%rbx), %rax
// 15e: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x164 <_JIT_ENTRY+0x164>
// 0000000000000160: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 164: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 168: 48 05 c8 00 00 00 addq $0xc8, %rax
// 16e: 48 83 c4 28 addq $0x28, %rsp
// 172: 5b popq %rbx
// 173: 41 5c popq %r12
// 175: 41 5d popq %r13
// 177: 41 5e popq %r14
// 179: 41 5f popq %r15
// 17b: 5d popq %rbp
// 17c: c3 retq
// 17d: 41 83 fd 02 cmpl $0x2, %r13d
// 181: 41 be 01 00 00 00 movl $0x1, %r14d
// 187: 45 0f 43 f5 cmovael %r13d, %r14d
// 18b: 45 31 ed xorl %r13d, %r13d
// 18e: eb 0c jmp 0x19c <_JIT_ENTRY+0x19c>
// 190: 49 ff c5 incq %r13
// 193: 4d 39 ee cmpq %r13, %r14
// 196: 0f 84 24 ff ff ff je 0xc0 <_JIT_ENTRY+0xc0>
// 19c: 4a 8b 7c ed 00 movq (%rbp,%r13,8), %rdi
// 1a1: 48 8b 07 movq (%rdi), %rax
// 1a4: 85 c0 testl %eax, %eax
// 1a6: 78 e8 js 0x190 <_JIT_ENTRY+0x190>
// 1a8: 48 ff c8 decq %rax
// 1ab: 48 89 07 movq %rax, (%rdi)
// 1ae: 75 e0 jne 0x190 <_JIT_ENTRY+0x190>
// 1b0: ff 15 00 00 00 00 callq *(%rip) # 0x1b6 <_JIT_ENTRY+0x1b6>
// 00000000000001b2: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 1b6: eb d8 jmp 0x190 <_JIT_ENTRY+0x190>
// 1b8: 48 89 df movq %rbx, %rdi
// 1bb: 4c 89 fe movq %r15, %rsi
// 1be: 4c 89 f2 movq %r14, %rdx
// 1c1: 48 83 c4 28 addq $0x28, %rsp
// 1c5: 5b popq %rbx
// 1c6: 41 5c popq %r12
// 1c8: 41 5d popq %r13
// 1ca: 41 5e popq %r14
// 1cc: 41 5f popq %r15
// 1ce: 5d popq %rbp
// 1cf: ff 25 00 00 00 00 jmpq *(%rip) # 0x1d5 <_JIT_ENTRY+0x1d5>
// 00000000000001d1: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 1cf:
static const unsigned char _CALL_BUILTIN_FAST_WITH_KEYWORDS_code_body[464] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x48, 0x83, 0xec, 0x28, 0x49, 0x89,
0xf7, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x0d, 0x00,
0x00, 0x00, 0x00, 0x44, 0x0f, 0xb7, 0xc1, 0x44,
0x89, 0xc0, 0xf7, 0xd0, 0x4c, 0x63, 0xc8, 0x4a,
0x8b, 0x04, 0xce, 0xbe, 0xfe, 0xff, 0xff, 0xff,
0x44, 0x29, 0xc6, 0x45, 0x8d, 0x68, 0x01, 0x0f,
0xb7, 0xc9, 0x48, 0x89, 0xcf, 0x48, 0xf7, 0xdf,
0x48, 0x85, 0xc0, 0x45, 0x0f, 0x44, 0xe8, 0x4c,
0x63, 0xd6, 0x48, 0xf7, 0xd1, 0x48, 0x0f, 0x44,
0xcf, 0x4f, 0x8b, 0x24, 0xd7, 0x49, 0x8b, 0x74,
0x24, 0x08, 0x48, 0x3b, 0x35, 0x00, 0x00, 0x00,
0x00, 0x0f, 0x85, 0xd7, 0x00, 0x00, 0x00, 0x4d,
0x8b, 0x44, 0x24, 0x10, 0x41, 0x81, 0x78, 0x10,
0x82, 0x00, 0x00, 0x00, 0x0f, 0x85, 0xc4, 0x00,
0x00, 0x00, 0x4c, 0x89, 0x54, 0x24, 0x18, 0x4c,
0x89, 0x4c, 0x24, 0x08, 0x48, 0x89, 0x54, 0x24,
0x20, 0x49, 0x8d, 0x2c, 0xcf, 0x48, 0x85, 0xc0,
0x41, 0x0f, 0x94, 0xc6, 0x49, 0x8b, 0x7c, 0x24,
0x18, 0x44, 0x89, 0xea, 0x48, 0x89, 0xee, 0x31,
0xc9, 0x41, 0xff, 0x50, 0x08, 0x48, 0x89, 0x44,
0x24, 0x10, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x66, 0x85, 0xc0, 0x0f, 0x94, 0xc0, 0x41,
0x84, 0xc6, 0x0f, 0x84, 0xbd, 0x00, 0x00, 0x00,
0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x4c, 0x8b,
0x74, 0x24, 0x18, 0x78, 0x12, 0x48, 0xff, 0xc8,
0x49, 0x89, 0x04, 0x24, 0x75, 0x09, 0x4c, 0x89,
0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x4b,
0x8d, 0x04, 0xf7, 0x48, 0x8b, 0x54, 0x24, 0x10,
0x48, 0x85, 0xd2, 0x4c, 0x8b, 0x74, 0x24, 0x20,
0x74, 0x2c, 0x48, 0x8b, 0x4c, 0x24, 0x08, 0x4d,
0x8d, 0x3c, 0xcf, 0x48, 0x89, 0x10, 0x49, 0x8b,
0x46, 0x18, 0x84, 0xc0, 0x0f, 0x84, 0xae, 0x00,
0x00, 0x00, 0x4c, 0x89, 0xf7, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x85, 0xc0, 0x0f, 0x84, 0x9d,
0x00, 0x00, 0x00, 0x4c, 0x89, 0xf8, 0x48, 0x8b,
0x0d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x8e,
0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xd8, 0x48,
0x83, 0xc0, 0xb8, 0x48, 0xc1, 0xe8, 0x03, 0x89,
0x43, 0x40, 0x31, 0xc0, 0xeb, 0x30, 0x48, 0x8b,
0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x89, 0x82,
0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xdf, 0x49,
0x83, 0xc7, 0xb8, 0x49, 0xc1, 0xef, 0x03, 0x44,
0x89, 0x7b, 0x40, 0x48, 0x8b, 0x03, 0x8b, 0x0d,
0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48,
0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0x48, 0x83,
0xc4, 0x28, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41,
0x5e, 0x41, 0x5f, 0x5d, 0xc3, 0x41, 0x83, 0xfd,
0x02, 0x41, 0xbe, 0x01, 0x00, 0x00, 0x00, 0x45,
0x0f, 0x43, 0xf5, 0x45, 0x31, 0xed, 0xeb, 0x0c,
0x49, 0xff, 0xc5, 0x4d, 0x39, 0xee, 0x0f, 0x84,
0x24, 0xff, 0xff, 0xff, 0x4a, 0x8b, 0x7c, 0xed,
0x00, 0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78, 0xe8,
0x48, 0xff, 0xc8, 0x48, 0x89, 0x07, 0x75, 0xe0,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0xd8,
0x48, 0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c, 0x89,
0xf2, 0x48, 0x83, 0xc4, 0x28, 0x5b, 0x41, 0x5c,
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d,
};
static const Hole _CALL_BUILTIN_FAST_WITH_KEYWORDS_code_holes[10] = {
{0x17, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x5d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0xad, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0xdb, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x10f, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x121, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0x141, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0x160, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0x1b2, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
};
// 0:
// 0: OPARG
// 8: &PyCFunction_Type+0x0
// 10: &_Py_Dealloc+0x0
// 18: &_Py_HandlePending+0x0
// 20: EXECUTOR
// 28: TARGET
static const unsigned char _CALL_BUILTIN_FAST_WITH_KEYWORDS_data_body[49] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CALL_BUILTIN_FAST_WITH_KEYWORDS_data_holes[7] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyCFunction_Type, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_HandlePending, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _CALL_BUILTIN_O
//
// /tmp/tmp2mfmnab2/_CALL_BUILTIN_O.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 48 83 ec 18 subq $0x18, %rsp
// e: 49 89 d7 movq %rdx, %r15
// 11: 49 89 f6 movq %rsi, %r14
// 14: 48 89 fb movq %rdi, %rbx
// 17: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x1e <_JIT_ENTRY+0x1e>
// 000000000000001a: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 1e: 0f b7 c1 movzwl %cx, %eax
// 21: 89 c2 movl %eax, %edx
// 23: f7 d2 notl %edx
// 25: 4c 63 ea movslq %edx, %r13
// 28: 31 d2 xorl %edx, %edx
// 2a: 66 85 c9 testw %cx, %cx
// 2d: 0f 94 c2 sete %dl
// 30: 31 f6 xorl %esi, %esi
// 32: 66 83 f9 01 cmpw $0x1, %cx
// 36: 40 0f 94 c6 sete %sil
// 3a: 0f b7 e9 movzwl %cx, %ebp
// 3d: 48 89 e9 movq %rbp, %rcx
// 40: 48 f7 d9 negq %rcx
// 43: 4b 83 3c ee 00 cmpq $0x0, (%r14,%r13,8)
// 48: 0f 44 d6 cmovel %esi, %edx
// 4b: 48 f7 d5 notq %rbp
// 4e: 48 0f 44 e9 cmoveq %rcx, %rbp
// 52: 80 fa 01 cmpb $0x1, %dl
// 55: 75 50 jne 0xa7 <_JIT_ENTRY+0xa7>
// 57: b9 fe ff ff ff movl $0xfffffffe, %ecx # imm = 0xFFFFFFFE
// 5c: 29 c1 subl %eax, %ecx
// 5e: 48 63 c9 movslq %ecx, %rcx
// 61: 4d 8b 24 ce movq (%r14,%rcx,8), %r12
// 65: 49 8b 44 24 08 movq 0x8(%r12), %rax
// 6a: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x71 <_JIT_ENTRY+0x71>
// 000000000000006d: R_X86_64_REX_GOTPCRELX PyCFunction_Type-0x4
// 71: 75 34 jne 0xa7 <_JIT_ENTRY+0xa7>
// 73: 49 8b 44 24 10 movq 0x10(%r12), %rax
// 78: 83 78 10 08 cmpl $0x8, 0x10(%rax)
// 7c: 75 29 jne 0xa7 <_JIT_ENTRY+0xa7>
// 7e: 48 89 4c 24 10 movq %rcx, 0x10(%rsp)
// 83: 4c 8b 40 08 movq 0x8(%rax), %r8
// 87: 41 8b 4f 34 movl 0x34(%r15), %ecx
// 8b: 8d 51 ff leal -0x1(%rcx), %edx
// 8e: 41 89 57 34 movl %edx, 0x34(%r15)
// 92: 85 c9 testl %ecx, %ecx
// 94: 7e 50 jle 0xe6 <_JIT_ENTRY+0xe6>
// 96: 49 8b 2c ee movq (%r14,%rbp,8), %rbp
// 9a: f6 40 10 20 testb $0x20, 0x10(%rax)
// 9e: 75 77 jne 0x117 <_JIT_ENTRY+0x117>
// a0: 49 8b 7c 24 18 movq 0x18(%r12), %rdi
// a5: eb 72 jmp 0x119 <_JIT_ENTRY+0x119>
// a7: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xae <_JIT_ENTRY+0xae>
// 00000000000000aa: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// ae: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// b5: 49 29 de subq %rbx, %r14
// b8: 49 83 c6 b8 addq $-0x48, %r14
// bc: 49 c1 ee 03 shrq $0x3, %r14
// c0: 44 89 73 40 movl %r14d, 0x40(%rbx)
// c4: 48 8b 03 movq (%rbx), %rax
// c7: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0xcd <_JIT_ENTRY+0xcd>
// 00000000000000c9: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// cd: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// d1: 48 05 c8 00 00 00 addq $0xc8, %rax
// d7: 48 83 c4 18 addq $0x18, %rsp
// db: 5b popq %rbx
// dc: 41 5c popq %r12
// de: 41 5d popq %r13
// e0: 41 5e popq %r14
// e2: 41 5f popq %r15
// e4: 5d popq %rbp
// e5: c3 retq
// e6: 4c 89 44 24 08 movq %r8, 0x8(%rsp)
// eb: 48 8d 35 00 00 00 00 leaq (%rip), %rsi # 0xf2 <_JIT_ENTRY+0xf2>
// 00000000000000ee: R_X86_64_PC32 .L.str.20-0x4
// f2: 4c 89 ff movq %r15, %rdi
// f5: ff 15 00 00 00 00 callq *(%rip) # 0xfb <_JIT_ENTRY+0xfb>
// 00000000000000f7: R_X86_64_GOTPCRELX _Py_CheckRecursiveCall-0x4
// fb: 85 c0 testl %eax, %eax
// fd: 0f 85 9f 00 00 00 jne 0x1a2 <_JIT_ENTRY+0x1a2>
// 103: 49 8b 44 24 10 movq 0x10(%r12), %rax
// 108: 4c 8b 44 24 08 movq 0x8(%rsp), %r8
// 10d: 49 8b 2c ee movq (%r14,%rbp,8), %rbp
// 111: f6 40 10 20 testb $0x20, 0x10(%rax)
// 115: 74 89 je 0xa0 <_JIT_ENTRY+0xa0>
// 117: 31 ff xorl %edi, %edi
// 119: 48 89 ee movq %rbp, %rsi
// 11c: 41 ff d0 callq *%r8
// 11f: 48 89 ef movq %rbp, %rdi
// 122: 41 ff 47 34 incl 0x34(%r15)
// 126: 48 89 c5 movq %rax, %rbp
// 129: 48 8b 07 movq (%rdi), %rax
// 12c: 85 c0 testl %eax, %eax
// 12e: 78 0e js 0x13e <_JIT_ENTRY+0x13e>
// 130: 48 ff c8 decq %rax
// 133: 48 89 07 movq %rax, (%rdi)
// 136: 75 06 jne 0x13e <_JIT_ENTRY+0x13e>
// 138: ff 15 00 00 00 00 callq *(%rip) # 0x13e <_JIT_ENTRY+0x13e>
// 000000000000013a: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 13e: 49 8b 04 24 movq (%r12), %rax
// 142: 85 c0 testl %eax, %eax
// 144: 78 12 js 0x158 <_JIT_ENTRY+0x158>
// 146: 48 ff c8 decq %rax
// 149: 49 89 04 24 movq %rax, (%r12)
// 14d: 75 09 jne 0x158 <_JIT_ENTRY+0x158>
// 14f: 4c 89 e7 movq %r12, %rdi
// 152: ff 15 00 00 00 00 callq *(%rip) # 0x158 <_JIT_ENTRY+0x158>
// 0000000000000154: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 158: 48 8b 44 24 10 movq 0x10(%rsp), %rax
// 15d: 49 8d 04 c6 leaq (%r14,%rax,8), %rax
// 161: 48 85 ed testq %rbp, %rbp
// 164: 74 39 je 0x19f <_JIT_ENTRY+0x19f>
// 166: 4f 8d 34 ee leaq (%r14,%r13,8), %r14
// 16a: 48 89 28 movq %rbp, (%rax)
// 16d: 49 8b 47 18 movq 0x18(%r15), %rax
// 171: 84 c0 testb %al, %al
// 173: 74 0d je 0x182 <_JIT_ENTRY+0x182>
// 175: 4c 89 ff movq %r15, %rdi
// 178: ff 15 00 00 00 00 callq *(%rip) # 0x17e <_JIT_ENTRY+0x17e>
// 000000000000017a: R_X86_64_GOTPCRELX _Py_HandlePending-0x4
// 17e: 85 c0 testl %eax, %eax
// 180: 75 20 jne 0x1a2 <_JIT_ENTRY+0x1a2>
// 182: 48 89 df movq %rbx, %rdi
// 185: 4c 89 f6 movq %r14, %rsi
// 188: 4c 89 fa movq %r15, %rdx
// 18b: 48 83 c4 18 addq $0x18, %rsp
// 18f: 5b popq %rbx
// 190: 41 5c popq %r12
// 192: 41 5d popq %r13
// 194: 41 5e popq %r14
// 196: 41 5f popq %r15
// 198: 5d popq %rbp
// 199: ff 25 00 00 00 00 jmpq *(%rip) # 0x19f <_JIT_ENTRY+0x19f>
// 000000000000019b: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 19f: 49 89 c6 movq %rax, %r14
// 1a2: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x1a9 <_JIT_ENTRY+0x1a9>
// 00000000000001a5: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 1a9: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 1b0: 49 29 de subq %rbx, %r14
// 1b3: 49 83 c6 b8 addq $-0x48, %r14
// 1b7: 49 c1 ee 03 shrq $0x3, %r14
// 1bb: 44 89 73 40 movl %r14d, 0x40(%rbx)
// 1bf: 31 c0 xorl %eax, %eax
// 1c1: e9 11 ff ff ff jmp 0xd7 <_JIT_ENTRY+0xd7>
// 1c6:
static const unsigned char _CALL_BUILTIN_O_code_body[455] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x48, 0x83, 0xec, 0x18, 0x49, 0x89,
0xd7, 0x49, 0x89, 0xf6, 0x48, 0x89, 0xfb, 0x48,
0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xb7,
0xc1, 0x89, 0xc2, 0xf7, 0xd2, 0x4c, 0x63, 0xea,
0x31, 0xd2, 0x66, 0x85, 0xc9, 0x0f, 0x94, 0xc2,
0x31, 0xf6, 0x66, 0x83, 0xf9, 0x01, 0x40, 0x0f,
0x94, 0xc6, 0x0f, 0xb7, 0xe9, 0x48, 0x89, 0xe9,
0x48, 0xf7, 0xd9, 0x4b, 0x83, 0x3c, 0xee, 0x00,
0x0f, 0x44, 0xd6, 0x48, 0xf7, 0xd5, 0x48, 0x0f,
0x44, 0xe9, 0x80, 0xfa, 0x01, 0x75, 0x50, 0xb9,
0xfe, 0xff, 0xff, 0xff, 0x29, 0xc1, 0x48, 0x63,
0xc9, 0x4d, 0x8b, 0x24, 0xce, 0x49, 0x8b, 0x44,
0x24, 0x08, 0x48, 0x3b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x75, 0x34, 0x49, 0x8b, 0x44, 0x24, 0x10,
0x83, 0x78, 0x10, 0x08, 0x75, 0x29, 0x48, 0x89,
0x4c, 0x24, 0x10, 0x4c, 0x8b, 0x40, 0x08, 0x41,
0x8b, 0x4f, 0x34, 0x8d, 0x51, 0xff, 0x41, 0x89,
0x57, 0x34, 0x85, 0xc9, 0x7e, 0x50, 0x49, 0x8b,
0x2c, 0xee, 0xf6, 0x40, 0x10, 0x20, 0x75, 0x77,
0x49, 0x8b, 0x7c, 0x24, 0x18, 0xeb, 0x72, 0x48,
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89,
0x87, 0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xde,
0x49, 0x83, 0xc6, 0xb8, 0x49, 0xc1, 0xee, 0x03,
0x44, 0x89, 0x73, 0x40, 0x48, 0x8b, 0x03, 0x8b,
0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04,
0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0x48,
0x83, 0xc4, 0x18, 0x5b, 0x41, 0x5c, 0x41, 0x5d,
0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xc3, 0x4c, 0x89,
0x44, 0x24, 0x08, 0x48, 0x8d, 0x35, 0x00, 0x00,
0x00, 0x00, 0x4c, 0x89, 0xff, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x85, 0xc0, 0x0f, 0x85, 0x9f,
0x00, 0x00, 0x00, 0x49, 0x8b, 0x44, 0x24, 0x10,
0x4c, 0x8b, 0x44, 0x24, 0x08, 0x49, 0x8b, 0x2c,
0xee, 0xf6, 0x40, 0x10, 0x20, 0x74, 0x89, 0x31,
0xff, 0x48, 0x89, 0xee, 0x41, 0xff, 0xd0, 0x48,
0x89, 0xef, 0x41, 0xff, 0x47, 0x34, 0x48, 0x89,
0xc5, 0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78, 0x0e,
0x48, 0xff, 0xc8, 0x48, 0x89, 0x07, 0x75, 0x06,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x49, 0x8b,
0x04, 0x24, 0x85, 0xc0, 0x78, 0x12, 0x48, 0xff,
0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x09, 0x4c,
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x48, 0x8b, 0x44, 0x24, 0x10, 0x49, 0x8d, 0x04,
0xc6, 0x48, 0x85, 0xed, 0x74, 0x39, 0x4f, 0x8d,
0x34, 0xee, 0x48, 0x89, 0x28, 0x49, 0x8b, 0x47,
0x18, 0x84, 0xc0, 0x74, 0x0d, 0x4c, 0x89, 0xff,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x85, 0xc0,
0x75, 0x20, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xf6,
0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4, 0x18, 0x5b,
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f,
0x5d, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x49,
0x89, 0xc6, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00, 0x00,
0x49, 0x29, 0xde, 0x49, 0x83, 0xc6, 0xb8, 0x49,
0xc1, 0xee, 0x03, 0x44, 0x89, 0x73, 0x40, 0x31,
0xc0, 0xe9, 0x11, 0xff, 0xff, 0xff,
};
static const Hole _CALL_BUILTIN_O_code_holes[12] = {
{0x1a, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0x6d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0xaa, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
{0xc9, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x34},
{0xee, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4},
{0xf7, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c},
{0x13a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x44},
{0x154, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x44},
{0x17a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4c},
{0x19b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x54},
{0x1a5, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
};
// 0: ' while calling a Python object\x00'
// 1f: 00
// 20: OPARG
// 28: &PyCFunction_Type+0x0
// 30: EXECUTOR
// 38: TARGET
// 40: &_Py_CheckRecursiveCall+0x0
// 48: &_Py_Dealloc+0x0
// 50: &_Py_HandlePending+0x0
// 58: CONTINUE
static const unsigned char _CALL_BUILTIN_O_data_body[97] = {
0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x63,
0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x61,
0x20, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x20,
0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CALL_BUILTIN_O_data_holes[9] = {
{0x20, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyCFunction_Type, 0x0},
{0x30, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x38, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x40, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_CheckRecursiveCall, 0x0},
{0x48, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x50, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_HandlePending, 0x0},
{0x58, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
};
// _CALL_INTRINSIC_1
//
// /tmp/tmp2mfmnab2/_CALL_INTRINSIC_1.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 55 pushq %r13
// 6: 41 54 pushq %r12
// 8: 53 pushq %rbx
// 9: 49 89 d7 movq %rdx, %r15
// c: 48 89 f3 movq %rsi, %rbx
// f: 49 89 fe movq %rdi, %r14
// 12: 4c 8b 66 f8 movq -0x8(%rsi), %r12
// 16: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x1d <_JIT_ENTRY+0x1d>
// 0000000000000019: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 1d: 48 c1 e0 04 shlq $0x4, %rax
// 21: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x28 <_JIT_ENTRY+0x28>
// 0000000000000024: R_X86_64_REX_GOTPCRELX _PyIntrinsics_UnaryFunctions-0x4
// 28: 48 89 d7 movq %rdx, %rdi
// 2b: 4c 89 e6 movq %r12, %rsi
// 2e: ff 14 01 callq *(%rcx,%rax)
// 31: 49 89 c5 movq %rax, %r13
// 34: 49 8b 04 24 movq (%r12), %rax
// 38: 85 c0 testl %eax, %eax
// 3a: 78 09 js 0x45 <_JIT_ENTRY+0x45>
// 3c: 48 ff c8 decq %rax
// 3f: 49 89 04 24 movq %rax, (%r12)
// 43: 74 21 je 0x66 <_JIT_ENTRY+0x66>
// 45: 4d 85 ed testq %r13, %r13
// 48: 74 2a je 0x74 <_JIT_ENTRY+0x74>
// 4a: 4c 89 6b f8 movq %r13, -0x8(%rbx)
// 4e: 4c 89 f7 movq %r14, %rdi
// 51: 48 89 de movq %rbx, %rsi
// 54: 4c 89 fa movq %r15, %rdx
// 57: 5b popq %rbx
// 58: 41 5c popq %r12
// 5a: 41 5d popq %r13
// 5c: 41 5e popq %r14
// 5e: 41 5f popq %r15
// 60: ff 25 00 00 00 00 jmpq *(%rip) # 0x66 <_JIT_ENTRY+0x66>
// 0000000000000062: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 66: 4c 89 e7 movq %r12, %rdi
// 69: ff 15 00 00 00 00 callq *(%rip) # 0x6f <_JIT_ENTRY+0x6f>
// 000000000000006b: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 6f: 4d 85 ed testq %r13, %r13
// 72: 75 d6 jne 0x4a <_JIT_ENTRY+0x4a>
// 74: 48 83 c3 f8 addq $-0x8, %rbx
// 78: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x7f <_JIT_ENTRY+0x7f>
// 000000000000007b: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 7f: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 86: 4c 29 f3 subq %r14, %rbx
// 89: 48 83 c3 b8 addq $-0x48, %rbx
// 8d: 48 c1 eb 03 shrq $0x3, %rbx
// 91: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 95: 31 c0 xorl %eax, %eax
// 97: 5b popq %rbx
// 98: 41 5c popq %r12
// 9a: 41 5d popq %r13
// 9c: 41 5e popq %r14
// 9e: 41 5f popq %r15
// a0: c3 retq
// a1:
static const unsigned char _CALL_INTRINSIC_1_code_body[162] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54,
0x53, 0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49,
0x89, 0xfe, 0x4c, 0x8b, 0x66, 0xf8, 0x0f, 0xb7,
0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0xc1, 0xe0,
0x04, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00,
0x48, 0x89, 0xd7, 0x4c, 0x89, 0xe6, 0xff, 0x14,
0x01, 0x49, 0x89, 0xc5, 0x49, 0x8b, 0x04, 0x24,
0x85, 0xc0, 0x78, 0x09, 0x48, 0xff, 0xc8, 0x49,
0x89, 0x04, 0x24, 0x74, 0x21, 0x4d, 0x85, 0xed,
0x74, 0x2a, 0x4c, 0x89, 0x6b, 0xf8, 0x4c, 0x89,
0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, 0x5b,
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f,
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89,
0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x4d,
0x85, 0xed, 0x75, 0xd6, 0x48, 0x83, 0xc3, 0xf8,
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49,
0x89, 0x87, 0x28, 0x01, 0x00, 0x00, 0x4c, 0x29,
0xf3, 0x48, 0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb,
0x03, 0x41, 0x89, 0x5e, 0x40, 0x31, 0xc0, 0x5b,
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f,
0xc3,
};
static const Hole _CALL_INTRINSIC_1_code_holes[6] = {
{0x19, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x24, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x62, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x6b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x7b, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
};
// 0:
// 0: OPARG
// 8: &_PyIntrinsics_UnaryFunctions+0x0
// 10: CONTINUE
// 18: &_Py_Dealloc+0x0
// 20: EXECUTOR
static const unsigned char _CALL_INTRINSIC_1_data_body[41] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CALL_INTRINSIC_1_data_holes[6] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyIntrinsics_UnaryFunctions, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _CALL_INTRINSIC_2
//
// /tmp/tmp2mfmnab2/_CALL_INTRINSIC_2.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d6 movq %rdx, %r14
// e: 49 89 f7 movq %rsi, %r15
// 11: 48 89 fb movq %rdi, %rbx
// 14: 48 8b 6e f0 movq -0x10(%rsi), %rbp
// 18: 4c 8b 66 f8 movq -0x8(%rsi), %r12
// 1c: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x23 <_JIT_ENTRY+0x23>
// 000000000000001f: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 23: 48 c1 e0 04 shlq $0x4, %rax
// 27: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x2e <_JIT_ENTRY+0x2e>
// 000000000000002a: R_X86_64_REX_GOTPCRELX _PyIntrinsics_BinaryFunctions-0x4
// 2e: 48 89 d7 movq %rdx, %rdi
// 31: 48 89 ee movq %rbp, %rsi
// 34: 4c 89 e2 movq %r12, %rdx
// 37: ff 14 01 callq *(%rcx,%rax)
// 3a: 49 89 c5 movq %rax, %r13
// 3d: 48 8b 45 00 movq (%rbp), %rax
// 41: 85 c0 testl %eax, %eax
// 43: 78 09 js 0x4e <_JIT_ENTRY+0x4e>
// 45: 48 ff c8 decq %rax
// 48: 48 89 45 00 movq %rax, (%rbp)
// 4c: 74 1c je 0x6a <_JIT_ENTRY+0x6a>
// 4e: 49 8b 04 24 movq (%r12), %rax
// 52: 85 c0 testl %eax, %eax
// 54: 78 25 js 0x7b <_JIT_ENTRY+0x7b>
// 56: 48 ff c8 decq %rax
// 59: 49 89 04 24 movq %rax, (%r12)
// 5d: 75 1c jne 0x7b <_JIT_ENTRY+0x7b>
// 5f: 4c 89 e7 movq %r12, %rdi
// 62: ff 15 00 00 00 00 callq *(%rip) # 0x68 <_JIT_ENTRY+0x68>
// 0000000000000064: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 68: eb 11 jmp 0x7b <_JIT_ENTRY+0x7b>
// 6a: 48 89 ef movq %rbp, %rdi
// 6d: ff 15 00 00 00 00 callq *(%rip) # 0x73 <_JIT_ENTRY+0x73>
// 000000000000006f: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 73: 49 8b 04 24 movq (%r12), %rax
// 77: 85 c0 testl %eax, %eax
// 79: 79 db jns 0x56 <_JIT_ENTRY+0x56>
// 7b: 49 8d 47 f0 leaq -0x10(%r15), %rax
// 7f: 4d 85 ed testq %r13, %r13
// 82: 74 24 je 0xa8 <_JIT_ENTRY+0xa8>
// 84: 49 83 c7 f8 addq $-0x8, %r15
// 88: 4c 89 28 movq %r13, (%rax)
// 8b: 48 89 df movq %rbx, %rdi
// 8e: 4c 89 fe movq %r15, %rsi
// 91: 4c 89 f2 movq %r14, %rdx
// 94: 48 83 c4 08 addq $0x8, %rsp
// 98: 5b popq %rbx
// 99: 41 5c popq %r12
// 9b: 41 5d popq %r13
// 9d: 41 5e popq %r14
// 9f: 41 5f popq %r15
// a1: 5d popq %rbp
// a2: ff 25 00 00 00 00 jmpq *(%rip) # 0xa8 <_JIT_ENTRY+0xa8>
// 00000000000000a4: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// a8: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xaf <_JIT_ENTRY+0xaf>
// 00000000000000ab: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// af: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14)
// b6: 48 29 d8 subq %rbx, %rax
// b9: 48 83 c0 b8 addq $-0x48, %rax
// bd: 48 c1 e8 03 shrq $0x3, %rax
// c1: 89 43 40 movl %eax, 0x40(%rbx)
// c4: 31 c0 xorl %eax, %eax
// c6: 48 83 c4 08 addq $0x8, %rsp
// ca: 5b popq %rbx
// cb: 41 5c popq %r12
// cd: 41 5d popq %r13
// cf: 41 5e popq %r14
// d1: 41 5f popq %r15
// d3: 5d popq %rbp
// d4: c3 retq
// d5:
static const unsigned char _CALL_INTRINSIC_2_code_body[214] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89,
0xf7, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x6e, 0xf0,
0x4c, 0x8b, 0x66, 0xf8, 0x0f, 0xb7, 0x05, 0x00,
0x00, 0x00, 0x00, 0x48, 0xc1, 0xe0, 0x04, 0x48,
0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x89,
0xd7, 0x48, 0x89, 0xee, 0x4c, 0x89, 0xe2, 0xff,
0x14, 0x01, 0x49, 0x89, 0xc5, 0x48, 0x8b, 0x45,
0x00, 0x85, 0xc0, 0x78, 0x09, 0x48, 0xff, 0xc8,
0x48, 0x89, 0x45, 0x00, 0x74, 0x1c, 0x49, 0x8b,
0x04, 0x24, 0x85, 0xc0, 0x78, 0x25, 0x48, 0xff,
0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x1c, 0x4c,
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0xeb, 0x11, 0x48, 0x89, 0xef, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x49, 0x8b, 0x04, 0x24, 0x85,
0xc0, 0x79, 0xdb, 0x49, 0x8d, 0x47, 0xf0, 0x4d,
0x85, 0xed, 0x74, 0x24, 0x49, 0x83, 0xc7, 0xf8,
0x4c, 0x89, 0x28, 0x48, 0x89, 0xdf, 0x4c, 0x89,
0xfe, 0x4c, 0x89, 0xf2, 0x48, 0x83, 0xc4, 0x08,
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41,
0x5f, 0x5d, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00,
0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x49,
0x89, 0x8e, 0x28, 0x01, 0x00, 0x00, 0x48, 0x29,
0xd8, 0x48, 0x83, 0xc0, 0xb8, 0x48, 0xc1, 0xe8,
0x03, 0x89, 0x43, 0x40, 0x31, 0xc0, 0x48, 0x83,
0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41,
0x5e, 0x41, 0x5f, 0x5d, 0xc3,
};
static const Hole _CALL_INTRINSIC_2_code_holes[7] = {
{0x1f, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x2a, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x64, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x6f, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0xa4, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0xab, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
};
// 0:
// 0: OPARG
// 8: &_PyIntrinsics_BinaryFunctions+0x0
// 10: &_Py_Dealloc+0x0
// 18: CONTINUE
// 20: EXECUTOR
static const unsigned char _CALL_INTRINSIC_2_data_body[41] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CALL_INTRINSIC_2_data_holes[6] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyIntrinsics_BinaryFunctions, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _CALL_ISINSTANCE
//
// /tmp/tmp2mfmnab2/_CALL_ISINSTANCE.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 48 83 ec 18 subq $0x18, %rsp
// e: 49 89 d7 movq %rdx, %r15
// 11: 49 89 f6 movq %rsi, %r14
// 14: 48 89 fb movq %rdi, %rbx
// 17: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x1e <_JIT_ENTRY+0x1e>
// 000000000000001a: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 1e: 0f b7 c1 movzwl %cx, %eax
// 21: 89 c2 movl %eax, %edx
// 23: f7 d2 notl %edx
// 25: 48 63 ea movslq %edx, %rbp
// 28: 31 d2 xorl %edx, %edx
// 2a: 66 83 f9 01 cmpw $0x1, %cx
// 2e: 0f 94 c2 sete %dl
// 31: 31 f6 xorl %esi, %esi
// 33: 66 83 f9 02 cmpw $0x2, %cx
// 37: 40 0f 94 c6 sete %sil
// 3b: 0f b7 c9 movzwl %cx, %ecx
// 3e: 48 89 cf movq %rcx, %rdi
// 41: 48 f7 df negq %rdi
// 44: 49 83 3c ee 00 cmpq $0x0, (%r14,%rbp,8)
// 49: 0f 44 d6 cmovel %esi, %edx
// 4c: 48 f7 d1 notq %rcx
// 4f: 48 0f 44 cf cmoveq %rdi, %rcx
// 53: 80 fa 01 cmpb $0x1, %dl
// 56: 75 1b jne 0x73 <_JIT_ENTRY+0x73>
// 58: ba fe ff ff ff movl $0xfffffffe, %edx # imm = 0xFFFFFFFE
// 5d: 29 c2 subl %eax, %edx
// 5f: 4c 63 ea movslq %edx, %r13
// 62: 4f 8b 24 ee movq (%r14,%r13,8), %r12
// 66: 49 8b 47 10 movq 0x10(%r15), %rax
// 6a: 4c 3b a0 a8 50 02 00 cmpq 0x250a8(%rax), %r12
// 71: 74 3f je 0xb2 <_JIT_ENTRY+0xb2>
// 73: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x7a <_JIT_ENTRY+0x7a>
// 0000000000000076: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 7a: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 81: 49 29 de subq %rbx, %r14
// 84: 49 83 c6 b8 addq $-0x48, %r14
// 88: 49 c1 ee 03 shrq $0x3, %r14
// 8c: 44 89 73 40 movl %r14d, 0x40(%rbx)
// 90: 48 8b 03 movq (%rbx), %rax
// 93: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x99 <_JIT_ENTRY+0x99>
// 0000000000000095: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 99: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 9d: 48 05 c8 00 00 00 addq $0xc8, %rax
// a3: 48 83 c4 18 addq $0x18, %rsp
// a7: 5b popq %rbx
// a8: 41 5c popq %r12
// aa: 41 5d popq %r13
// ac: 41 5e popq %r14
// ae: 41 5f popq %r15
// b0: 5d popq %rbp
// b1: c3 retq
// b2: 49 8b 3c ce movq (%r14,%rcx,8), %rdi
// b6: 49 8b 74 ce 08 movq 0x8(%r14,%rcx,8), %rsi
// bb: 48 89 7c 24 08 movq %rdi, 0x8(%rsp)
// c0: 48 89 74 24 10 movq %rsi, 0x10(%rsp)
// c5: ff 15 00 00 00 00 callq *(%rip) # 0xcb <_JIT_ENTRY+0xcb>
// 00000000000000c7: R_X86_64_GOTPCRELX PyObject_IsInstance-0x4
// cb: 85 c0 testl %eax, %eax
// cd: 0f 88 9d 00 00 00 js 0x170 <_JIT_ENTRY+0x170>
// d3: 89 c7 movl %eax, %edi
// d5: ff 15 00 00 00 00 callq *(%rip) # 0xdb <_JIT_ENTRY+0xdb>
// 00000000000000d7: R_X86_64_GOTPCRELX PyBool_FromLong-0x4
// db: 48 8b 7c 24 08 movq 0x8(%rsp), %rdi
// e0: 48 8b 0f movq (%rdi), %rcx
// e3: 85 c9 testl %ecx, %ecx
// e5: 78 18 js 0xff <_JIT_ENTRY+0xff>
// e7: 48 ff c9 decq %rcx
// ea: 48 89 0f movq %rcx, (%rdi)
// ed: 75 10 jne 0xff <_JIT_ENTRY+0xff>
// ef: 48 89 44 24 08 movq %rax, 0x8(%rsp)
// f4: ff 15 00 00 00 00 callq *(%rip) # 0xfa <_JIT_ENTRY+0xfa>
// 00000000000000f6: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// fa: 48 8b 44 24 08 movq 0x8(%rsp), %rax
// ff: 48 8b 7c 24 10 movq 0x10(%rsp), %rdi
// 104: 48 8b 0f movq (%rdi), %rcx
// 107: 85 c9 testl %ecx, %ecx
// 109: 78 18 js 0x123 <_JIT_ENTRY+0x123>
// 10b: 48 ff c9 decq %rcx
// 10e: 48 89 0f movq %rcx, (%rdi)
// 111: 75 10 jne 0x123 <_JIT_ENTRY+0x123>
// 113: 48 89 44 24 08 movq %rax, 0x8(%rsp)
// 118: ff 15 00 00 00 00 callq *(%rip) # 0x11e <_JIT_ENTRY+0x11e>
// 000000000000011a: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 11e: 48 8b 44 24 08 movq 0x8(%rsp), %rax
// 123: 49 8b 0c 24 movq (%r12), %rcx
// 127: 85 c9 testl %ecx, %ecx
// 129: 78 18 js 0x143 <_JIT_ENTRY+0x143>
// 12b: 48 ff c9 decq %rcx
// 12e: 49 89 0c 24 movq %rcx, (%r12)
// 132: 75 0f jne 0x143 <_JIT_ENTRY+0x143>
// 134: 4c 89 e7 movq %r12, %rdi
// 137: 49 89 c4 movq %rax, %r12
// 13a: ff 15 00 00 00 00 callq *(%rip) # 0x140 <_JIT_ENTRY+0x140>
// 000000000000013c: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 140: 4c 89 e0 movq %r12, %rax
// 143: 4b 8d 0c ee leaq (%r14,%r13,8), %rcx
// 147: 48 85 c0 testq %rax, %rax
// 14a: 74 21 je 0x16d <_JIT_ENTRY+0x16d>
// 14c: 49 8d 34 ee leaq (%r14,%rbp,8), %rsi
// 150: 48 89 01 movq %rax, (%rcx)
// 153: 48 89 df movq %rbx, %rdi
// 156: 4c 89 fa movq %r15, %rdx
// 159: 48 83 c4 18 addq $0x18, %rsp
// 15d: 5b popq %rbx
// 15e: 41 5c popq %r12
// 160: 41 5d popq %r13
// 162: 41 5e popq %r14
// 164: 41 5f popq %r15
// 166: 5d popq %rbp
// 167: ff 25 00 00 00 00 jmpq *(%rip) # 0x16d <_JIT_ENTRY+0x16d>
// 0000000000000169: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 16d: 49 89 ce movq %rcx, %r14
// 170: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x177 <_JIT_ENTRY+0x177>
// 0000000000000173: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 177: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 17e: 49 29 de subq %rbx, %r14
// 181: 49 83 c6 b8 addq $-0x48, %r14
// 185: 49 c1 ee 03 shrq $0x3, %r14
// 189: 44 89 73 40 movl %r14d, 0x40(%rbx)
// 18d: 31 c0 xorl %eax, %eax
// 18f: e9 0f ff ff ff jmp 0xa3 <_JIT_ENTRY+0xa3>
// 194:
static const unsigned char _CALL_ISINSTANCE_code_body[405] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x48, 0x83, 0xec, 0x18, 0x49, 0x89,
0xd7, 0x49, 0x89, 0xf6, 0x48, 0x89, 0xfb, 0x48,
0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xb7,
0xc1, 0x89, 0xc2, 0xf7, 0xd2, 0x48, 0x63, 0xea,
0x31, 0xd2, 0x66, 0x83, 0xf9, 0x01, 0x0f, 0x94,
0xc2, 0x31, 0xf6, 0x66, 0x83, 0xf9, 0x02, 0x40,
0x0f, 0x94, 0xc6, 0x0f, 0xb7, 0xc9, 0x48, 0x89,
0xcf, 0x48, 0xf7, 0xdf, 0x49, 0x83, 0x3c, 0xee,
0x00, 0x0f, 0x44, 0xd6, 0x48, 0xf7, 0xd1, 0x48,
0x0f, 0x44, 0xcf, 0x80, 0xfa, 0x01, 0x75, 0x1b,
0xba, 0xfe, 0xff, 0xff, 0xff, 0x29, 0xc2, 0x4c,
0x63, 0xea, 0x4f, 0x8b, 0x24, 0xee, 0x49, 0x8b,
0x47, 0x10, 0x4c, 0x3b, 0xa0, 0xa8, 0x50, 0x02,
0x00, 0x74, 0x3f, 0x48, 0x8b, 0x05, 0x00, 0x00,
0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00,
0x00, 0x49, 0x29, 0xde, 0x49, 0x83, 0xc6, 0xb8,
0x49, 0xc1, 0xee, 0x03, 0x44, 0x89, 0x73, 0x40,
0x48, 0x8b, 0x03, 0x8b, 0x0d, 0x00, 0x00, 0x00,
0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05, 0xc8,
0x00, 0x00, 0x00, 0x48, 0x83, 0xc4, 0x18, 0x5b,
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f,
0x5d, 0xc3, 0x49, 0x8b, 0x3c, 0xce, 0x49, 0x8b,
0x74, 0xce, 0x08, 0x48, 0x89, 0x7c, 0x24, 0x08,
0x48, 0x89, 0x74, 0x24, 0x10, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x85, 0xc0, 0x0f, 0x88, 0x9d,
0x00, 0x00, 0x00, 0x89, 0xc7, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x48, 0x8b, 0x7c, 0x24, 0x08,
0x48, 0x8b, 0x0f, 0x85, 0xc9, 0x78, 0x18, 0x48,
0xff, 0xc9, 0x48, 0x89, 0x0f, 0x75, 0x10, 0x48,
0x89, 0x44, 0x24, 0x08, 0xff, 0x15, 0x00, 0x00,
0x00, 0x00, 0x48, 0x8b, 0x44, 0x24, 0x08, 0x48,
0x8b, 0x7c, 0x24, 0x10, 0x48, 0x8b, 0x0f, 0x85,
0xc9, 0x78, 0x18, 0x48, 0xff, 0xc9, 0x48, 0x89,
0x0f, 0x75, 0x10, 0x48, 0x89, 0x44, 0x24, 0x08,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b,
0x44, 0x24, 0x08, 0x49, 0x8b, 0x0c, 0x24, 0x85,
0xc9, 0x78, 0x18, 0x48, 0xff, 0xc9, 0x49, 0x89,
0x0c, 0x24, 0x75, 0x0f, 0x4c, 0x89, 0xe7, 0x49,
0x89, 0xc4, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x4c, 0x89, 0xe0, 0x4b, 0x8d, 0x0c, 0xee, 0x48,
0x85, 0xc0, 0x74, 0x21, 0x49, 0x8d, 0x34, 0xee,
0x48, 0x89, 0x01, 0x48, 0x89, 0xdf, 0x4c, 0x89,
0xfa, 0x48, 0x83, 0xc4, 0x18, 0x5b, 0x41, 0x5c,
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xff,
0x25, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0xce,
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49,
0x89, 0x87, 0x28, 0x01, 0x00, 0x00, 0x49, 0x29,
0xde, 0x49, 0x83, 0xc6, 0xb8, 0x49, 0xc1, 0xee,
0x03, 0x44, 0x89, 0x73, 0x40, 0x31, 0xc0, 0xe9,
0x0f, 0xff, 0xff, 0xff,
};
static const Hole _CALL_ISINSTANCE_code_holes[11] = {
{0x1a, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x76, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x95, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0xc7, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0xd7, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0xf6, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0x11a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0x13c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0x169, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
{0x173, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
};
// 0:
// 0: OPARG
// 8: EXECUTOR
// 10: TARGET
// 18: &PyObject_IsInstance+0x0
// 20: &PyBool_FromLong+0x0
// 28: &_Py_Dealloc+0x0
// 30: CONTINUE
static const unsigned char _CALL_ISINSTANCE_data_body[57] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CALL_ISINSTANCE_data_holes[8] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_IsInstance, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyBool_FromLong, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x30, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
};
// _CALL_LEN
//
// /tmp/tmp2mfmnab2/_CALL_LEN.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d7 movq %rdx, %r15
// e: 49 89 f6 movq %rsi, %r14
// 11: 48 89 fb movq %rdi, %rbx
// 14: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x1b <_JIT_ENTRY+0x1b>
// 0000000000000017: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 1b: 0f b7 c1 movzwl %cx, %eax
// 1e: 89 c2 movl %eax, %edx
// 20: f7 d2 notl %edx
// 22: 4c 63 ea movslq %edx, %r13
// 25: 31 d2 xorl %edx, %edx
// 27: 66 85 c9 testw %cx, %cx
// 2a: 0f 94 c2 sete %dl
// 2d: 31 f6 xorl %esi, %esi
// 2f: 66 83 f9 01 cmpw $0x1, %cx
// 33: 40 0f 94 c6 sete %sil
// 37: 0f b7 c9 movzwl %cx, %ecx
// 3a: 48 89 cf movq %rcx, %rdi
// 3d: 48 f7 df negq %rdi
// 40: 4b 83 3c ee 00 cmpq $0x0, (%r14,%r13,8)
// 45: 0f 44 d6 cmovel %esi, %edx
// 48: 48 f7 d1 notq %rcx
// 4b: 48 0f 44 cf cmoveq %rdi, %rcx
// 4f: 80 fa 01 cmpb $0x1, %dl
// 52: 75 1b jne 0x6f <_JIT_ENTRY+0x6f>
// 54: ba fe ff ff ff movl $0xfffffffe, %edx # imm = 0xFFFFFFFE
// 59: 29 c2 subl %eax, %edx
// 5b: 4c 63 e2 movslq %edx, %r12
// 5e: 4b 8b 2c e6 movq (%r14,%r12,8), %rbp
// 62: 49 8b 47 10 movq 0x10(%r15), %rax
// 66: 48 3b a8 b0 50 02 00 cmpq 0x250b0(%rax), %rbp
// 6d: 74 3f je 0xae <_JIT_ENTRY+0xae>
// 6f: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x76 <_JIT_ENTRY+0x76>
// 0000000000000072: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 76: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 7d: 49 29 de subq %rbx, %r14
// 80: 49 83 c6 b8 addq $-0x48, %r14
// 84: 49 c1 ee 03 shrq $0x3, %r14
// 88: 44 89 73 40 movl %r14d, 0x40(%rbx)
// 8c: 48 8b 03 movq (%rbx), %rax
// 8f: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x95 <_JIT_ENTRY+0x95>
// 0000000000000091: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 95: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 99: 48 05 c8 00 00 00 addq $0xc8, %rax
// 9f: 48 83 c4 08 addq $0x8, %rsp
// a3: 5b popq %rbx
// a4: 41 5c popq %r12
// a6: 41 5d popq %r13
// a8: 41 5e popq %r14
// aa: 41 5f popq %r15
// ac: 5d popq %rbp
// ad: c3 retq
// ae: 49 8b 3c ce movq (%r14,%rcx,8), %rdi
// b2: 48 89 3c 24 movq %rdi, (%rsp)
// b6: ff 15 00 00 00 00 callq *(%rip) # 0xbc <_JIT_ENTRY+0xbc>
// 00000000000000b8: R_X86_64_GOTPCRELX PyObject_Size-0x4
// bc: 48 85 c0 testq %rax, %rax
// bf: 78 75 js 0x136 <_JIT_ENTRY+0x136>
// c1: 48 89 c7 movq %rax, %rdi
// c4: ff 15 00 00 00 00 callq *(%rip) # 0xca <_JIT_ENTRY+0xca>
// 00000000000000c6: R_X86_64_GOTPCRELX PyLong_FromSsize_t-0x4
// ca: 48 8b 4d 00 movq (%rbp), %rcx
// ce: 85 c9 testl %ecx, %ecx
// d0: 78 18 js 0xea <_JIT_ENTRY+0xea>
// d2: 48 ff c9 decq %rcx
// d5: 48 89 4d 00 movq %rcx, (%rbp)
// d9: 75 0f jne 0xea <_JIT_ENTRY+0xea>
// db: 48 89 ef movq %rbp, %rdi
// de: 48 89 c5 movq %rax, %rbp
// e1: ff 15 00 00 00 00 callq *(%rip) # 0xe7 <_JIT_ENTRY+0xe7>
// 00000000000000e3: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// e7: 48 89 e8 movq %rbp, %rax
// ea: 48 8b 3c 24 movq (%rsp), %rdi
// ee: 48 8b 0f movq (%rdi), %rcx
// f1: 85 c9 testl %ecx, %ecx
// f3: 78 14 js 0x109 <_JIT_ENTRY+0x109>
// f5: 48 ff c9 decq %rcx
// f8: 48 89 0f movq %rcx, (%rdi)
// fb: 75 0c jne 0x109 <_JIT_ENTRY+0x109>
// fd: 48 89 c5 movq %rax, %rbp
// 100: ff 15 00 00 00 00 callq *(%rip) # 0x106 <_JIT_ENTRY+0x106>
// 0000000000000102: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 106: 48 89 e8 movq %rbp, %rax
// 109: 4b 8d 0c e6 leaq (%r14,%r12,8), %rcx
// 10d: 48 85 c0 testq %rax, %rax
// 110: 74 21 je 0x133 <_JIT_ENTRY+0x133>
// 112: 4b 8d 34 ee leaq (%r14,%r13,8), %rsi
// 116: 48 89 01 movq %rax, (%rcx)
// 119: 48 89 df movq %rbx, %rdi
// 11c: 4c 89 fa movq %r15, %rdx
// 11f: 48 83 c4 08 addq $0x8, %rsp
// 123: 5b popq %rbx
// 124: 41 5c popq %r12
// 126: 41 5d popq %r13
// 128: 41 5e popq %r14
// 12a: 41 5f popq %r15
// 12c: 5d popq %rbp
// 12d: ff 25 00 00 00 00 jmpq *(%rip) # 0x133 <_JIT_ENTRY+0x133>
// 000000000000012f: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 133: 49 89 ce movq %rcx, %r14
// 136: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x13d <_JIT_ENTRY+0x13d>
// 0000000000000139: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 13d: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 144: 49 29 de subq %rbx, %r14
// 147: 49 83 c6 b8 addq $-0x48, %r14
// 14b: 49 c1 ee 03 shrq $0x3, %r14
// 14f: 44 89 73 40 movl %r14d, 0x40(%rbx)
// 153: 31 c0 xorl %eax, %eax
// 155: e9 45 ff ff ff jmp 0x9f <_JIT_ENTRY+0x9f>
// 15a:
static const unsigned char _CALL_LEN_code_body[347] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x49, 0x89,
0xf6, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x0d, 0x00,
0x00, 0x00, 0x00, 0x0f, 0xb7, 0xc1, 0x89, 0xc2,
0xf7, 0xd2, 0x4c, 0x63, 0xea, 0x31, 0xd2, 0x66,
0x85, 0xc9, 0x0f, 0x94, 0xc2, 0x31, 0xf6, 0x66,
0x83, 0xf9, 0x01, 0x40, 0x0f, 0x94, 0xc6, 0x0f,
0xb7, 0xc9, 0x48, 0x89, 0xcf, 0x48, 0xf7, 0xdf,
0x4b, 0x83, 0x3c, 0xee, 0x00, 0x0f, 0x44, 0xd6,
0x48, 0xf7, 0xd1, 0x48, 0x0f, 0x44, 0xcf, 0x80,
0xfa, 0x01, 0x75, 0x1b, 0xba, 0xfe, 0xff, 0xff,
0xff, 0x29, 0xc2, 0x4c, 0x63, 0xe2, 0x4b, 0x8b,
0x2c, 0xe6, 0x49, 0x8b, 0x47, 0x10, 0x48, 0x3b,
0xa8, 0xb0, 0x50, 0x02, 0x00, 0x74, 0x3f, 0x48,
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89,
0x87, 0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xde,
0x49, 0x83, 0xc6, 0xb8, 0x49, 0xc1, 0xee, 0x03,
0x44, 0x89, 0x73, 0x40, 0x48, 0x8b, 0x03, 0x8b,
0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04,
0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0x48,
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d,
0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xc3, 0x49, 0x8b,
0x3c, 0xce, 0x48, 0x89, 0x3c, 0x24, 0xff, 0x15,
0x00, 0x00, 0x00, 0x00, 0x48, 0x85, 0xc0, 0x78,
0x75, 0x48, 0x89, 0xc7, 0xff, 0x15, 0x00, 0x00,
0x00, 0x00, 0x48, 0x8b, 0x4d, 0x00, 0x85, 0xc9,
0x78, 0x18, 0x48, 0xff, 0xc9, 0x48, 0x89, 0x4d,
0x00, 0x75, 0x0f, 0x48, 0x89, 0xef, 0x48, 0x89,
0xc5, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48,
0x89, 0xe8, 0x48, 0x8b, 0x3c, 0x24, 0x48, 0x8b,
0x0f, 0x85, 0xc9, 0x78, 0x14, 0x48, 0xff, 0xc9,
0x48, 0x89, 0x0f, 0x75, 0x0c, 0x48, 0x89, 0xc5,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x89,
0xe8, 0x4b, 0x8d, 0x0c, 0xe6, 0x48, 0x85, 0xc0,
0x74, 0x21, 0x4b, 0x8d, 0x34, 0xee, 0x48, 0x89,
0x01, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xfa, 0x48,
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d,
0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00,
0x00, 0x00, 0x00, 0x49, 0x89, 0xce, 0x48, 0x8b,
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87,
0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xde, 0x49,
0x83, 0xc6, 0xb8, 0x49, 0xc1, 0xee, 0x03, 0x44,
0x89, 0x73, 0x40, 0x31, 0xc0, 0xe9, 0x45, 0xff,
0xff, 0xff,
};
static const Hole _CALL_LEN_code_holes[10] = {
{0x17, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x72, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x91, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0xb8, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0xc6, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0xe3, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0x102, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0x12f, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
{0x139, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
};
// 0:
// 0: OPARG
// 8: EXECUTOR
// 10: TARGET
// 18: &PyObject_Size+0x0
// 20: &PyLong_FromSsize_t+0x0
// 28: &_Py_Dealloc+0x0
// 30: CONTINUE
static const unsigned char _CALL_LEN_data_body[57] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CALL_LEN_data_holes[8] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_Size, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyLong_FromSsize_t, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x30, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
};
// _CALL_METHOD_DESCRIPTOR_FAST
//
// /tmp/tmp2mfmnab2/_CALL_METHOD_DESCRIPTOR_FAST.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 48 83 ec 28 subq $0x28, %rsp
// e: 49 89 f7 movq %rsi, %r15
// 11: 48 89 fb movq %rdi, %rbx
// 14: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x1b <_JIT_ENTRY+0x1b>
// 0000000000000017: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 1b: 0f b7 f9 movzwl %cx, %edi
// 1e: 89 f8 movl %edi, %eax
// 20: f7 d0 notl %eax
// 22: 4c 63 c8 movslq %eax, %r9
// 25: 4a 8b 04 ce movq (%rsi,%r9,8), %rax
// 29: be fe ff ff ff movl $0xfffffffe, %esi # imm = 0xFFFFFFFE
// 2e: 29 fe subl %edi, %esi
// 30: 4c 63 d6 movslq %esi, %r10
// 33: 0f b7 c9 movzwl %cx, %ecx
// 36: 48 89 ce movq %rcx, %rsi
// 39: 48 f7 de negq %rsi
// 3c: 8d 6f 01 leal 0x1(%rdi), %ebp
// 3f: 48 85 c0 testq %rax, %rax
// 42: 48 f7 d1 notq %rcx
// 45: 48 0f 44 ce cmoveq %rsi, %rcx
// 49: 0f 44 ef cmovel %edi, %ebp
// 4c: 4f 8b 24 d7 movq (%r15,%r10,8), %r12
// 50: 49 8b 74 24 08 movq 0x8(%r12), %rsi
// 55: 48 3b 35 00 00 00 00 cmpq (%rip), %rsi # 0x5c <_JIT_ENTRY+0x5c>
// 0000000000000058: R_X86_64_REX_GOTPCRELX PyMethodDescr_Type-0x4
// 5c: 75 21 jne 0x7f <_JIT_ENTRY+0x7f>
// 5e: 4d 8b 44 24 28 movq 0x28(%r12), %r8
// 63: 41 81 78 10 80 00 00 00 cmpl $0x80, 0x10(%r8)
// 6b: 75 12 jne 0x7f <_JIT_ENTRY+0x7f>
// 6d: 4d 8d 34 cf leaq (%r15,%rcx,8), %r14
// 71: 49 8b 3e movq (%r14), %rdi
// 74: 48 8b 4f 08 movq 0x8(%rdi), %rcx
// 78: 49 3b 4c 24 10 cmpq 0x10(%r12), %rcx
// 7d: 74 3f je 0xbe <_JIT_ENTRY+0xbe>
// 7f: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x86 <_JIT_ENTRY+0x86>
// 0000000000000082: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 86: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 8d: 49 29 df subq %rbx, %r15
// 90: 49 83 c7 b8 addq $-0x48, %r15
// 94: 49 c1 ef 03 shrq $0x3, %r15
// 98: 44 89 7b 40 movl %r15d, 0x40(%rbx)
// 9c: 48 8b 03 movq (%rbx), %rax
// 9f: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0xa5 <_JIT_ENTRY+0xa5>
// 00000000000000a1: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// a5: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// a9: 48 05 c8 00 00 00 addq $0xc8, %rax
// af: 48 83 c4 28 addq $0x28, %rsp
// b3: 5b popq %rbx
// b4: 41 5c popq %r12
// b6: 41 5d popq %r13
// b8: 41 5e popq %r14
// ba: 41 5f popq %r15
// bc: 5d popq %rbp
// bd: c3 retq
// be: 4c 89 54 24 10 movq %r10, 0x10(%rsp)
// c3: 4c 89 4c 24 18 movq %r9, 0x18(%rsp)
// c8: 48 89 54 24 20 movq %rdx, 0x20(%rsp)
// cd: 48 85 c0 testq %rax, %rax
// d0: 41 0f 94 c5 sete %r13b
// d4: 8d 45 ff leal -0x1(%rbp), %eax
// d7: 49 8d 76 08 leaq 0x8(%r14), %rsi
// db: 48 63 d0 movslq %eax, %rdx
// de: 41 ff 50 08 callq *0x8(%r8)
// e2: 48 89 44 24 08 movq %rax, 0x8(%rsp)
// e7: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xee <_JIT_ENTRY+0xee>
// 00000000000000ea: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// ee: 66 85 c0 testw %ax, %ax
// f1: 0f 94 c0 sete %al
// f4: 41 84 c5 testb %al, %r13b
// f7: 74 79 je 0x172 <_JIT_ENTRY+0x172>
// f9: 49 8b 04 24 movq (%r12), %rax
// fd: 85 c0 testl %eax, %eax
// ff: 4c 8b 74 24 10 movq 0x10(%rsp), %r14
// 104: 78 12 js 0x118 <_JIT_ENTRY+0x118>
// 106: 48 ff c8 decq %rax
// 109: 49 89 04 24 movq %rax, (%r12)
// 10d: 75 09 jne 0x118 <_JIT_ENTRY+0x118>
// 10f: 4c 89 e7 movq %r12, %rdi
// 112: ff 15 00 00 00 00 callq *(%rip) # 0x118 <_JIT_ENTRY+0x118>
// 0000000000000114: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 118: 4b 8d 04 f7 leaq (%r15,%r14,8), %rax
// 11c: 48 8b 54 24 08 movq 0x8(%rsp), %rdx
// 121: 48 85 d2 testq %rdx, %rdx
// 124: 4c 8b 74 24 20 movq 0x20(%rsp), %r14
// 129: 48 8b 4c 24 18 movq 0x18(%rsp), %rcx
// 12e: 74 1f je 0x14f <_JIT_ENTRY+0x14f>
// 130: 4d 8d 3c cf leaq (%r15,%rcx,8), %r15
// 134: 48 89 10 movq %rdx, (%rax)
// 137: 49 8b 46 18 movq 0x18(%r14), %rax
// 13b: 84 c0 testb %al, %al
// 13d: 74 78 je 0x1b7 <_JIT_ENTRY+0x1b7>
// 13f: 4c 89 f7 movq %r14, %rdi
// 142: ff 15 00 00 00 00 callq *(%rip) # 0x148 <_JIT_ENTRY+0x148>
// 0000000000000144: R_X86_64_GOTPCRELX _Py_HandlePending-0x4
// 148: 85 c0 testl %eax, %eax
// 14a: 74 6b je 0x1b7 <_JIT_ENTRY+0x1b7>
// 14c: 4c 89 f8 movq %r15, %rax
// 14f: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x156 <_JIT_ENTRY+0x156>
// 0000000000000152: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 156: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14)
// 15d: 48 29 d8 subq %rbx, %rax
// 160: 48 83 c0 b8 addq $-0x48, %rax
// 164: 48 c1 e8 03 shrq $0x3, %rax
// 168: 89 43 40 movl %eax, 0x40(%rbx)
// 16b: 31 c0 xorl %eax, %eax
// 16d: e9 3d ff ff ff jmp 0xaf <_JIT_ENTRY+0xaf>
// 172: 83 fd 02 cmpl $0x2, %ebp
// 175: 41 bd 01 00 00 00 movl $0x1, %r13d
// 17b: 44 0f 43 ed cmovael %ebp, %r13d
// 17f: 31 ed xorl %ebp, %ebp
// 181: eb 19 jmp 0x19c <_JIT_ENTRY+0x19c>
// 183: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax)
// 190: 48 ff c5 incq %rbp
// 193: 49 39 ed cmpq %rbp, %r13
// 196: 0f 84 5d ff ff ff je 0xf9 <_JIT_ENTRY+0xf9>
// 19c: 49 8b 3c ee movq (%r14,%rbp,8), %rdi
// 1a0: 48 8b 07 movq (%rdi), %rax
// 1a3: 85 c0 testl %eax, %eax
// 1a5: 78 e9 js 0x190 <_JIT_ENTRY+0x190>
// 1a7: 48 ff c8 decq %rax
// 1aa: 48 89 07 movq %rax, (%rdi)
// 1ad: 75 e1 jne 0x190 <_JIT_ENTRY+0x190>
// 1af: ff 15 00 00 00 00 callq *(%rip) # 0x1b5 <_JIT_ENTRY+0x1b5>
// 00000000000001b1: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 1b5: eb d9 jmp 0x190 <_JIT_ENTRY+0x190>
// 1b7: 48 89 df movq %rbx, %rdi
// 1ba: 4c 89 fe movq %r15, %rsi
// 1bd: 4c 89 f2 movq %r14, %rdx
// 1c0: 48 83 c4 28 addq $0x28, %rsp
// 1c4: 5b popq %rbx
// 1c5: 41 5c popq %r12
// 1c7: 41 5d popq %r13
// 1c9: 41 5e popq %r14
// 1cb: 41 5f popq %r15
// 1cd: 5d popq %rbp
// 1ce: ff 25 00 00 00 00 jmpq *(%rip) # 0x1d4 <_JIT_ENTRY+0x1d4>
// 00000000000001d0: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 1ce:
static const unsigned char _CALL_METHOD_DESCRIPTOR_FAST_code_body[463] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x48, 0x83, 0xec, 0x28, 0x49, 0x89,
0xf7, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x0d, 0x00,
0x00, 0x00, 0x00, 0x0f, 0xb7, 0xf9, 0x89, 0xf8,
0xf7, 0xd0, 0x4c, 0x63, 0xc8, 0x4a, 0x8b, 0x04,
0xce, 0xbe, 0xfe, 0xff, 0xff, 0xff, 0x29, 0xfe,
0x4c, 0x63, 0xd6, 0x0f, 0xb7, 0xc9, 0x48, 0x89,
0xce, 0x48, 0xf7, 0xde, 0x8d, 0x6f, 0x01, 0x48,
0x85, 0xc0, 0x48, 0xf7, 0xd1, 0x48, 0x0f, 0x44,
0xce, 0x0f, 0x44, 0xef, 0x4f, 0x8b, 0x24, 0xd7,
0x49, 0x8b, 0x74, 0x24, 0x08, 0x48, 0x3b, 0x35,
0x00, 0x00, 0x00, 0x00, 0x75, 0x21, 0x4d, 0x8b,
0x44, 0x24, 0x28, 0x41, 0x81, 0x78, 0x10, 0x80,
0x00, 0x00, 0x00, 0x75, 0x12, 0x4d, 0x8d, 0x34,
0xcf, 0x49, 0x8b, 0x3e, 0x48, 0x8b, 0x4f, 0x08,
0x49, 0x3b, 0x4c, 0x24, 0x10, 0x74, 0x3f, 0x48,
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x89,
0x82, 0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xdf,
0x49, 0x83, 0xc7, 0xb8, 0x49, 0xc1, 0xef, 0x03,
0x44, 0x89, 0x7b, 0x40, 0x48, 0x8b, 0x03, 0x8b,
0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04,
0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0x48,
0x83, 0xc4, 0x28, 0x5b, 0x41, 0x5c, 0x41, 0x5d,
0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xc3, 0x4c, 0x89,
0x54, 0x24, 0x10, 0x4c, 0x89, 0x4c, 0x24, 0x18,
0x48, 0x89, 0x54, 0x24, 0x20, 0x48, 0x85, 0xc0,
0x41, 0x0f, 0x94, 0xc5, 0x8d, 0x45, 0xff, 0x49,
0x8d, 0x76, 0x08, 0x48, 0x63, 0xd0, 0x41, 0xff,
0x50, 0x08, 0x48, 0x89, 0x44, 0x24, 0x08, 0x48,
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x66, 0x85,
0xc0, 0x0f, 0x94, 0xc0, 0x41, 0x84, 0xc5, 0x74,
0x79, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x4c,
0x8b, 0x74, 0x24, 0x10, 0x78, 0x12, 0x48, 0xff,
0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x09, 0x4c,
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x4b, 0x8d, 0x04, 0xf7, 0x48, 0x8b, 0x54, 0x24,
0x08, 0x48, 0x85, 0xd2, 0x4c, 0x8b, 0x74, 0x24,
0x20, 0x48, 0x8b, 0x4c, 0x24, 0x18, 0x74, 0x1f,
0x4d, 0x8d, 0x3c, 0xcf, 0x48, 0x89, 0x10, 0x49,
0x8b, 0x46, 0x18, 0x84, 0xc0, 0x74, 0x78, 0x4c,
0x89, 0xf7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x85, 0xc0, 0x74, 0x6b, 0x4c, 0x89, 0xf8, 0x48,
0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89,
0x8e, 0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xd8,
0x48, 0x83, 0xc0, 0xb8, 0x48, 0xc1, 0xe8, 0x03,
0x89, 0x43, 0x40, 0x31, 0xc0, 0xe9, 0x3d, 0xff,
0xff, 0xff, 0x83, 0xfd, 0x02, 0x41, 0xbd, 0x01,
0x00, 0x00, 0x00, 0x44, 0x0f, 0x43, 0xed, 0x31,
0xed, 0xeb, 0x19, 0x66, 0x66, 0x66, 0x66, 0x2e,
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00,
0x48, 0xff, 0xc5, 0x49, 0x39, 0xed, 0x0f, 0x84,
0x5d, 0xff, 0xff, 0xff, 0x49, 0x8b, 0x3c, 0xee,
0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78, 0xe9, 0x48,
0xff, 0xc8, 0x48, 0x89, 0x07, 0x75, 0xe1, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0xd9, 0x48,
0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c, 0x89, 0xf2,
0x48, 0x83, 0xc4, 0x28, 0x5b, 0x41, 0x5c, 0x41,
0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d,
};
static const Hole _CALL_METHOD_DESCRIPTOR_FAST_code_holes[10] = {
{0x17, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x58, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x82, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0xa1, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0xea, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x114, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0x144, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0x152, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x1b1, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
};
// 0:
// 0: OPARG
// 8: &PyMethodDescr_Type+0x0
// 10: EXECUTOR
// 18: TARGET
// 20: &_Py_Dealloc+0x0
// 28: &_Py_HandlePending+0x0
static const unsigned char _CALL_METHOD_DESCRIPTOR_FAST_data_body[49] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CALL_METHOD_DESCRIPTOR_FAST_data_holes[7] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyMethodDescr_Type, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_HandlePending, 0x0},
};
// _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS
//
// /tmp/tmp2mfmnab2/_CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 48 83 ec 28 subq $0x28, %rsp
// e: 49 89 f7 movq %rsi, %r15
// 11: 48 89 fb movq %rdi, %rbx
// 14: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x1b <_JIT_ENTRY+0x1b>
// 0000000000000017: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 1b: 0f b7 f9 movzwl %cx, %edi
// 1e: 89 f8 movl %edi, %eax
// 20: f7 d0 notl %eax
// 22: 4c 63 c8 movslq %eax, %r9
// 25: 4a 8b 04 ce movq (%rsi,%r9,8), %rax
// 29: be fe ff ff ff movl $0xfffffffe, %esi # imm = 0xFFFFFFFE
// 2e: 29 fe subl %edi, %esi
// 30: 4c 63 d6 movslq %esi, %r10
// 33: 0f b7 c9 movzwl %cx, %ecx
// 36: 48 89 ce movq %rcx, %rsi
// 39: 48 f7 de negq %rsi
// 3c: 8d 6f 01 leal 0x1(%rdi), %ebp
// 3f: 48 85 c0 testq %rax, %rax
// 42: 48 f7 d1 notq %rcx
// 45: 48 0f 44 ce cmoveq %rsi, %rcx
// 49: 0f 44 ef cmovel %edi, %ebp
// 4c: 4f 8b 24 d7 movq (%r15,%r10,8), %r12
// 50: 49 8b 74 24 08 movq 0x8(%r12), %rsi
// 55: 48 3b 35 00 00 00 00 cmpq (%rip), %rsi # 0x5c <_JIT_ENTRY+0x5c>
// 0000000000000058: R_X86_64_REX_GOTPCRELX PyMethodDescr_Type-0x4
// 5c: 75 21 jne 0x7f <_JIT_ENTRY+0x7f>
// 5e: 4d 8b 44 24 28 movq 0x28(%r12), %r8
// 63: 41 81 78 10 82 00 00 00 cmpl $0x82, 0x10(%r8)
// 6b: 75 12 jne 0x7f <_JIT_ENTRY+0x7f>
// 6d: 4d 8d 34 cf leaq (%r15,%rcx,8), %r14
// 71: 49 8b 3e movq (%r14), %rdi
// 74: 48 8b 4f 08 movq 0x8(%rdi), %rcx
// 78: 49 3b 4c 24 10 cmpq 0x10(%r12), %rcx
// 7d: 74 3f je 0xbe <_JIT_ENTRY+0xbe>
// 7f: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x86 <_JIT_ENTRY+0x86>
// 0000000000000082: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 86: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 8d: 49 29 df subq %rbx, %r15
// 90: 49 83 c7 b8 addq $-0x48, %r15
// 94: 49 c1 ef 03 shrq $0x3, %r15
// 98: 44 89 7b 40 movl %r15d, 0x40(%rbx)
// 9c: 48 8b 03 movq (%rbx), %rax
// 9f: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0xa5 <_JIT_ENTRY+0xa5>
// 00000000000000a1: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// a5: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// a9: 48 05 c8 00 00 00 addq $0xc8, %rax
// af: 48 83 c4 28 addq $0x28, %rsp
// b3: 5b popq %rbx
// b4: 41 5c popq %r12
// b6: 41 5d popq %r13
// b8: 41 5e popq %r14
// ba: 41 5f popq %r15
// bc: 5d popq %rbp
// bd: c3 retq
// be: 4c 89 54 24 10 movq %r10, 0x10(%rsp)
// c3: 4c 89 4c 24 18 movq %r9, 0x18(%rsp)
// c8: 48 89 54 24 20 movq %rdx, 0x20(%rsp)
// cd: 48 85 c0 testq %rax, %rax
// d0: 41 0f 94 c5 sete %r13b
// d4: 8d 45 ff leal -0x1(%rbp), %eax
// d7: 49 8d 76 08 leaq 0x8(%r14), %rsi
// db: 48 63 d0 movslq %eax, %rdx
// de: 31 c9 xorl %ecx, %ecx
// e0: 41 ff 50 08 callq *0x8(%r8)
// e4: 48 89 44 24 08 movq %rax, 0x8(%rsp)
// e9: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xf0 <_JIT_ENTRY+0xf0>
// 00000000000000ec: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// f0: 66 85 c0 testw %ax, %ax
// f3: 0f 94 c0 sete %al
// f6: 41 84 c5 testb %al, %r13b
// f9: 74 79 je 0x174 <_JIT_ENTRY+0x174>
// fb: 49 8b 04 24 movq (%r12), %rax
// ff: 85 c0 testl %eax, %eax
// 101: 4c 8b 74 24 10 movq 0x10(%rsp), %r14
// 106: 78 12 js 0x11a <_JIT_ENTRY+0x11a>
// 108: 48 ff c8 decq %rax
// 10b: 49 89 04 24 movq %rax, (%r12)
// 10f: 75 09 jne 0x11a <_JIT_ENTRY+0x11a>
// 111: 4c 89 e7 movq %r12, %rdi
// 114: ff 15 00 00 00 00 callq *(%rip) # 0x11a <_JIT_ENTRY+0x11a>
// 0000000000000116: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 11a: 4b 8d 04 f7 leaq (%r15,%r14,8), %rax
// 11e: 48 8b 54 24 08 movq 0x8(%rsp), %rdx
// 123: 48 85 d2 testq %rdx, %rdx
// 126: 4c 8b 74 24 20 movq 0x20(%rsp), %r14
// 12b: 48 8b 4c 24 18 movq 0x18(%rsp), %rcx
// 130: 74 1f je 0x151 <_JIT_ENTRY+0x151>
// 132: 4d 8d 3c cf leaq (%r15,%rcx,8), %r15
// 136: 48 89 10 movq %rdx, (%rax)
// 139: 49 8b 46 18 movq 0x18(%r14), %rax
// 13d: 84 c0 testb %al, %al
// 13f: 74 76 je 0x1b7 <_JIT_ENTRY+0x1b7>
// 141: 4c 89 f7 movq %r14, %rdi
// 144: ff 15 00 00 00 00 callq *(%rip) # 0x14a <_JIT_ENTRY+0x14a>
// 0000000000000146: R_X86_64_GOTPCRELX _Py_HandlePending-0x4
// 14a: 85 c0 testl %eax, %eax
// 14c: 74 69 je 0x1b7 <_JIT_ENTRY+0x1b7>
// 14e: 4c 89 f8 movq %r15, %rax
// 151: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x158 <_JIT_ENTRY+0x158>
// 0000000000000154: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 158: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14)
// 15f: 48 29 d8 subq %rbx, %rax
// 162: 48 83 c0 b8 addq $-0x48, %rax
// 166: 48 c1 e8 03 shrq $0x3, %rax
// 16a: 89 43 40 movl %eax, 0x40(%rbx)
// 16d: 31 c0 xorl %eax, %eax
// 16f: e9 3b ff ff ff jmp 0xaf <_JIT_ENTRY+0xaf>
// 174: 83 fd 02 cmpl $0x2, %ebp
// 177: 41 bd 01 00 00 00 movl $0x1, %r13d
// 17d: 44 0f 43 ed cmovael %ebp, %r13d
// 181: 31 ed xorl %ebp, %ebp
// 183: eb 17 jmp 0x19c <_JIT_ENTRY+0x19c>
// 185: 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax)
// 190: 48 ff c5 incq %rbp
// 193: 49 39 ed cmpq %rbp, %r13
// 196: 0f 84 5f ff ff ff je 0xfb <_JIT_ENTRY+0xfb>
// 19c: 49 8b 3c ee movq (%r14,%rbp,8), %rdi
// 1a0: 48 8b 07 movq (%rdi), %rax
// 1a3: 85 c0 testl %eax, %eax
// 1a5: 78 e9 js 0x190 <_JIT_ENTRY+0x190>
// 1a7: 48 ff c8 decq %rax
// 1aa: 48 89 07 movq %rax, (%rdi)
// 1ad: 75 e1 jne 0x190 <_JIT_ENTRY+0x190>
// 1af: ff 15 00 00 00 00 callq *(%rip) # 0x1b5 <_JIT_ENTRY+0x1b5>
// 00000000000001b1: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 1b5: eb d9 jmp 0x190 <_JIT_ENTRY+0x190>
// 1b7: 48 89 df movq %rbx, %rdi
// 1ba: 4c 89 fe movq %r15, %rsi
// 1bd: 4c 89 f2 movq %r14, %rdx
// 1c0: 48 83 c4 28 addq $0x28, %rsp
// 1c4: 5b popq %rbx
// 1c5: 41 5c popq %r12
// 1c7: 41 5d popq %r13
// 1c9: 41 5e popq %r14
// 1cb: 41 5f popq %r15
// 1cd: 5d popq %rbp
// 1ce: ff 25 00 00 00 00 jmpq *(%rip) # 0x1d4 <_JIT_ENTRY+0x1d4>
// 00000000000001d0: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 1ce:
static const unsigned char _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS_code_body[463] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x48, 0x83, 0xec, 0x28, 0x49, 0x89,
0xf7, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x0d, 0x00,
0x00, 0x00, 0x00, 0x0f, 0xb7, 0xf9, 0x89, 0xf8,
0xf7, 0xd0, 0x4c, 0x63, 0xc8, 0x4a, 0x8b, 0x04,
0xce, 0xbe, 0xfe, 0xff, 0xff, 0xff, 0x29, 0xfe,
0x4c, 0x63, 0xd6, 0x0f, 0xb7, 0xc9, 0x48, 0x89,
0xce, 0x48, 0xf7, 0xde, 0x8d, 0x6f, 0x01, 0x48,
0x85, 0xc0, 0x48, 0xf7, 0xd1, 0x48, 0x0f, 0x44,
0xce, 0x0f, 0x44, 0xef, 0x4f, 0x8b, 0x24, 0xd7,
0x49, 0x8b, 0x74, 0x24, 0x08, 0x48, 0x3b, 0x35,
0x00, 0x00, 0x00, 0x00, 0x75, 0x21, 0x4d, 0x8b,
0x44, 0x24, 0x28, 0x41, 0x81, 0x78, 0x10, 0x82,
0x00, 0x00, 0x00, 0x75, 0x12, 0x4d, 0x8d, 0x34,
0xcf, 0x49, 0x8b, 0x3e, 0x48, 0x8b, 0x4f, 0x08,
0x49, 0x3b, 0x4c, 0x24, 0x10, 0x74, 0x3f, 0x48,
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x89,
0x82, 0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xdf,
0x49, 0x83, 0xc7, 0xb8, 0x49, 0xc1, 0xef, 0x03,
0x44, 0x89, 0x7b, 0x40, 0x48, 0x8b, 0x03, 0x8b,
0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04,
0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0x48,
0x83, 0xc4, 0x28, 0x5b, 0x41, 0x5c, 0x41, 0x5d,
0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xc3, 0x4c, 0x89,
0x54, 0x24, 0x10, 0x4c, 0x89, 0x4c, 0x24, 0x18,
0x48, 0x89, 0x54, 0x24, 0x20, 0x48, 0x85, 0xc0,
0x41, 0x0f, 0x94, 0xc5, 0x8d, 0x45, 0xff, 0x49,
0x8d, 0x76, 0x08, 0x48, 0x63, 0xd0, 0x31, 0xc9,
0x41, 0xff, 0x50, 0x08, 0x48, 0x89, 0x44, 0x24,
0x08, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x66, 0x85, 0xc0, 0x0f, 0x94, 0xc0, 0x41, 0x84,
0xc5, 0x74, 0x79, 0x49, 0x8b, 0x04, 0x24, 0x85,
0xc0, 0x4c, 0x8b, 0x74, 0x24, 0x10, 0x78, 0x12,
0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, 0x75,
0x09, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00,
0x00, 0x00, 0x4b, 0x8d, 0x04, 0xf7, 0x48, 0x8b,
0x54, 0x24, 0x08, 0x48, 0x85, 0xd2, 0x4c, 0x8b,
0x74, 0x24, 0x20, 0x48, 0x8b, 0x4c, 0x24, 0x18,
0x74, 0x1f, 0x4d, 0x8d, 0x3c, 0xcf, 0x48, 0x89,
0x10, 0x49, 0x8b, 0x46, 0x18, 0x84, 0xc0, 0x74,
0x76, 0x4c, 0x89, 0xf7, 0xff, 0x15, 0x00, 0x00,
0x00, 0x00, 0x85, 0xc0, 0x74, 0x69, 0x4c, 0x89,
0xf8, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00,
0x49, 0x89, 0x8e, 0x28, 0x01, 0x00, 0x00, 0x48,
0x29, 0xd8, 0x48, 0x83, 0xc0, 0xb8, 0x48, 0xc1,
0xe8, 0x03, 0x89, 0x43, 0x40, 0x31, 0xc0, 0xe9,
0x3b, 0xff, 0xff, 0xff, 0x83, 0xfd, 0x02, 0x41,
0xbd, 0x01, 0x00, 0x00, 0x00, 0x44, 0x0f, 0x43,
0xed, 0x31, 0xed, 0xeb, 0x17, 0x66, 0x66, 0x2e,
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00,
0x48, 0xff, 0xc5, 0x49, 0x39, 0xed, 0x0f, 0x84,
0x5f, 0xff, 0xff, 0xff, 0x49, 0x8b, 0x3c, 0xee,
0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78, 0xe9, 0x48,
0xff, 0xc8, 0x48, 0x89, 0x07, 0x75, 0xe1, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0xd9, 0x48,
0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c, 0x89, 0xf2,
0x48, 0x83, 0xc4, 0x28, 0x5b, 0x41, 0x5c, 0x41,
0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d,
};
static const Hole _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS_code_holes[10] = {
{0x17, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x58, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x82, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0xa1, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0xec, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x116, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0x146, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0x154, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x1b1, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
};
// 0:
// 0: OPARG
// 8: &PyMethodDescr_Type+0x0
// 10: EXECUTOR
// 18: TARGET
// 20: &_Py_Dealloc+0x0
// 28: &_Py_HandlePending+0x0
static const unsigned char _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS_data_body[49] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS_data_holes[7] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyMethodDescr_Type, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_HandlePending, 0x0},
};
// _CALL_METHOD_DESCRIPTOR_NOARGS
//
// /tmp/tmp2mfmnab2/_CALL_METHOD_DESCRIPTOR_NOARGS.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 48 83 ec 18 subq $0x18, %rsp
// e: 48 89 f3 movq %rsi, %rbx
// 11: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x18 <_JIT_ENTRY+0x18>
// 0000000000000014: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 18: 0f b7 c8 movzwl %ax, %ecx
// 1b: 89 ce movl %ecx, %esi
// 1d: f7 d6 notl %esi
// 1f: 48 63 ee movslq %esi, %rbp
// 22: 0f b7 c0 movzwl %ax, %eax
// 25: 48 89 c6 movq %rax, %rsi
// 28: 48 f7 de negq %rsi
// 2b: 45 31 c0 xorl %r8d, %r8d
// 2e: 66 85 c0 testw %ax, %ax
// 31: 41 0f 94 c0 sete %r8b
// 35: 45 31 c9 xorl %r9d, %r9d
// 38: 66 83 f8 01 cmpw $0x1, %ax
// 3c: 41 0f 94 c1 sete %r9b
// 40: 48 83 3c eb 00 cmpq $0x0, (%rbx,%rbp,8)
// 45: 49 89 d7 movq %rdx, %r15
// 48: 48 f7 d0 notq %rax
// 4b: 48 0f 44 c6 cmoveq %rsi, %rax
// 4f: 49 89 fe movq %rdi, %r14
// 52: 45 0f 44 c1 cmovel %r9d, %r8d
// 56: 41 80 f8 01 cmpb $0x1, %r8b
// 5a: 0f 85 fa 00 00 00 jne 0x15a <_JIT_ENTRY+0x15a>
// 60: ba fe ff ff ff movl $0xfffffffe, %edx # imm = 0xFFFFFFFE
// 65: 29 ca subl %ecx, %edx
// 67: 4c 63 ea movslq %edx, %r13
// 6a: 4e 8b 24 eb movq (%rbx,%r13,8), %r12
// 6e: 49 8b 4c 24 08 movq 0x8(%r12), %rcx
// 73: 48 3b 0d 00 00 00 00 cmpq (%rip), %rcx # 0x7a <_JIT_ENTRY+0x7a>
// 0000000000000076: R_X86_64_REX_GOTPCRELX PyMethodDescr_Type-0x4
// 7a: 0f 85 da 00 00 00 jne 0x15a <_JIT_ENTRY+0x15a>
// 80: 48 8b 14 c3 movq (%rbx,%rax,8), %rdx
// 84: 48 8b 42 08 movq 0x8(%rdx), %rax
// 88: 49 3b 44 24 10 cmpq 0x10(%r12), %rax
// 8d: 0f 85 c7 00 00 00 jne 0x15a <_JIT_ENTRY+0x15a>
// 93: 49 8b 44 24 28 movq 0x28(%r12), %rax
// 98: 83 78 10 04 cmpl $0x4, 0x10(%rax)
// 9c: 0f 85 b8 00 00 00 jne 0x15a <_JIT_ENTRY+0x15a>
// a2: 4c 8b 40 08 movq 0x8(%rax), %r8
// a6: 41 8b 47 34 movl 0x34(%r15), %eax
// aa: 8d 48 ff leal -0x1(%rax), %ecx
// ad: 41 89 4f 34 movl %ecx, 0x34(%r15)
// b1: 85 c0 testl %eax, %eax
// b3: 48 89 54 24 08 movq %rdx, 0x8(%rsp)
// b8: 0f 8e db 00 00 00 jle 0x199 <_JIT_ENTRY+0x199>
// be: 48 8b 7c 24 08 movq 0x8(%rsp), %rdi
// c3: 31 f6 xorl %esi, %esi
// c5: 41 ff d0 callq *%r8
// c8: 48 8b 7c 24 08 movq 0x8(%rsp), %rdi
// cd: 41 ff 47 34 incl 0x34(%r15)
// d1: 48 8b 0f movq (%rdi), %rcx
// d4: 85 c9 testl %ecx, %ecx
// d6: 78 18 js 0xf0 <_JIT_ENTRY+0xf0>
// d8: 48 ff c9 decq %rcx
// db: 48 89 0f movq %rcx, (%rdi)
// de: 75 10 jne 0xf0 <_JIT_ENTRY+0xf0>
// e0: 48 89 44 24 08 movq %rax, 0x8(%rsp)
// e5: ff 15 00 00 00 00 callq *(%rip) # 0xeb <_JIT_ENTRY+0xeb>
// 00000000000000e7: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// eb: 48 8b 44 24 08 movq 0x8(%rsp), %rax
// f0: 49 8b 0c 24 movq (%r12), %rcx
// f4: 85 c9 testl %ecx, %ecx
// f6: 78 18 js 0x110 <_JIT_ENTRY+0x110>
// f8: 48 ff c9 decq %rcx
// fb: 49 89 0c 24 movq %rcx, (%r12)
// ff: 75 0f jne 0x110 <_JIT_ENTRY+0x110>
// 101: 4c 89 e7 movq %r12, %rdi
// 104: 49 89 c4 movq %rax, %r12
// 107: ff 15 00 00 00 00 callq *(%rip) # 0x10d <_JIT_ENTRY+0x10d>
// 0000000000000109: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 10d: 4c 89 e0 movq %r12, %rax
// 110: 4a 8d 0c eb leaq (%rbx,%r13,8), %rcx
// 114: 48 85 c0 testq %rax, %rax
// 117: 0f 84 9f 00 00 00 je 0x1bc <_JIT_ENTRY+0x1bc>
// 11d: 48 8d 1c eb leaq (%rbx,%rbp,8), %rbx
// 121: 48 89 01 movq %rax, (%rcx)
// 124: 49 8b 47 18 movq 0x18(%r15), %rax
// 128: 84 c0 testb %al, %al
// 12a: 74 11 je 0x13d <_JIT_ENTRY+0x13d>
// 12c: 4c 89 ff movq %r15, %rdi
// 12f: ff 15 00 00 00 00 callq *(%rip) # 0x135 <_JIT_ENTRY+0x135>
// 0000000000000131: R_X86_64_GOTPCRELX _Py_HandlePending-0x4
// 135: 85 c0 testl %eax, %eax
// 137: 0f 85 82 00 00 00 jne 0x1bf <_JIT_ENTRY+0x1bf>
// 13d: 4c 89 f7 movq %r14, %rdi
// 140: 48 89 de movq %rbx, %rsi
// 143: 4c 89 fa movq %r15, %rdx
// 146: 48 83 c4 18 addq $0x18, %rsp
// 14a: 5b popq %rbx
// 14b: 41 5c popq %r12
// 14d: 41 5d popq %r13
// 14f: 41 5e popq %r14
// 151: 41 5f popq %r15
// 153: 5d popq %rbp
// 154: ff 25 00 00 00 00 jmpq *(%rip) # 0x15a <_JIT_ENTRY+0x15a>
// 0000000000000156: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 15a: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x161 <_JIT_ENTRY+0x161>
// 000000000000015d: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 161: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 168: 4c 29 f3 subq %r14, %rbx
// 16b: 48 83 c3 b8 addq $-0x48, %rbx
// 16f: 48 c1 eb 03 shrq $0x3, %rbx
// 173: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 177: 49 8b 06 movq (%r14), %rax
// 17a: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x180 <_JIT_ENTRY+0x180>
// 000000000000017c: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 180: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 184: 48 05 c8 00 00 00 addq $0xc8, %rax
// 18a: 48 83 c4 18 addq $0x18, %rsp
// 18e: 5b popq %rbx
// 18f: 41 5c popq %r12
// 191: 41 5d popq %r13
// 193: 41 5e popq %r14
// 195: 41 5f popq %r15
// 197: 5d popq %rbp
// 198: c3 retq
// 199: 48 8d 35 00 00 00 00 leaq (%rip), %rsi # 0x1a0 <_JIT_ENTRY+0x1a0>
// 000000000000019c: R_X86_64_PC32 .L.str.20-0x4
// 1a0: 4c 89 ff movq %r15, %rdi
// 1a3: 4c 89 44 24 10 movq %r8, 0x10(%rsp)
// 1a8: ff 15 00 00 00 00 callq *(%rip) # 0x1ae <_JIT_ENTRY+0x1ae>
// 00000000000001aa: R_X86_64_GOTPCRELX _Py_CheckRecursiveCall-0x4
// 1ae: 4c 8b 44 24 10 movq 0x10(%rsp), %r8
// 1b3: 85 c0 testl %eax, %eax
// 1b5: 75 08 jne 0x1bf <_JIT_ENTRY+0x1bf>
// 1b7: e9 02 ff ff ff jmp 0xbe <_JIT_ENTRY+0xbe>
// 1bc: 48 89 cb movq %rcx, %rbx
// 1bf: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x1c6 <_JIT_ENTRY+0x1c6>
// 00000000000001c2: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 1c6: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 1cd: 4c 29 f3 subq %r14, %rbx
// 1d0: 48 83 c3 b8 addq $-0x48, %rbx
// 1d4: 48 c1 eb 03 shrq $0x3, %rbx
// 1d8: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 1dc: 31 c0 xorl %eax, %eax
// 1de: eb aa jmp 0x18a <_JIT_ENTRY+0x18a>
// 1e0:
static const unsigned char _CALL_METHOD_DESCRIPTOR_NOARGS_code_body[481] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x48, 0x83, 0xec, 0x18, 0x48, 0x89,
0xf3, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x0f, 0xb7, 0xc8, 0x89, 0xce, 0xf7, 0xd6, 0x48,
0x63, 0xee, 0x0f, 0xb7, 0xc0, 0x48, 0x89, 0xc6,
0x48, 0xf7, 0xde, 0x45, 0x31, 0xc0, 0x66, 0x85,
0xc0, 0x41, 0x0f, 0x94, 0xc0, 0x45, 0x31, 0xc9,
0x66, 0x83, 0xf8, 0x01, 0x41, 0x0f, 0x94, 0xc1,
0x48, 0x83, 0x3c, 0xeb, 0x00, 0x49, 0x89, 0xd7,
0x48, 0xf7, 0xd0, 0x48, 0x0f, 0x44, 0xc6, 0x49,
0x89, 0xfe, 0x45, 0x0f, 0x44, 0xc1, 0x41, 0x80,
0xf8, 0x01, 0x0f, 0x85, 0xfa, 0x00, 0x00, 0x00,
0xba, 0xfe, 0xff, 0xff, 0xff, 0x29, 0xca, 0x4c,
0x63, 0xea, 0x4e, 0x8b, 0x24, 0xeb, 0x49, 0x8b,
0x4c, 0x24, 0x08, 0x48, 0x3b, 0x0d, 0x00, 0x00,
0x00, 0x00, 0x0f, 0x85, 0xda, 0x00, 0x00, 0x00,
0x48, 0x8b, 0x14, 0xc3, 0x48, 0x8b, 0x42, 0x08,
0x49, 0x3b, 0x44, 0x24, 0x10, 0x0f, 0x85, 0xc7,
0x00, 0x00, 0x00, 0x49, 0x8b, 0x44, 0x24, 0x28,
0x83, 0x78, 0x10, 0x04, 0x0f, 0x85, 0xb8, 0x00,
0x00, 0x00, 0x4c, 0x8b, 0x40, 0x08, 0x41, 0x8b,
0x47, 0x34, 0x8d, 0x48, 0xff, 0x41, 0x89, 0x4f,
0x34, 0x85, 0xc0, 0x48, 0x89, 0x54, 0x24, 0x08,
0x0f, 0x8e, 0xdb, 0x00, 0x00, 0x00, 0x48, 0x8b,
0x7c, 0x24, 0x08, 0x31, 0xf6, 0x41, 0xff, 0xd0,
0x48, 0x8b, 0x7c, 0x24, 0x08, 0x41, 0xff, 0x47,
0x34, 0x48, 0x8b, 0x0f, 0x85, 0xc9, 0x78, 0x18,
0x48, 0xff, 0xc9, 0x48, 0x89, 0x0f, 0x75, 0x10,
0x48, 0x89, 0x44, 0x24, 0x08, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x48, 0x8b, 0x44, 0x24, 0x08,
0x49, 0x8b, 0x0c, 0x24, 0x85, 0xc9, 0x78, 0x18,
0x48, 0xff, 0xc9, 0x49, 0x89, 0x0c, 0x24, 0x75,
0x0f, 0x4c, 0x89, 0xe7, 0x49, 0x89, 0xc4, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xe0,
0x4a, 0x8d, 0x0c, 0xeb, 0x48, 0x85, 0xc0, 0x0f,
0x84, 0x9f, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x1c,
0xeb, 0x48, 0x89, 0x01, 0x49, 0x8b, 0x47, 0x18,
0x84, 0xc0, 0x74, 0x11, 0x4c, 0x89, 0xff, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0x85, 0xc0, 0x0f,
0x85, 0x82, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xf7,
0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, 0x48, 0x83,
0xc4, 0x18, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41,
0x5e, 0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00, 0x00,
0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00, 0x00,
0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8, 0x48,
0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, 0x49,
0x8b, 0x06, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00,
0x48, 0x8d, 0x04, 0x48, 0x48, 0x05, 0xc8, 0x00,
0x00, 0x00, 0x48, 0x83, 0xc4, 0x18, 0x5b, 0x41,
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d,
0xc3, 0x48, 0x8d, 0x35, 0x00, 0x00, 0x00, 0x00,
0x4c, 0x89, 0xff, 0x4c, 0x89, 0x44, 0x24, 0x10,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x8b,
0x44, 0x24, 0x10, 0x85, 0xc0, 0x75, 0x08, 0xe9,
0x02, 0xff, 0xff, 0xff, 0x48, 0x89, 0xcb, 0x48,
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89,
0x87, 0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, 0xf3,
0x48, 0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb, 0x03,
0x41, 0x89, 0x5e, 0x40, 0x31, 0xc0, 0xeb, 0xaa,
};
static const Hole _CALL_METHOD_DESCRIPTOR_NOARGS_code_holes[12] = {
{0x14, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0x76, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0xe7, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
{0x109, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
{0x131, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x34},
{0x156, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c},
{0x15d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x44},
{0x17c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4c},
{0x19c, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4},
{0x1aa, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x54},
{0x1c2, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x44},
};
// 0: ' while calling a Python object\x00'
// 1f: 00
// 20: OPARG
// 28: &PyMethodDescr_Type+0x0
// 30: &_Py_Dealloc+0x0
// 38: &_Py_HandlePending+0x0
// 40: CONTINUE
// 48: EXECUTOR
// 50: TARGET
// 58: &_Py_CheckRecursiveCall+0x0
static const unsigned char _CALL_METHOD_DESCRIPTOR_NOARGS_data_body[97] = {
0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x63,
0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x61,
0x20, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x20,
0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CALL_METHOD_DESCRIPTOR_NOARGS_data_holes[9] = {
{0x20, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyMethodDescr_Type, 0x0},
{0x30, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x38, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_HandlePending, 0x0},
{0x40, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x48, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x50, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x58, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_CheckRecursiveCall, 0x0},
};
// _CALL_METHOD_DESCRIPTOR_O
//
// /tmp/tmp2mfmnab2/_CALL_METHOD_DESCRIPTOR_O.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 48 83 ec 18 subq $0x18, %rsp
// e: 49 89 d7 movq %rdx, %r15
// 11: 49 89 f6 movq %rsi, %r14
// 14: 48 89 fb movq %rdi, %rbx
// 17: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x1e <_JIT_ENTRY+0x1e>
// 000000000000001a: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 1e: 0f b7 c8 movzwl %ax, %ecx
// 21: 89 ca movl %ecx, %edx
// 23: f7 d2 notl %edx
// 25: 48 63 ea movslq %edx, %rbp
// 28: 31 d2 xorl %edx, %edx
// 2a: 66 83 f8 01 cmpw $0x1, %ax
// 2e: 0f 94 c2 sete %dl
// 31: 31 f6 xorl %esi, %esi
// 33: 66 83 f8 02 cmpw $0x2, %ax
// 37: 40 0f 94 c6 sete %sil
// 3b: 0f b7 c0 movzwl %ax, %eax
// 3e: 48 89 c7 movq %rax, %rdi
// 41: 48 f7 df negq %rdi
// 44: 49 83 3c ee 00 cmpq $0x0, (%r14,%rbp,8)
// 49: 0f 44 d6 cmovel %esi, %edx
// 4c: 48 f7 d0 notq %rax
// 4f: 48 0f 44 c7 cmoveq %rdi, %rax
// 53: 80 fa 01 cmpb $0x1, %dl
// 56: 75 36 jne 0x8e <_JIT_ENTRY+0x8e>
// 58: ba fe ff ff ff movl $0xfffffffe, %edx # imm = 0xFFFFFFFE
// 5d: 29 ca subl %ecx, %edx
// 5f: 4c 63 ea movslq %edx, %r13
// 62: 4f 8b 24 ee movq (%r14,%r13,8), %r12
// 66: 49 8b 4c 24 08 movq 0x8(%r12), %rcx
// 6b: 48 3b 0d 00 00 00 00 cmpq (%rip), %rcx # 0x72 <_JIT_ENTRY+0x72>
// 000000000000006e: R_X86_64_REX_GOTPCRELX PyMethodDescr_Type-0x4
// 72: 75 1a jne 0x8e <_JIT_ENTRY+0x8e>
// 74: 49 8b 4c 24 28 movq 0x28(%r12), %rcx
// 79: 83 79 10 08 cmpl $0x8, 0x10(%rcx)
// 7d: 75 0f jne 0x8e <_JIT_ENTRY+0x8e>
// 7f: 49 8b 3c c6 movq (%r14,%rax,8), %rdi
// 83: 48 8b 57 08 movq 0x8(%rdi), %rdx
// 87: 49 3b 54 24 10 cmpq 0x10(%r12), %rdx
// 8c: 74 3f je 0xcd <_JIT_ENTRY+0xcd>
// 8e: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x95 <_JIT_ENTRY+0x95>
// 0000000000000091: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 95: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 9c: 49 29 de subq %rbx, %r14
// 9f: 49 83 c6 b8 addq $-0x48, %r14
// a3: 49 c1 ee 03 shrq $0x3, %r14
// a7: 44 89 73 40 movl %r14d, 0x40(%rbx)
// ab: 48 8b 03 movq (%rbx), %rax
// ae: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0xb4 <_JIT_ENTRY+0xb4>
// 00000000000000b0: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// b4: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// b8: 48 05 c8 00 00 00 addq $0xc8, %rax
// be: 48 83 c4 18 addq $0x18, %rsp
// c2: 5b popq %rbx
// c3: 41 5c popq %r12
// c5: 41 5d popq %r13
// c7: 41 5e popq %r14
// c9: 41 5f popq %r15
// cb: 5d popq %rbp
// cc: c3 retq
// cd: 49 8b 74 c6 08 movq 0x8(%r14,%rax,8), %rsi
// d2: 48 8b 51 08 movq 0x8(%rcx), %rdx
// d6: 41 8b 47 34 movl 0x34(%r15), %eax
// da: 8d 48 ff leal -0x1(%rax), %ecx
// dd: 41 89 4f 34 movl %ecx, 0x34(%r15)
// e1: 85 c0 testl %eax, %eax
// e3: 48 89 74 24 08 movq %rsi, 0x8(%rsp)
// e8: 48 89 3c 24 movq %rdi, (%rsp)
// ec: 0f 8e af 00 00 00 jle 0x1a1 <_JIT_ENTRY+0x1a1>
// f2: 48 8b 3c 24 movq (%rsp), %rdi
// f6: ff d2 callq *%rdx
// f8: 48 8b 3c 24 movq (%rsp), %rdi
// fc: 41 ff 47 34 incl 0x34(%r15)
// 100: 48 8b 0f movq (%rdi), %rcx
// 103: 85 c9 testl %ecx, %ecx
// 105: 78 16 js 0x11d <_JIT_ENTRY+0x11d>
// 107: 48 ff c9 decq %rcx
// 10a: 48 89 0f movq %rcx, (%rdi)
// 10d: 75 0e jne 0x11d <_JIT_ENTRY+0x11d>
// 10f: 48 89 04 24 movq %rax, (%rsp)
// 113: ff 15 00 00 00 00 callq *(%rip) # 0x119 <_JIT_ENTRY+0x119>
// 0000000000000115: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 119: 48 8b 04 24 movq (%rsp), %rax
// 11d: 48 8b 7c 24 08 movq 0x8(%rsp), %rdi
// 122: 48 8b 0f movq (%rdi), %rcx
// 125: 85 c9 testl %ecx, %ecx
// 127: 78 16 js 0x13f <_JIT_ENTRY+0x13f>
// 129: 48 ff c9 decq %rcx
// 12c: 48 89 0f movq %rcx, (%rdi)
// 12f: 75 0e jne 0x13f <_JIT_ENTRY+0x13f>
// 131: 48 89 04 24 movq %rax, (%rsp)
// 135: ff 15 00 00 00 00 callq *(%rip) # 0x13b <_JIT_ENTRY+0x13b>
// 0000000000000137: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 13b: 48 8b 04 24 movq (%rsp), %rax
// 13f: 49 8b 0c 24 movq (%r12), %rcx
// 143: 85 c9 testl %ecx, %ecx
// 145: 78 18 js 0x15f <_JIT_ENTRY+0x15f>
// 147: 48 ff c9 decq %rcx
// 14a: 49 89 0c 24 movq %rcx, (%r12)
// 14e: 75 0f jne 0x15f <_JIT_ENTRY+0x15f>
// 150: 4c 89 e7 movq %r12, %rdi
// 153: 49 89 c4 movq %rax, %r12
// 156: ff 15 00 00 00 00 callq *(%rip) # 0x15c <_JIT_ENTRY+0x15c>
// 0000000000000158: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 15c: 4c 89 e0 movq %r12, %rax
// 15f: 4b 8d 0c ee leaq (%r14,%r13,8), %rcx
// 163: 48 85 c0 testq %rax, %rax
// 166: 74 61 je 0x1c9 <_JIT_ENTRY+0x1c9>
// 168: 4d 8d 34 ee leaq (%r14,%rbp,8), %r14
// 16c: 48 89 01 movq %rax, (%rcx)
// 16f: 49 8b 47 18 movq 0x18(%r15), %rax
// 173: 84 c0 testb %al, %al
// 175: 74 0d je 0x184 <_JIT_ENTRY+0x184>
// 177: 4c 89 ff movq %r15, %rdi
// 17a: ff 15 00 00 00 00 callq *(%rip) # 0x180 <_JIT_ENTRY+0x180>
// 000000000000017c: R_X86_64_GOTPCRELX _Py_HandlePending-0x4
// 180: 85 c0 testl %eax, %eax
// 182: 75 48 jne 0x1cc <_JIT_ENTRY+0x1cc>
// 184: 48 89 df movq %rbx, %rdi
// 187: 4c 89 f6 movq %r14, %rsi
// 18a: 4c 89 fa movq %r15, %rdx
// 18d: 48 83 c4 18 addq $0x18, %rsp
// 191: 5b popq %rbx
// 192: 41 5c popq %r12
// 194: 41 5d popq %r13
// 196: 41 5e popq %r14
// 198: 41 5f popq %r15
// 19a: 5d popq %rbp
// 19b: ff 25 00 00 00 00 jmpq *(%rip) # 0x1a1 <_JIT_ENTRY+0x1a1>
// 000000000000019d: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 1a1: 48 8d 35 00 00 00 00 leaq (%rip), %rsi # 0x1a8 <_JIT_ENTRY+0x1a8>
// 00000000000001a4: R_X86_64_PC32 .L.str.20-0x4
// 1a8: 4c 89 ff movq %r15, %rdi
// 1ab: 48 89 54 24 10 movq %rdx, 0x10(%rsp)
// 1b0: ff 15 00 00 00 00 callq *(%rip) # 0x1b6 <_JIT_ENTRY+0x1b6>
// 00000000000001b2: R_X86_64_GOTPCRELX _Py_CheckRecursiveCall-0x4
// 1b6: 48 8b 54 24 10 movq 0x10(%rsp), %rdx
// 1bb: 48 8b 74 24 08 movq 0x8(%rsp), %rsi
// 1c0: 85 c0 testl %eax, %eax
// 1c2: 75 08 jne 0x1cc <_JIT_ENTRY+0x1cc>
// 1c4: e9 29 ff ff ff jmp 0xf2 <_JIT_ENTRY+0xf2>
// 1c9: 49 89 ce movq %rcx, %r14
// 1cc: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x1d3 <_JIT_ENTRY+0x1d3>
// 00000000000001cf: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 1d3: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 1da: 49 29 de subq %rbx, %r14
// 1dd: 49 83 c6 b8 addq $-0x48, %r14
// 1e1: 49 c1 ee 03 shrq $0x3, %r14
// 1e5: 44 89 73 40 movl %r14d, 0x40(%rbx)
// 1e9: 31 c0 xorl %eax, %eax
// 1eb: e9 ce fe ff ff jmp 0xbe <_JIT_ENTRY+0xbe>
// 1f0:
static const unsigned char _CALL_METHOD_DESCRIPTOR_O_code_body[497] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x48, 0x83, 0xec, 0x18, 0x49, 0x89,
0xd7, 0x49, 0x89, 0xf6, 0x48, 0x89, 0xfb, 0x48,
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xb7,
0xc8, 0x89, 0xca, 0xf7, 0xd2, 0x48, 0x63, 0xea,
0x31, 0xd2, 0x66, 0x83, 0xf8, 0x01, 0x0f, 0x94,
0xc2, 0x31, 0xf6, 0x66, 0x83, 0xf8, 0x02, 0x40,
0x0f, 0x94, 0xc6, 0x0f, 0xb7, 0xc0, 0x48, 0x89,
0xc7, 0x48, 0xf7, 0xdf, 0x49, 0x83, 0x3c, 0xee,
0x00, 0x0f, 0x44, 0xd6, 0x48, 0xf7, 0xd0, 0x48,
0x0f, 0x44, 0xc7, 0x80, 0xfa, 0x01, 0x75, 0x36,
0xba, 0xfe, 0xff, 0xff, 0xff, 0x29, 0xca, 0x4c,
0x63, 0xea, 0x4f, 0x8b, 0x24, 0xee, 0x49, 0x8b,
0x4c, 0x24, 0x08, 0x48, 0x3b, 0x0d, 0x00, 0x00,
0x00, 0x00, 0x75, 0x1a, 0x49, 0x8b, 0x4c, 0x24,
0x28, 0x83, 0x79, 0x10, 0x08, 0x75, 0x0f, 0x49,
0x8b, 0x3c, 0xc6, 0x48, 0x8b, 0x57, 0x08, 0x49,
0x3b, 0x54, 0x24, 0x10, 0x74, 0x3f, 0x48, 0x8b,
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87,
0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xde, 0x49,
0x83, 0xc6, 0xb8, 0x49, 0xc1, 0xee, 0x03, 0x44,
0x89, 0x73, 0x40, 0x48, 0x8b, 0x03, 0x8b, 0x0d,
0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48,
0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0x48, 0x83,
0xc4, 0x18, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41,
0x5e, 0x41, 0x5f, 0x5d, 0xc3, 0x49, 0x8b, 0x74,
0xc6, 0x08, 0x48, 0x8b, 0x51, 0x08, 0x41, 0x8b,
0x47, 0x34, 0x8d, 0x48, 0xff, 0x41, 0x89, 0x4f,
0x34, 0x85, 0xc0, 0x48, 0x89, 0x74, 0x24, 0x08,
0x48, 0x89, 0x3c, 0x24, 0x0f, 0x8e, 0xaf, 0x00,
0x00, 0x00, 0x48, 0x8b, 0x3c, 0x24, 0xff, 0xd2,
0x48, 0x8b, 0x3c, 0x24, 0x41, 0xff, 0x47, 0x34,
0x48, 0x8b, 0x0f, 0x85, 0xc9, 0x78, 0x16, 0x48,
0xff, 0xc9, 0x48, 0x89, 0x0f, 0x75, 0x0e, 0x48,
0x89, 0x04, 0x24, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0x48, 0x8b, 0x04, 0x24, 0x48, 0x8b, 0x7c,
0x24, 0x08, 0x48, 0x8b, 0x0f, 0x85, 0xc9, 0x78,
0x16, 0x48, 0xff, 0xc9, 0x48, 0x89, 0x0f, 0x75,
0x0e, 0x48, 0x89, 0x04, 0x24, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x48, 0x8b, 0x04, 0x24, 0x49,
0x8b, 0x0c, 0x24, 0x85, 0xc9, 0x78, 0x18, 0x48,
0xff, 0xc9, 0x49, 0x89, 0x0c, 0x24, 0x75, 0x0f,
0x4c, 0x89, 0xe7, 0x49, 0x89, 0xc4, 0xff, 0x15,
0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xe0, 0x4b,
0x8d, 0x0c, 0xee, 0x48, 0x85, 0xc0, 0x74, 0x61,
0x4d, 0x8d, 0x34, 0xee, 0x48, 0x89, 0x01, 0x49,
0x8b, 0x47, 0x18, 0x84, 0xc0, 0x74, 0x0d, 0x4c,
0x89, 0xff, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x85, 0xc0, 0x75, 0x48, 0x48, 0x89, 0xdf, 0x4c,
0x89, 0xf6, 0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4,
0x18, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e,
0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00, 0x00, 0x00,
0x00, 0x48, 0x8d, 0x35, 0x00, 0x00, 0x00, 0x00,
0x4c, 0x89, 0xff, 0x48, 0x89, 0x54, 0x24, 0x10,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b,
0x54, 0x24, 0x10, 0x48, 0x8b, 0x74, 0x24, 0x08,
0x85, 0xc0, 0x75, 0x08, 0xe9, 0x29, 0xff, 0xff,
0xff, 0x49, 0x89, 0xce, 0x48, 0x8b, 0x05, 0x00,
0x00, 0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01,
0x00, 0x00, 0x49, 0x29, 0xde, 0x49, 0x83, 0xc6,
0xb8, 0x49, 0xc1, 0xee, 0x03, 0x44, 0x89, 0x73,
0x40, 0x31, 0xc0, 0xe9, 0xce, 0xfe, 0xff, 0xff,
};
static const Hole _CALL_METHOD_DESCRIPTOR_O_code_holes[13] = {
{0x1a, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0x6e, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0x91, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
{0xb0, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x34},
{0x115, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c},
{0x137, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c},
{0x158, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c},
{0x17c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x44},
{0x19d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4c},
{0x1a4, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4},
{0x1b2, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x54},
{0x1cf, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
};
// 0: ' while calling a Python object\x00'
// 1f: 00
// 20: OPARG
// 28: &PyMethodDescr_Type+0x0
// 30: EXECUTOR
// 38: TARGET
// 40: &_Py_Dealloc+0x0
// 48: &_Py_HandlePending+0x0
// 50: CONTINUE
// 58: &_Py_CheckRecursiveCall+0x0
static const unsigned char _CALL_METHOD_DESCRIPTOR_O_data_body[97] = {
0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x63,
0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x61,
0x20, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x20,
0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CALL_METHOD_DESCRIPTOR_O_data_holes[9] = {
{0x20, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyMethodDescr_Type, 0x0},
{0x30, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x38, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x40, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x48, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_HandlePending, 0x0},
{0x50, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x58, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_CheckRecursiveCall, 0x0},
};
// _CALL_STR_1
//
// /tmp/tmp2mfmnab2/_CALL_STR_1.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d6 movq %rdx, %r14
// e: 49 89 f7 movq %rsi, %r15
// 11: 48 89 fb movq %rdi, %rbx
// 14: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x1b <_JIT_ENTRY+0x1b>
// 0000000000000017: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 1b: 89 c1 movl %eax, %ecx
// 1d: f7 d1 notl %ecx
// 1f: 4c 63 e1 movslq %ecx, %r12
// 22: 4a 83 3c e6 00 cmpq $0x0, (%rsi,%r12,8)
// 27: 75 1b jne 0x44 <_JIT_ENTRY+0x44>
// 29: b9 fe ff ff ff movl $0xfffffffe, %ecx # imm = 0xFFFFFFFE
// 2e: 29 c1 subl %eax, %ecx
// 30: 48 63 c1 movslq %ecx, %rax
// 33: 49 8d 2c c7 leaq (%r15,%rax,8), %rbp
// 37: 48 8b 45 00 movq (%rbp), %rax
// 3b: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x42 <_JIT_ENTRY+0x42>
// 000000000000003e: R_X86_64_REX_GOTPCRELX PyUnicode_Type-0x4
// 42: 74 3f je 0x83 <_JIT_ENTRY+0x83>
// 44: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x4b <_JIT_ENTRY+0x4b>
// 0000000000000047: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 4b: 49 89 86 28 01 00 00 movq %rax, 0x128(%r14)
// 52: 49 29 df subq %rbx, %r15
// 55: 49 83 c7 b8 addq $-0x48, %r15
// 59: 49 c1 ef 03 shrq $0x3, %r15
// 5d: 44 89 7b 40 movl %r15d, 0x40(%rbx)
// 61: 48 8b 03 movq (%rbx), %rax
// 64: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x6a <_JIT_ENTRY+0x6a>
// 0000000000000066: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 6a: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 6e: 48 05 c8 00 00 00 addq $0xc8, %rax
// 74: 48 83 c4 08 addq $0x8, %rsp
// 78: 5b popq %rbx
// 79: 41 5c popq %r12
// 7b: 41 5d popq %r13
// 7d: 41 5e popq %r14
// 7f: 41 5f popq %r15
// 81: 5d popq %rbp
// 82: c3 retq
// 83: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x8a <_JIT_ENTRY+0x8a>
// 0000000000000086: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 8a: 48 c1 e0 03 shlq $0x3, %rax
// 8e: 4c 89 f9 movq %r15, %rcx
// 91: 48 29 c1 subq %rax, %rcx
// 94: 4c 8b 29 movq (%rcx), %r13
// 97: 4c 89 ef movq %r13, %rdi
// 9a: ff 15 00 00 00 00 callq *(%rip) # 0xa0 <_JIT_ENTRY+0xa0>
// 000000000000009c: R_X86_64_GOTPCRELX PyObject_Str-0x4
// a0: 49 8b 4d 00 movq (%r13), %rcx
// a4: 85 c9 testl %ecx, %ecx
// a6: 78 18 js 0xc0 <_JIT_ENTRY+0xc0>
// a8: 48 ff c9 decq %rcx
// ab: 49 89 4d 00 movq %rcx, (%r13)
// af: 75 0f jne 0xc0 <_JIT_ENTRY+0xc0>
// b1: 4c 89 ef movq %r13, %rdi
// b4: 49 89 c5 movq %rax, %r13
// b7: ff 15 00 00 00 00 callq *(%rip) # 0xbd <_JIT_ENTRY+0xbd>
// 00000000000000b9: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// bd: 4c 89 e8 movq %r13, %rax
// c0: 48 8b 15 00 00 00 00 movq (%rip), %rdx # 0xc7 <_JIT_ENTRY+0xc7>
// 00000000000000c3: R_X86_64_REX_GOTPCRELX PyUnicode_Type-0x4
// c7: 48 8b 0a movq (%rdx), %rcx
// ca: 85 c9 testl %ecx, %ecx
// cc: 78 1b js 0xe9 <_JIT_ENTRY+0xe9>
// ce: 48 ff c9 decq %rcx
// d1: 48 89 0a movq %rcx, (%rdx)
// d4: 75 13 jne 0xe9 <_JIT_ENTRY+0xe9>
// d6: 48 8b 3d 00 00 00 00 movq (%rip), %rdi # 0xdd <_JIT_ENTRY+0xdd>
// 00000000000000d9: R_X86_64_REX_GOTPCRELX PyUnicode_Type-0x4
// dd: 49 89 c5 movq %rax, %r13
// e0: ff 15 00 00 00 00 callq *(%rip) # 0xe6 <_JIT_ENTRY+0xe6>
// 00000000000000e2: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// e6: 4c 89 e8 movq %r13, %rax
// e9: 48 85 c0 testq %rax, %rax
// ec: 74 20 je 0x10e <_JIT_ENTRY+0x10e>
// ee: 4f 8d 3c e7 leaq (%r15,%r12,8), %r15
// f2: 48 89 45 00 movq %rax, (%rbp)
// f6: 49 8b 46 18 movq 0x18(%r14), %rax
// fa: 84 c0 testb %al, %al
// fc: 74 33 je 0x131 <_JIT_ENTRY+0x131>
// fe: 4c 89 f7 movq %r14, %rdi
// 101: ff 15 00 00 00 00 callq *(%rip) # 0x107 <_JIT_ENTRY+0x107>
// 0000000000000103: R_X86_64_GOTPCRELX _Py_HandlePending-0x4
// 107: 85 c0 testl %eax, %eax
// 109: 74 26 je 0x131 <_JIT_ENTRY+0x131>
// 10b: 4c 89 fd movq %r15, %rbp
// 10e: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x115 <_JIT_ENTRY+0x115>
// 0000000000000111: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 115: 49 89 86 28 01 00 00 movq %rax, 0x128(%r14)
// 11c: 48 29 dd subq %rbx, %rbp
// 11f: 48 83 c5 b8 addq $-0x48, %rbp
// 123: 48 c1 ed 03 shrq $0x3, %rbp
// 127: 89 6b 40 movl %ebp, 0x40(%rbx)
// 12a: 31 c0 xorl %eax, %eax
// 12c: e9 43 ff ff ff jmp 0x74 <_JIT_ENTRY+0x74>
// 131: 48 89 df movq %rbx, %rdi
// 134: 4c 89 fe movq %r15, %rsi
// 137: 4c 89 f2 movq %r14, %rdx
// 13a: 48 83 c4 08 addq $0x8, %rsp
// 13e: 5b popq %rbx
// 13f: 41 5c popq %r12
// 141: 41 5d popq %r13
// 143: 41 5e popq %r14
// 145: 41 5f popq %r15
// 147: 5d popq %rbp
// 148: ff 25 00 00 00 00 jmpq *(%rip) # 0x14e <_JIT_ENTRY+0x14e>
// 000000000000014a: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 148:
static const unsigned char _CALL_STR_1_code_body[329] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89,
0xf7, 0x48, 0x89, 0xfb, 0x0f, 0xb7, 0x05, 0x00,
0x00, 0x00, 0x00, 0x89, 0xc1, 0xf7, 0xd1, 0x4c,
0x63, 0xe1, 0x4a, 0x83, 0x3c, 0xe6, 0x00, 0x75,
0x1b, 0xb9, 0xfe, 0xff, 0xff, 0xff, 0x29, 0xc1,
0x48, 0x63, 0xc1, 0x49, 0x8d, 0x2c, 0xc7, 0x48,
0x8b, 0x45, 0x00, 0x48, 0x3b, 0x05, 0x00, 0x00,
0x00, 0x00, 0x74, 0x3f, 0x48, 0x8b, 0x05, 0x00,
0x00, 0x00, 0x00, 0x49, 0x89, 0x86, 0x28, 0x01,
0x00, 0x00, 0x49, 0x29, 0xdf, 0x49, 0x83, 0xc7,
0xb8, 0x49, 0xc1, 0xef, 0x03, 0x44, 0x89, 0x7b,
0x40, 0x48, 0x8b, 0x03, 0x8b, 0x0d, 0x00, 0x00,
0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05,
0xc8, 0x00, 0x00, 0x00, 0x48, 0x83, 0xc4, 0x08,
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41,
0x5f, 0x5d, 0xc3, 0x0f, 0xb7, 0x05, 0x00, 0x00,
0x00, 0x00, 0x48, 0xc1, 0xe0, 0x03, 0x4c, 0x89,
0xf9, 0x48, 0x29, 0xc1, 0x4c, 0x8b, 0x29, 0x4c,
0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x49, 0x8b, 0x4d, 0x00, 0x85, 0xc9, 0x78, 0x18,
0x48, 0xff, 0xc9, 0x49, 0x89, 0x4d, 0x00, 0x75,
0x0f, 0x4c, 0x89, 0xef, 0x49, 0x89, 0xc5, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xe8,
0x48, 0x8b, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48,
0x8b, 0x0a, 0x85, 0xc9, 0x78, 0x1b, 0x48, 0xff,
0xc9, 0x48, 0x89, 0x0a, 0x75, 0x13, 0x48, 0x8b,
0x3d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0xc5,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89,
0xe8, 0x48, 0x85, 0xc0, 0x74, 0x20, 0x4f, 0x8d,
0x3c, 0xe7, 0x48, 0x89, 0x45, 0x00, 0x49, 0x8b,
0x46, 0x18, 0x84, 0xc0, 0x74, 0x33, 0x4c, 0x89,
0xf7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x85,
0xc0, 0x74, 0x26, 0x4c, 0x89, 0xfd, 0x48, 0x8b,
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x86,
0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xdd, 0x48,
0x83, 0xc5, 0xb8, 0x48, 0xc1, 0xed, 0x03, 0x89,
0x6b, 0x40, 0x31, 0xc0, 0xe9, 0x43, 0xff, 0xff,
0xff, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c,
0x89, 0xf2, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41,
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d,
};
static const Hole _CALL_STR_1_code_holes[13] = {
{0x17, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x3e, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x47, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x66, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x86, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x9c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0xb9, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0xc3, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0xd9, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0xe2, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0x103, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
{0x111, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
};
// 0:
// 0: OPARG
// 8: &PyUnicode_Type+0x0
// 10: EXECUTOR
// 18: TARGET
// 20: &PyObject_Str+0x0
// 28: &_Py_Dealloc+0x0
// 30: &_Py_HandlePending+0x0
static const unsigned char _CALL_STR_1_data_body[57] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CALL_STR_1_data_holes[8] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyUnicode_Type, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_Str, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x30, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_HandlePending, 0x0},
};
// _CALL_TUPLE_1
//
// /tmp/tmp2mfmnab2/_CALL_TUPLE_1.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d6 movq %rdx, %r14
// e: 49 89 f7 movq %rsi, %r15
// 11: 48 89 fb movq %rdi, %rbx
// 14: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x1b <_JIT_ENTRY+0x1b>
// 0000000000000017: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 1b: 89 c1 movl %eax, %ecx
// 1d: f7 d1 notl %ecx
// 1f: 4c 63 e1 movslq %ecx, %r12
// 22: 4a 83 3c e6 00 cmpq $0x0, (%rsi,%r12,8)
// 27: 75 1b jne 0x44 <_JIT_ENTRY+0x44>
// 29: b9 fe ff ff ff movl $0xfffffffe, %ecx # imm = 0xFFFFFFFE
// 2e: 29 c1 subl %eax, %ecx
// 30: 48 63 c1 movslq %ecx, %rax
// 33: 49 8d 2c c7 leaq (%r15,%rax,8), %rbp
// 37: 48 8b 45 00 movq (%rbp), %rax
// 3b: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x42 <_JIT_ENTRY+0x42>
// 000000000000003e: R_X86_64_REX_GOTPCRELX PyTuple_Type-0x4
// 42: 74 3f je 0x83 <_JIT_ENTRY+0x83>
// 44: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x4b <_JIT_ENTRY+0x4b>
// 0000000000000047: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 4b: 49 89 86 28 01 00 00 movq %rax, 0x128(%r14)
// 52: 49 29 df subq %rbx, %r15
// 55: 49 83 c7 b8 addq $-0x48, %r15
// 59: 49 c1 ef 03 shrq $0x3, %r15
// 5d: 44 89 7b 40 movl %r15d, 0x40(%rbx)
// 61: 48 8b 03 movq (%rbx), %rax
// 64: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x6a <_JIT_ENTRY+0x6a>
// 0000000000000066: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 6a: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 6e: 48 05 c8 00 00 00 addq $0xc8, %rax
// 74: 48 83 c4 08 addq $0x8, %rsp
// 78: 5b popq %rbx
// 79: 41 5c popq %r12
// 7b: 41 5d popq %r13
// 7d: 41 5e popq %r14
// 7f: 41 5f popq %r15
// 81: 5d popq %rbp
// 82: c3 retq
// 83: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x8a <_JIT_ENTRY+0x8a>
// 0000000000000086: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 8a: 48 c1 e0 03 shlq $0x3, %rax
// 8e: 4c 89 f9 movq %r15, %rcx
// 91: 48 29 c1 subq %rax, %rcx
// 94: 4c 8b 29 movq (%rcx), %r13
// 97: 4c 89 ef movq %r13, %rdi
// 9a: ff 15 00 00 00 00 callq *(%rip) # 0xa0 <_JIT_ENTRY+0xa0>
// 000000000000009c: R_X86_64_GOTPCRELX PySequence_Tuple-0x4
// a0: 49 8b 4d 00 movq (%r13), %rcx
// a4: 85 c9 testl %ecx, %ecx
// a6: 78 18 js 0xc0 <_JIT_ENTRY+0xc0>
// a8: 48 ff c9 decq %rcx
// ab: 49 89 4d 00 movq %rcx, (%r13)
// af: 75 0f jne 0xc0 <_JIT_ENTRY+0xc0>
// b1: 4c 89 ef movq %r13, %rdi
// b4: 49 89 c5 movq %rax, %r13
// b7: ff 15 00 00 00 00 callq *(%rip) # 0xbd <_JIT_ENTRY+0xbd>
// 00000000000000b9: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// bd: 4c 89 e8 movq %r13, %rax
// c0: 48 8b 15 00 00 00 00 movq (%rip), %rdx # 0xc7 <_JIT_ENTRY+0xc7>
// 00000000000000c3: R_X86_64_REX_GOTPCRELX PyTuple_Type-0x4
// c7: 48 8b 0a movq (%rdx), %rcx
// ca: 85 c9 testl %ecx, %ecx
// cc: 78 1b js 0xe9 <_JIT_ENTRY+0xe9>
// ce: 48 ff c9 decq %rcx
// d1: 48 89 0a movq %rcx, (%rdx)
// d4: 75 13 jne 0xe9 <_JIT_ENTRY+0xe9>
// d6: 48 8b 3d 00 00 00 00 movq (%rip), %rdi # 0xdd <_JIT_ENTRY+0xdd>
// 00000000000000d9: R_X86_64_REX_GOTPCRELX PyTuple_Type-0x4
// dd: 49 89 c5 movq %rax, %r13
// e0: ff 15 00 00 00 00 callq *(%rip) # 0xe6 <_JIT_ENTRY+0xe6>
// 00000000000000e2: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// e6: 4c 89 e8 movq %r13, %rax
// e9: 48 85 c0 testq %rax, %rax
// ec: 74 20 je 0x10e <_JIT_ENTRY+0x10e>
// ee: 4f 8d 3c e7 leaq (%r15,%r12,8), %r15
// f2: 48 89 45 00 movq %rax, (%rbp)
// f6: 49 8b 46 18 movq 0x18(%r14), %rax
// fa: 84 c0 testb %al, %al
// fc: 74 33 je 0x131 <_JIT_ENTRY+0x131>
// fe: 4c 89 f7 movq %r14, %rdi
// 101: ff 15 00 00 00 00 callq *(%rip) # 0x107 <_JIT_ENTRY+0x107>
// 0000000000000103: R_X86_64_GOTPCRELX _Py_HandlePending-0x4
// 107: 85 c0 testl %eax, %eax
// 109: 74 26 je 0x131 <_JIT_ENTRY+0x131>
// 10b: 4c 89 fd movq %r15, %rbp
// 10e: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x115 <_JIT_ENTRY+0x115>
// 0000000000000111: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 115: 49 89 86 28 01 00 00 movq %rax, 0x128(%r14)
// 11c: 48 29 dd subq %rbx, %rbp
// 11f: 48 83 c5 b8 addq $-0x48, %rbp
// 123: 48 c1 ed 03 shrq $0x3, %rbp
// 127: 89 6b 40 movl %ebp, 0x40(%rbx)
// 12a: 31 c0 xorl %eax, %eax
// 12c: e9 43 ff ff ff jmp 0x74 <_JIT_ENTRY+0x74>
// 131: 48 89 df movq %rbx, %rdi
// 134: 4c 89 fe movq %r15, %rsi
// 137: 4c 89 f2 movq %r14, %rdx
// 13a: 48 83 c4 08 addq $0x8, %rsp
// 13e: 5b popq %rbx
// 13f: 41 5c popq %r12
// 141: 41 5d popq %r13
// 143: 41 5e popq %r14
// 145: 41 5f popq %r15
// 147: 5d popq %rbp
// 148: ff 25 00 00 00 00 jmpq *(%rip) # 0x14e <_JIT_ENTRY+0x14e>
// 000000000000014a: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 148:
static const unsigned char _CALL_TUPLE_1_code_body[329] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89,
0xf7, 0x48, 0x89, 0xfb, 0x0f, 0xb7, 0x05, 0x00,
0x00, 0x00, 0x00, 0x89, 0xc1, 0xf7, 0xd1, 0x4c,
0x63, 0xe1, 0x4a, 0x83, 0x3c, 0xe6, 0x00, 0x75,
0x1b, 0xb9, 0xfe, 0xff, 0xff, 0xff, 0x29, 0xc1,
0x48, 0x63, 0xc1, 0x49, 0x8d, 0x2c, 0xc7, 0x48,
0x8b, 0x45, 0x00, 0x48, 0x3b, 0x05, 0x00, 0x00,
0x00, 0x00, 0x74, 0x3f, 0x48, 0x8b, 0x05, 0x00,
0x00, 0x00, 0x00, 0x49, 0x89, 0x86, 0x28, 0x01,
0x00, 0x00, 0x49, 0x29, 0xdf, 0x49, 0x83, 0xc7,
0xb8, 0x49, 0xc1, 0xef, 0x03, 0x44, 0x89, 0x7b,
0x40, 0x48, 0x8b, 0x03, 0x8b, 0x0d, 0x00, 0x00,
0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05,
0xc8, 0x00, 0x00, 0x00, 0x48, 0x83, 0xc4, 0x08,
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41,
0x5f, 0x5d, 0xc3, 0x0f, 0xb7, 0x05, 0x00, 0x00,
0x00, 0x00, 0x48, 0xc1, 0xe0, 0x03, 0x4c, 0x89,
0xf9, 0x48, 0x29, 0xc1, 0x4c, 0x8b, 0x29, 0x4c,
0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x49, 0x8b, 0x4d, 0x00, 0x85, 0xc9, 0x78, 0x18,
0x48, 0xff, 0xc9, 0x49, 0x89, 0x4d, 0x00, 0x75,
0x0f, 0x4c, 0x89, 0xef, 0x49, 0x89, 0xc5, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xe8,
0x48, 0x8b, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48,
0x8b, 0x0a, 0x85, 0xc9, 0x78, 0x1b, 0x48, 0xff,
0xc9, 0x48, 0x89, 0x0a, 0x75, 0x13, 0x48, 0x8b,
0x3d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0xc5,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89,
0xe8, 0x48, 0x85, 0xc0, 0x74, 0x20, 0x4f, 0x8d,
0x3c, 0xe7, 0x48, 0x89, 0x45, 0x00, 0x49, 0x8b,
0x46, 0x18, 0x84, 0xc0, 0x74, 0x33, 0x4c, 0x89,
0xf7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x85,
0xc0, 0x74, 0x26, 0x4c, 0x89, 0xfd, 0x48, 0x8b,
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x86,
0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xdd, 0x48,
0x83, 0xc5, 0xb8, 0x48, 0xc1, 0xed, 0x03, 0x89,
0x6b, 0x40, 0x31, 0xc0, 0xe9, 0x43, 0xff, 0xff,
0xff, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c,
0x89, 0xf2, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41,
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d,
};
static const Hole _CALL_TUPLE_1_code_holes[13] = {
{0x17, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x3e, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x47, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x66, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x86, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x9c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0xb9, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0xc3, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0xd9, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0xe2, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0x103, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
{0x111, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
};
// 0:
// 0: OPARG
// 8: &PyTuple_Type+0x0
// 10: EXECUTOR
// 18: TARGET
// 20: &PySequence_Tuple+0x0
// 28: &_Py_Dealloc+0x0
// 30: &_Py_HandlePending+0x0
static const unsigned char _CALL_TUPLE_1_data_body[57] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CALL_TUPLE_1_data_holes[8] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyTuple_Type, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &PySequence_Tuple, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x30, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_HandlePending, 0x0},
};
// _CALL_TYPE_1
//
// /tmp/tmp2mfmnab2/_CALL_TYPE_1.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d7 movq %rdx, %r15
// e: 49 89 f6 movq %rsi, %r14
// 11: 48 89 fb movq %rdi, %rbx
// 14: 8b 05 00 00 00 00 movl (%rip), %eax # 0x1a <_JIT_ENTRY+0x1a>
// 0000000000000016: R_X86_64_GOTPCRELX _JIT_OPARG-0x4
// 1a: f7 d0 notl %eax
// 1c: 0d 00 00 ff ff orl $0xffff0000, %eax # imm = 0xFFFF0000
// 21: 4c 63 e0 movslq %eax, %r12
// 24: 4a 83 3c e6 00 cmpq $0x0, (%rsi,%r12,8)
// 29: 75 1e jne 0x49 <_JIT_ENTRY+0x49>
// 2b: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x32 <_JIT_ENTRY+0x32>
// 000000000000002e: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 32: b9 fe ff ff ff movl $0xfffffffe, %ecx # imm = 0xFFFFFFFE
// 37: 29 c1 subl %eax, %ecx
// 39: 48 63 c1 movslq %ecx, %rax
// 3c: 49 8b 04 c6 movq (%r14,%rax,8), %rax
// 40: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x47 <_JIT_ENTRY+0x47>
// 0000000000000043: R_X86_64_REX_GOTPCRELX PyType_Type-0x4
// 47: 74 3f je 0x88 <_JIT_ENTRY+0x88>
// 49: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x50 <_JIT_ENTRY+0x50>
// 000000000000004c: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 50: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 57: 49 29 de subq %rbx, %r14
// 5a: 49 83 c6 b8 addq $-0x48, %r14
// 5e: 49 c1 ee 03 shrq $0x3, %r14
// 62: 44 89 73 40 movl %r14d, 0x40(%rbx)
// 66: 48 8b 03 movq (%rbx), %rax
// 69: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x6f <_JIT_ENTRY+0x6f>
// 000000000000006b: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 6f: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 73: 48 05 c8 00 00 00 addq $0xc8, %rax
// 79: 48 83 c4 08 addq $0x8, %rsp
// 7d: 5b popq %rbx
// 7e: 41 5c popq %r12
// 80: 41 5d popq %r13
// 82: 41 5e popq %r14
// 84: 41 5f popq %r15
// 86: 5d popq %rbp
// 87: c3 retq
// 88: 44 0f b7 2d 00 00 00 00 movzwl (%rip), %r13d # 0x90 <_JIT_ENTRY+0x90>
// 000000000000008c: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 90: 4a 8d 04 ed 00 00 00 00 leaq (,%r13,8), %rax
// 98: 4c 89 f1 movq %r14, %rcx
// 9b: 48 29 c1 subq %rax, %rcx
// 9e: 48 8b 39 movq (%rcx), %rdi
// a1: 48 8b 6f 08 movq 0x8(%rdi), %rbp
// a5: 8b 45 00 movl (%rbp), %eax
// a8: ff c0 incl %eax
// aa: 74 03 je 0xaf <_JIT_ENTRY+0xaf>
// ac: 89 45 00 movl %eax, (%rbp)
// af: 48 8b 07 movq (%rdi), %rax
// b2: 85 c0 testl %eax, %eax
// b4: 78 0e js 0xc4 <_JIT_ENTRY+0xc4>
// b6: 48 ff c8 decq %rax
// b9: 48 89 07 movq %rax, (%rdi)
// bc: 75 06 jne 0xc4 <_JIT_ENTRY+0xc4>
// be: ff 15 00 00 00 00 callq *(%rip) # 0xc4 <_JIT_ENTRY+0xc4>
// 00000000000000c0: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// c4: 4f 8d 24 e6 leaq (%r14,%r12,8), %r12
// c8: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xcf <_JIT_ENTRY+0xcf>
// 00000000000000cb: R_X86_64_REX_GOTPCRELX PyType_Type-0x4
// cf: 48 8b 08 movq (%rax), %rcx
// d2: 85 c9 testl %ecx, %ecx
// d4: 78 15 js 0xeb <_JIT_ENTRY+0xeb>
// d6: 48 ff c9 decq %rcx
// d9: 48 89 08 movq %rcx, (%rax)
// dc: 75 0d jne 0xeb <_JIT_ENTRY+0xeb>
// de: 48 8b 3d 00 00 00 00 movq (%rip), %rdi # 0xe5 <_JIT_ENTRY+0xe5>
// 00000000000000e1: R_X86_64_REX_GOTPCRELX PyType_Type-0x4
// e5: ff 15 00 00 00 00 callq *(%rip) # 0xeb <_JIT_ENTRY+0xeb>
// 00000000000000e7: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// eb: b8 fe ff ff ff movl $0xfffffffe, %eax # imm = 0xFFFFFFFE
// f0: 44 29 e8 subl %r13d, %eax
// f3: 48 98 cltq
// f5: 49 89 2c c6 movq %rbp, (%r14,%rax,8)
// f9: 48 89 df movq %rbx, %rdi
// fc: 4c 89 e6 movq %r12, %rsi
// ff: 4c 89 fa movq %r15, %rdx
// 102: 48 83 c4 08 addq $0x8, %rsp
// 106: 5b popq %rbx
// 107: 41 5c popq %r12
// 109: 41 5d popq %r13
// 10b: 41 5e popq %r14
// 10d: 41 5f popq %r15
// 10f: 5d popq %rbp
// 110: ff 25 00 00 00 00 jmpq *(%rip) # 0x116 <_JIT_ENTRY+0x116>
// 0000000000000112: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 110:
static const unsigned char _CALL_TYPE_1_code_body[273] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x49, 0x89,
0xf6, 0x48, 0x89, 0xfb, 0x8b, 0x05, 0x00, 0x00,
0x00, 0x00, 0xf7, 0xd0, 0x0d, 0x00, 0x00, 0xff,
0xff, 0x4c, 0x63, 0xe0, 0x4a, 0x83, 0x3c, 0xe6,
0x00, 0x75, 0x1e, 0x0f, 0xb7, 0x05, 0x00, 0x00,
0x00, 0x00, 0xb9, 0xfe, 0xff, 0xff, 0xff, 0x29,
0xc1, 0x48, 0x63, 0xc1, 0x49, 0x8b, 0x04, 0xc6,
0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x74,
0x3f, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x49, 0x89, 0x87, 0x28, 0x01, 0x00, 0x00, 0x49,
0x29, 0xde, 0x49, 0x83, 0xc6, 0xb8, 0x49, 0xc1,
0xee, 0x03, 0x44, 0x89, 0x73, 0x40, 0x48, 0x8b,
0x03, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48,
0x8d, 0x04, 0x48, 0x48, 0x05, 0xc8, 0x00, 0x00,
0x00, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c,
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xc3,
0x44, 0x0f, 0xb7, 0x2d, 0x00, 0x00, 0x00, 0x00,
0x4a, 0x8d, 0x04, 0xed, 0x00, 0x00, 0x00, 0x00,
0x4c, 0x89, 0xf1, 0x48, 0x29, 0xc1, 0x48, 0x8b,
0x39, 0x48, 0x8b, 0x6f, 0x08, 0x8b, 0x45, 0x00,
0xff, 0xc0, 0x74, 0x03, 0x89, 0x45, 0x00, 0x48,
0x8b, 0x07, 0x85, 0xc0, 0x78, 0x0e, 0x48, 0xff,
0xc8, 0x48, 0x89, 0x07, 0x75, 0x06, 0xff, 0x15,
0x00, 0x00, 0x00, 0x00, 0x4f, 0x8d, 0x24, 0xe6,
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48,
0x8b, 0x08, 0x85, 0xc9, 0x78, 0x15, 0x48, 0xff,
0xc9, 0x48, 0x89, 0x08, 0x75, 0x0d, 0x48, 0x8b,
0x3d, 0x00, 0x00, 0x00, 0x00, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0xb8, 0xfe, 0xff, 0xff, 0xff,
0x44, 0x29, 0xe8, 0x48, 0x98, 0x49, 0x89, 0x2c,
0xc6, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xe6, 0x4c,
0x89, 0xfa, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41,
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d,
};
static const Hole _CALL_TYPE_1_code_holes[11] = {
{0x16, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x2e, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x43, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x4c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x6b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x8c, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0xc0, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0xcb, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0xe1, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0xe7, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
};
// 0:
// 0: OPARG
// 8: &PyType_Type+0x0
// 10: EXECUTOR
// 18: TARGET
// 20: &_Py_Dealloc+0x0
static const unsigned char _CALL_TYPE_1_data_body[41] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CALL_TYPE_1_data_holes[6] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyType_Type, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
};
// _CHECK_ATTR_CLASS
//
// /tmp/tmp2mfmnab2/_CHECK_ATTR_CLASS.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax
// 4: 48 8b 48 08 movq 0x8(%rax), %rcx
// 8: f6 81 ab 00 00 00 80 testb $-0x80, 0xab(%rcx)
// f: 74 14 je 0x25 <_JIT_ENTRY+0x25>
// 11: 8b 80 80 01 00 00 movl 0x180(%rax), %eax
// 17: 3b 05 00 00 00 00 cmpl (%rip), %eax # 0x1d <_JIT_ENTRY+0x1d>
// 0000000000000019: R_X86_64_GOTPCRELX _JIT_OPERAND-0x4
// 1d: 75 06 jne 0x25 <_JIT_ENTRY+0x25>
// 1f: ff 25 00 00 00 00 jmpq *(%rip) # 0x25 <_JIT_ENTRY+0x25>
// 0000000000000021: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 25: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x2c <_JIT_ENTRY+0x2c>
// 0000000000000028: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 2c: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 33: 48 29 fe subq %rdi, %rsi
// 36: 48 83 c6 b8 addq $-0x48, %rsi
// 3a: 48 c1 ee 03 shrq $0x3, %rsi
// 3e: 89 77 40 movl %esi, 0x40(%rdi)
// 41: 48 8b 07 movq (%rdi), %rax
// 44: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4a <_JIT_ENTRY+0x4a>
// 0000000000000046: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 4a: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 4e: 48 05 c8 00 00 00 addq $0xc8, %rax
// 54: c3 retq
// 55:
static const unsigned char _CHECK_ATTR_CLASS_code_body[86] = {
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x48, 0x08,
0xf6, 0x81, 0xab, 0x00, 0x00, 0x00, 0x80, 0x74,
0x14, 0x8b, 0x80, 0x80, 0x01, 0x00, 0x00, 0x3b,
0x05, 0x00, 0x00, 0x00, 0x00, 0x75, 0x06, 0xff,
0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x05,
0x00, 0x00, 0x00, 0x00, 0x48, 0x89, 0x82, 0x28,
0x01, 0x00, 0x00, 0x48, 0x29, 0xfe, 0x48, 0x83,
0xc6, 0xb8, 0x48, 0xc1, 0xee, 0x03, 0x89, 0x77,
0x40, 0x48, 0x8b, 0x07, 0x8b, 0x0d, 0x00, 0x00,
0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05,
0xc8, 0x00, 0x00, 0x00, 0xc3,
};
static const Hole _CHECK_ATTR_CLASS_code_holes[5] = {
{0x19, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x21, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x28, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x46, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
};
// 0:
// 0: OPERAND
// 8: CONTINUE
// 10: EXECUTOR
// 18: TARGET
static const unsigned char _CHECK_ATTR_CLASS_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CHECK_ATTR_CLASS_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPERAND, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _CHECK_ATTR_METHOD_LAZY_DICT
//
// /tmp/tmp2mfmnab2/_CHECK_ATTR_METHOD_LAZY_DICT.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax
// 4: 48 8b 48 08 movq 0x8(%rax), %rcx
// 8: 48 8b 89 20 01 00 00 movq 0x120(%rcx), %rcx
// f: 48 83 3c 08 00 cmpq $0x0, (%rax,%rcx)
// 14: 74 30 je 0x46 <_JIT_ENTRY+0x46>
// 16: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x1d <_JIT_ENTRY+0x1d>
// 0000000000000019: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 1d: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 24: 48 29 fe subq %rdi, %rsi
// 27: 48 83 c6 b8 addq $-0x48, %rsi
// 2b: 48 c1 ee 03 shrq $0x3, %rsi
// 2f: 89 77 40 movl %esi, 0x40(%rdi)
// 32: 48 8b 07 movq (%rdi), %rax
// 35: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x3b <_JIT_ENTRY+0x3b>
// 0000000000000037: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 3b: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 3f: 48 05 c8 00 00 00 addq $0xc8, %rax
// 45: c3 retq
// 46: ff 25 00 00 00 00 jmpq *(%rip) # 0x4c <_JIT_ENTRY+0x4c>
// 0000000000000048: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 46:
static const unsigned char _CHECK_ATTR_METHOD_LAZY_DICT_code_body[71] = {
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x48, 0x08,
0x48, 0x8b, 0x89, 0x20, 0x01, 0x00, 0x00, 0x48,
0x83, 0x3c, 0x08, 0x00, 0x74, 0x30, 0x48, 0x8b,
0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x89, 0x82,
0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xfe, 0x48,
0x83, 0xc6, 0xb8, 0x48, 0xc1, 0xee, 0x03, 0x89,
0x77, 0x40, 0x48, 0x8b, 0x07, 0x8b, 0x0d, 0x00,
0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, 0x48,
0x05, 0xc8, 0x00, 0x00, 0x00, 0xc3,
};
static const Hole _CHECK_ATTR_METHOD_LAZY_DICT_code_holes[3] = {
{0x19, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x37, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
};
// 0:
// 0: EXECUTOR
// 8: TARGET
static const unsigned char _CHECK_ATTR_METHOD_LAZY_DICT_data_body[17] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CHECK_ATTR_METHOD_LAZY_DICT_data_holes[3] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _CHECK_ATTR_MODULE
//
// /tmp/tmp2mfmnab2/_CHECK_ATTR_MODULE.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax
// 4: 48 8b 48 08 movq 0x8(%rax), %rcx
// 8: 48 3b 0d 00 00 00 00 cmpq (%rip), %rcx # 0xf <_JIT_ENTRY+0xf>
// 000000000000000b: R_X86_64_REX_GOTPCRELX PyModule_Type-0x4
// f: 75 19 jne 0x2a <_JIT_ENTRY+0x2a>
// 11: 48 8b 40 10 movq 0x10(%rax), %rax
// 15: 48 8b 40 20 movq 0x20(%rax), %rax
// 19: 8b 40 0c movl 0xc(%rax), %eax
// 1c: 3b 05 00 00 00 00 cmpl (%rip), %eax # 0x22 <_JIT_ENTRY+0x22>
// 000000000000001e: R_X86_64_GOTPCRELX _JIT_OPERAND-0x4
// 22: 75 06 jne 0x2a <_JIT_ENTRY+0x2a>
// 24: ff 25 00 00 00 00 jmpq *(%rip) # 0x2a <_JIT_ENTRY+0x2a>
// 0000000000000026: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 2a: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x31 <_JIT_ENTRY+0x31>
// 000000000000002d: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 31: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 38: 48 29 fe subq %rdi, %rsi
// 3b: 48 83 c6 b8 addq $-0x48, %rsi
// 3f: 48 c1 ee 03 shrq $0x3, %rsi
// 43: 89 77 40 movl %esi, 0x40(%rdi)
// 46: 48 8b 07 movq (%rdi), %rax
// 49: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4f <_JIT_ENTRY+0x4f>
// 000000000000004b: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 4f: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 53: 48 05 c8 00 00 00 addq $0xc8, %rax
// 59: c3 retq
// 5a:
static const unsigned char _CHECK_ATTR_MODULE_code_body[91] = {
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x48, 0x08,
0x48, 0x3b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x75,
0x19, 0x48, 0x8b, 0x40, 0x10, 0x48, 0x8b, 0x40,
0x20, 0x8b, 0x40, 0x0c, 0x3b, 0x05, 0x00, 0x00,
0x00, 0x00, 0x75, 0x06, 0xff, 0x25, 0x00, 0x00,
0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x48, 0x89, 0x82, 0x28, 0x01, 0x00, 0x00,
0x48, 0x29, 0xfe, 0x48, 0x83, 0xc6, 0xb8, 0x48,
0xc1, 0xee, 0x03, 0x89, 0x77, 0x40, 0x48, 0x8b,
0x07, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48,
0x8d, 0x04, 0x48, 0x48, 0x05, 0xc8, 0x00, 0x00,
0x00, 0xc3,
};
static const Hole _CHECK_ATTR_MODULE_code_holes[6] = {
{0xb, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x1e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x26, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x2d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x4b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
};
// 0:
// 0: &PyModule_Type+0x0
// 8: OPERAND
// 10: CONTINUE
// 18: EXECUTOR
// 20: TARGET
static const unsigned char _CHECK_ATTR_MODULE_data_body[41] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CHECK_ATTR_MODULE_data_holes[6] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyModule_Type, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_OPERAND, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _CHECK_ATTR_WITH_HINT
//
// /tmp/tmp2mfmnab2/_CHECK_ATTR_WITH_HINT.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax
// 4: 48 8b 40 e8 movq -0x18(%rax), %rax
// 8: a8 01 testb $0x1, %al
// a: 75 0b jne 0x17 <_JIT_ENTRY+0x17>
// c: 48 85 c0 testq %rax, %rax
// f: 74 06 je 0x17 <_JIT_ENTRY+0x17>
// 11: ff 25 00 00 00 00 jmpq *(%rip) # 0x17 <_JIT_ENTRY+0x17>
// 0000000000000013: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 17: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x1e <_JIT_ENTRY+0x1e>
// 000000000000001a: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 1e: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 25: 48 29 fe subq %rdi, %rsi
// 28: 48 83 c6 b8 addq $-0x48, %rsi
// 2c: 48 c1 ee 03 shrq $0x3, %rsi
// 30: 89 77 40 movl %esi, 0x40(%rdi)
// 33: 48 8b 07 movq (%rdi), %rax
// 36: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x3c <_JIT_ENTRY+0x3c>
// 0000000000000038: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 3c: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 40: 48 05 c8 00 00 00 addq $0xc8, %rax
// 46: c3 retq
// 47:
static const unsigned char _CHECK_ATTR_WITH_HINT_code_body[72] = {
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x40, 0xe8,
0xa8, 0x01, 0x75, 0x0b, 0x48, 0x85, 0xc0, 0x74,
0x06, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48,
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x89,
0x82, 0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xfe,
0x48, 0x83, 0xc6, 0xb8, 0x48, 0xc1, 0xee, 0x03,
0x89, 0x77, 0x40, 0x48, 0x8b, 0x07, 0x8b, 0x0d,
0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48,
0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0xc3,
};
static const Hole _CHECK_ATTR_WITH_HINT_code_holes[4] = {
{0x13, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x1a, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x38, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
};
// 0:
// 0: CONTINUE
// 8: EXECUTOR
// 10: TARGET
static const unsigned char _CHECK_ATTR_WITH_HINT_data_body[25] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CHECK_ATTR_WITH_HINT_data_holes[4] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _CHECK_CALL_BOUND_METHOD_EXACT_ARGS
//
// /tmp/tmp2mfmnab2/_CHECK_CALL_BOUND_METHOD_EXACT_ARGS.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 8b 05 00 00 00 00 movl (%rip), %eax # 0x6 <_JIT_ENTRY+0x6>
// 0000000000000002: R_X86_64_GOTPCRELX _JIT_OPARG-0x4
// 6: f7 d0 notl %eax
// 8: 0d 00 00 ff ff orl $0xffff0000, %eax # imm = 0xFFFF0000
// d: 48 98 cltq
// f: 48 83 3c c6 00 cmpq $0x0, (%rsi,%rax,8)
// 14: 75 22 jne 0x38 <_JIT_ENTRY+0x38>
// 16: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x1d <_JIT_ENTRY+0x1d>
// 0000000000000019: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 1d: b9 fe ff ff ff movl $0xfffffffe, %ecx # imm = 0xFFFFFFFE
// 22: 29 c1 subl %eax, %ecx
// 24: 48 63 c1 movslq %ecx, %rax
// 27: 48 8b 04 c6 movq (%rsi,%rax,8), %rax
// 2b: 48 8b 40 08 movq 0x8(%rax), %rax
// 2f: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x36 <_JIT_ENTRY+0x36>
// 0000000000000032: R_X86_64_REX_GOTPCRELX PyMethod_Type-0x4
// 36: 74 30 je 0x68 <_JIT_ENTRY+0x68>
// 38: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x3f <_JIT_ENTRY+0x3f>
// 000000000000003b: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 3f: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 46: 48 29 fe subq %rdi, %rsi
// 49: 48 83 c6 b8 addq $-0x48, %rsi
// 4d: 48 c1 ee 03 shrq $0x3, %rsi
// 51: 89 77 40 movl %esi, 0x40(%rdi)
// 54: 48 8b 07 movq (%rdi), %rax
// 57: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x5d <_JIT_ENTRY+0x5d>
// 0000000000000059: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 5d: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 61: 48 05 c8 00 00 00 addq $0xc8, %rax
// 67: c3 retq
// 68: ff 25 00 00 00 00 jmpq *(%rip) # 0x6e <_JIT_ENTRY+0x6e>
// 000000000000006a: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 68:
static const unsigned char _CHECK_CALL_BOUND_METHOD_EXACT_ARGS_code_body[105] = {
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0xf7, 0xd0,
0x0d, 0x00, 0x00, 0xff, 0xff, 0x48, 0x98, 0x48,
0x83, 0x3c, 0xc6, 0x00, 0x75, 0x22, 0x0f, 0xb7,
0x05, 0x00, 0x00, 0x00, 0x00, 0xb9, 0xfe, 0xff,
0xff, 0xff, 0x29, 0xc1, 0x48, 0x63, 0xc1, 0x48,
0x8b, 0x04, 0xc6, 0x48, 0x8b, 0x40, 0x08, 0x48,
0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x74, 0x30,
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48,
0x89, 0x82, 0x28, 0x01, 0x00, 0x00, 0x48, 0x29,
0xfe, 0x48, 0x83, 0xc6, 0xb8, 0x48, 0xc1, 0xee,
0x03, 0x89, 0x77, 0x40, 0x48, 0x8b, 0x07, 0x8b,
0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04,
0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0xc3,
};
static const Hole _CHECK_CALL_BOUND_METHOD_EXACT_ARGS_code_holes[6] = {
{0x2, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x19, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x32, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x3b, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x59, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
};
// 0:
// 0: OPARG
// 8: &PyMethod_Type+0x0
// 10: EXECUTOR
// 18: TARGET
static const unsigned char _CHECK_CALL_BOUND_METHOD_EXACT_ARGS_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CHECK_CALL_BOUND_METHOD_EXACT_ARGS_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyMethod_Type, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _CHECK_EG_MATCH
//
// /tmp/tmp2mfmnab2/_CHECK_EG_MATCH.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 48 83 ec 18 subq $0x18, %rsp
// e: 49 89 d7 movq %rdx, %r15
// 11: 48 89 f3 movq %rsi, %rbx
// 14: 49 89 fe movq %rdi, %r14
// 17: 4c 8b 6e f0 movq -0x10(%rsi), %r13
// 1b: 4c 8b 66 f8 movq -0x8(%rsi), %r12
// 1f: 48 89 d7 movq %rdx, %rdi
// 22: 4c 89 e6 movq %r12, %rsi
// 25: ff 15 00 00 00 00 callq *(%rip) # 0x2b <_JIT_ENTRY+0x2b>
// 0000000000000027: R_X86_64_GOTPCRELX _PyEval_CheckExceptStarTypeValid-0x4
// 2b: 85 c0 testl %eax, %eax
// 2d: 0f 88 b0 00 00 00 js 0xe3 <_JIT_ENTRY+0xe3>
// 33: 48 c7 44 24 08 00 00 00 00 movq $0x0, 0x8(%rsp)
// 3c: 48 c7 44 24 10 00 00 00 00 movq $0x0, 0x10(%rsp)
// 45: 48 8d 54 24 08 leaq 0x8(%rsp), %rdx
// 4a: 48 8d 4c 24 10 leaq 0x10(%rsp), %rcx
// 4f: 4c 89 ef movq %r13, %rdi
// 52: 4c 89 e6 movq %r12, %rsi
// 55: ff 15 00 00 00 00 callq *(%rip) # 0x5b <_JIT_ENTRY+0x5b>
// 0000000000000057: R_X86_64_GOTPCRELX _PyEval_ExceptionGroupMatch-0x4
// 5b: 89 c5 movl %eax, %ebp
// 5d: 49 8b 45 00 movq (%r13), %rax
// 61: 85 c0 testl %eax, %eax
// 63: 78 12 js 0x77 <_JIT_ENTRY+0x77>
// 65: 48 ff c8 decq %rax
// 68: 49 89 45 00 movq %rax, (%r13)
// 6c: 75 09 jne 0x77 <_JIT_ENTRY+0x77>
// 6e: 4c 89 ef movq %r13, %rdi
// 71: ff 15 00 00 00 00 callq *(%rip) # 0x77 <_JIT_ENTRY+0x77>
// 0000000000000073: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 77: 49 8b 04 24 movq (%r12), %rax
// 7b: 85 c0 testl %eax, %eax
// 7d: 78 0d js 0x8c <_JIT_ENTRY+0x8c>
// 7f: 48 ff c8 decq %rax
// 82: 49 89 04 24 movq %rax, (%r12)
// 86: 0f 84 8d 00 00 00 je 0x119 <_JIT_ENTRY+0x119>
// 8c: 85 ed testl %ebp, %ebp
// 8e: 0f 88 96 00 00 00 js 0x12a <_JIT_ENTRY+0x12a>
// 94: 48 8b 7c 24 08 movq 0x8(%rsp), %rdi
// 99: 48 85 ff testq %rdi, %rdi
// 9c: 0f 84 88 00 00 00 je 0x12a <_JIT_ENTRY+0x12a>
// a2: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xa9 <_JIT_ENTRY+0xa9>
// 00000000000000a5: R_X86_64_REX_GOTPCRELX _Py_NoneStruct-0x4
// a9: 48 39 c7 cmpq %rax, %rdi
// ac: 74 0b je 0xb9 <_JIT_ENTRY+0xb9>
// ae: ff 15 00 00 00 00 callq *(%rip) # 0xb4 <_JIT_ENTRY+0xb4>
// 00000000000000b0: R_X86_64_GOTPCRELX PyErr_SetHandledException-0x4
// b4: 48 8b 44 24 08 movq 0x8(%rsp), %rax
// b9: 48 8b 4c 24 10 movq 0x10(%rsp), %rcx
// be: 48 89 4b f0 movq %rcx, -0x10(%rbx)
// c2: 48 89 43 f8 movq %rax, -0x8(%rbx)
// c6: 4c 89 f7 movq %r14, %rdi
// c9: 48 89 de movq %rbx, %rsi
// cc: 4c 89 fa movq %r15, %rdx
// cf: 48 83 c4 18 addq $0x18, %rsp
// d3: 5b popq %rbx
// d4: 41 5c popq %r12
// d6: 41 5d popq %r13
// d8: 41 5e popq %r14
// da: 41 5f popq %r15
// dc: 5d popq %rbp
// dd: ff 25 00 00 00 00 jmpq *(%rip) # 0xe3 <_JIT_ENTRY+0xe3>
// 00000000000000df: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// e3: 49 8b 45 00 movq (%r13), %rax
// e7: 85 c0 testl %eax, %eax
// e9: 78 12 js 0xfd <_JIT_ENTRY+0xfd>
// eb: 48 ff c8 decq %rax
// ee: 49 89 45 00 movq %rax, (%r13)
// f2: 75 09 jne 0xfd <_JIT_ENTRY+0xfd>
// f4: 4c 89 ef movq %r13, %rdi
// f7: ff 15 00 00 00 00 callq *(%rip) # 0xfd <_JIT_ENTRY+0xfd>
// 00000000000000f9: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// fd: 49 8b 04 24 movq (%r12), %rax
// 101: 85 c0 testl %eax, %eax
// 103: 78 25 js 0x12a <_JIT_ENTRY+0x12a>
// 105: 48 ff c8 decq %rax
// 108: 49 89 04 24 movq %rax, (%r12)
// 10c: 75 1c jne 0x12a <_JIT_ENTRY+0x12a>
// 10e: 4c 89 e7 movq %r12, %rdi
// 111: ff 15 00 00 00 00 callq *(%rip) # 0x117 <_JIT_ENTRY+0x117>
// 0000000000000113: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 117: eb 11 jmp 0x12a <_JIT_ENTRY+0x12a>
// 119: 4c 89 e7 movq %r12, %rdi
// 11c: ff 15 00 00 00 00 callq *(%rip) # 0x122 <_JIT_ENTRY+0x122>
// 000000000000011e: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 122: 85 ed testl %ebp, %ebp
// 124: 0f 89 6a ff ff ff jns 0x94 <_JIT_ENTRY+0x94>
// 12a: 48 83 c3 f0 addq $-0x10, %rbx
// 12e: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x135 <_JIT_ENTRY+0x135>
// 0000000000000131: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 135: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 13c: 4c 29 f3 subq %r14, %rbx
// 13f: 48 83 c3 b8 addq $-0x48, %rbx
// 143: 48 c1 eb 03 shrq $0x3, %rbx
// 147: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 14b: 31 c0 xorl %eax, %eax
// 14d: 48 83 c4 18 addq $0x18, %rsp
// 151: 5b popq %rbx
// 152: 41 5c popq %r12
// 154: 41 5d popq %r13
// 156: 41 5e popq %r14
// 158: 41 5f popq %r15
// 15a: 5d popq %rbp
// 15b: c3 retq
// 15c:
static const unsigned char _CHECK_EG_MATCH_code_body[349] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x48, 0x83, 0xec, 0x18, 0x49, 0x89,
0xd7, 0x48, 0x89, 0xf3, 0x49, 0x89, 0xfe, 0x4c,
0x8b, 0x6e, 0xf0, 0x4c, 0x8b, 0x66, 0xf8, 0x48,
0x89, 0xd7, 0x4c, 0x89, 0xe6, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x85, 0xc0, 0x0f, 0x88, 0xb0,
0x00, 0x00, 0x00, 0x48, 0xc7, 0x44, 0x24, 0x08,
0x00, 0x00, 0x00, 0x00, 0x48, 0xc7, 0x44, 0x24,
0x10, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x54,
0x24, 0x08, 0x48, 0x8d, 0x4c, 0x24, 0x10, 0x4c,
0x89, 0xef, 0x4c, 0x89, 0xe6, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x89, 0xc5, 0x49, 0x8b, 0x45,
0x00, 0x85, 0xc0, 0x78, 0x12, 0x48, 0xff, 0xc8,
0x49, 0x89, 0x45, 0x00, 0x75, 0x09, 0x4c, 0x89,
0xef, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x49,
0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, 0x0d, 0x48,
0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, 0x0f, 0x84,
0x8d, 0x00, 0x00, 0x00, 0x85, 0xed, 0x0f, 0x88,
0x96, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x7c, 0x24,
0x08, 0x48, 0x85, 0xff, 0x0f, 0x84, 0x88, 0x00,
0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x48, 0x39, 0xc7, 0x74, 0x0b, 0xff, 0x15,
0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x44, 0x24,
0x08, 0x48, 0x8b, 0x4c, 0x24, 0x10, 0x48, 0x89,
0x4b, 0xf0, 0x48, 0x89, 0x43, 0xf8, 0x4c, 0x89,
0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, 0x48,
0x83, 0xc4, 0x18, 0x5b, 0x41, 0x5c, 0x41, 0x5d,
0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00,
0x00, 0x00, 0x00, 0x49, 0x8b, 0x45, 0x00, 0x85,
0xc0, 0x78, 0x12, 0x48, 0xff, 0xc8, 0x49, 0x89,
0x45, 0x00, 0x75, 0x09, 0x4c, 0x89, 0xef, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0x49, 0x8b, 0x04,
0x24, 0x85, 0xc0, 0x78, 0x25, 0x48, 0xff, 0xc8,
0x49, 0x89, 0x04, 0x24, 0x75, 0x1c, 0x4c, 0x89,
0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb,
0x11, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00,
0x00, 0x00, 0x85, 0xed, 0x0f, 0x89, 0x6a, 0xff,
0xff, 0xff, 0x48, 0x83, 0xc3, 0xf0, 0x48, 0x8b,
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87,
0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, 0xf3, 0x48,
0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb, 0x03, 0x41,
0x89, 0x5e, 0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4,
0x18, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e,
0x41, 0x5f, 0x5d, 0xc3,
};
static const Hole _CHECK_EG_MATCH_code_holes[11] = {
{0x27, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x57, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x73, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0xa5, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0xb0, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0xdf, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0xf9, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x113, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x11e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x131, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
};
// 0:
// 0: &_PyEval_CheckExceptStarTypeValid+0x0
// 8: &_PyEval_ExceptionGroupMatch+0x0
// 10: &_Py_Dealloc+0x0
// 18: &_Py_NoneStruct+0x0
// 20: &PyErr_SetHandledException+0x0
// 28: CONTINUE
// 30: EXECUTOR
static const unsigned char _CHECK_EG_MATCH_data_body[57] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CHECK_EG_MATCH_data_holes[8] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyEval_CheckExceptStarTypeValid, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyEval_ExceptionGroupMatch, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_NoneStruct, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyErr_SetHandledException, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x30, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _CHECK_EXC_MATCH
//
// /tmp/tmp2mfmnab2/_CHECK_EXC_MATCH.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d7 movq %rdx, %r15
// e: 48 89 f3 movq %rsi, %rbx
// 11: 49 89 fe movq %rdi, %r14
// 14: 4c 8b 6e f0 movq -0x10(%rsi), %r13
// 18: 4c 8b 66 f8 movq -0x8(%rsi), %r12
// 1c: 48 89 d7 movq %rdx, %rdi
// 1f: 4c 89 e6 movq %r12, %rsi
// 22: ff 15 00 00 00 00 callq *(%rip) # 0x28 <_JIT_ENTRY+0x28>
// 0000000000000024: R_X86_64_GOTPCRELX _PyEval_CheckExceptTypeValid-0x4
// 28: 85 c0 testl %eax, %eax
// 2a: 78 2c js 0x58 <_JIT_ENTRY+0x58>
// 2c: 4c 89 ef movq %r13, %rdi
// 2f: 4c 89 e6 movq %r12, %rsi
// 32: ff 15 00 00 00 00 callq *(%rip) # 0x38 <_JIT_ENTRY+0x38>
// 0000000000000034: R_X86_64_GOTPCRELX PyErr_GivenExceptionMatches-0x4
// 38: 89 c5 movl %eax, %ebp
// 3a: 49 8b 04 24 movq (%r12), %rax
// 3e: 85 c0 testl %eax, %eax
// 40: 78 09 js 0x4b <_JIT_ENTRY+0x4b>
// 42: 48 ff c8 decq %rax
// 45: 49 89 04 24 movq %rax, (%r12)
// 49: 74 59 je 0xa4 <_JIT_ENTRY+0xa4>
// 4b: 85 ed testl %ebp, %ebp
// 4d: 75 62 jne 0xb1 <_JIT_ENTRY+0xb1>
// 4f: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x56 <_JIT_ENTRY+0x56>
// 0000000000000052: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4
// 56: eb 60 jmp 0xb8 <_JIT_ENTRY+0xb8>
// 58: 48 83 c3 f8 addq $-0x8, %rbx
// 5c: 49 8b 04 24 movq (%r12), %rax
// 60: 85 c0 testl %eax, %eax
// 62: 78 12 js 0x76 <_JIT_ENTRY+0x76>
// 64: 48 ff c8 decq %rax
// 67: 49 89 04 24 movq %rax, (%r12)
// 6b: 75 09 jne 0x76 <_JIT_ENTRY+0x76>
// 6d: 4c 89 e7 movq %r12, %rdi
// 70: ff 15 00 00 00 00 callq *(%rip) # 0x76 <_JIT_ENTRY+0x76>
// 0000000000000072: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 76: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x7d <_JIT_ENTRY+0x7d>
// 0000000000000079: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 7d: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 84: 4c 29 f3 subq %r14, %rbx
// 87: 48 83 c3 b8 addq $-0x48, %rbx
// 8b: 48 c1 eb 03 shrq $0x3, %rbx
// 8f: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 93: 31 c0 xorl %eax, %eax
// 95: 48 83 c4 08 addq $0x8, %rsp
// 99: 5b popq %rbx
// 9a: 41 5c popq %r12
// 9c: 41 5d popq %r13
// 9e: 41 5e popq %r14
// a0: 41 5f popq %r15
// a2: 5d popq %rbp
// a3: c3 retq
// a4: 4c 89 e7 movq %r12, %rdi
// a7: ff 15 00 00 00 00 callq *(%rip) # 0xad <_JIT_ENTRY+0xad>
// 00000000000000a9: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// ad: 85 ed testl %ebp, %ebp
// af: 74 9e je 0x4f <_JIT_ENTRY+0x4f>
// b1: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xb8 <_JIT_ENTRY+0xb8>
// 00000000000000b4: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4
// b8: 48 89 43 f8 movq %rax, -0x8(%rbx)
// bc: 4c 89 f7 movq %r14, %rdi
// bf: 48 89 de movq %rbx, %rsi
// c2: 4c 89 fa movq %r15, %rdx
// c5: 48 83 c4 08 addq $0x8, %rsp
// c9: 5b popq %rbx
// ca: 41 5c popq %r12
// cc: 41 5d popq %r13
// ce: 41 5e popq %r14
// d0: 41 5f popq %r15
// d2: 5d popq %rbp
// d3: ff 25 00 00 00 00 jmpq *(%rip) # 0xd9 <_JIT_ENTRY+0xd9>
// 00000000000000d5: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// d3:
static const unsigned char _CHECK_EXC_MATCH_code_body[212] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x48, 0x89,
0xf3, 0x49, 0x89, 0xfe, 0x4c, 0x8b, 0x6e, 0xf0,
0x4c, 0x8b, 0x66, 0xf8, 0x48, 0x89, 0xd7, 0x4c,
0x89, 0xe6, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x85, 0xc0, 0x78, 0x2c, 0x4c, 0x89, 0xef, 0x4c,
0x89, 0xe6, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x89, 0xc5, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0,
0x78, 0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x04,
0x24, 0x74, 0x59, 0x85, 0xed, 0x75, 0x62, 0x48,
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x60,
0x48, 0x83, 0xc3, 0xf8, 0x49, 0x8b, 0x04, 0x24,
0x85, 0xc0, 0x78, 0x12, 0x48, 0xff, 0xc8, 0x49,
0x89, 0x04, 0x24, 0x75, 0x09, 0x4c, 0x89, 0xe7,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b,
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87,
0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, 0xf3, 0x48,
0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb, 0x03, 0x41,
0x89, 0x5e, 0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4,
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e,
0x41, 0x5f, 0x5d, 0xc3, 0x4c, 0x89, 0xe7, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0x85, 0xed, 0x74,
0x9e, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x48, 0x89, 0x43, 0xf8, 0x4c, 0x89, 0xf7, 0x48,
0x89, 0xde, 0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4,
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e,
0x41, 0x5f, 0x5d,
};
static const Hole _CHECK_EXC_MATCH_code_holes[8] = {
{0x24, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x34, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x52, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x72, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x79, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0xa9, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0xb4, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
};
// 0:
// 0: &_PyEval_CheckExceptTypeValid+0x0
// 8: &PyErr_GivenExceptionMatches+0x0
// 10: &_Py_FalseStruct+0x0
// 18: &_Py_Dealloc+0x0
// 20: EXECUTOR
// 28: &_Py_TrueStruct+0x0
static const unsigned char _CHECK_EXC_MATCH_data_body[49] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CHECK_EXC_MATCH_data_holes[7] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyEval_CheckExceptTypeValid, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyErr_GivenExceptionMatches, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0},
};
// _CHECK_FUNCTION
//
// /tmp/tmp2mfmnab2/_CHECK_FUNCTION.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 47 10 movq 0x10(%rdi), %rax
// 4: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0xb <_JIT_ENTRY+0xb>
// 0000000000000007: R_X86_64_REX_GOTPCRELX _JIT_OPERAND-0x4
// b: 74 30 je 0x3d <_JIT_ENTRY+0x3d>
// d: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x14 <_JIT_ENTRY+0x14>
// 0000000000000010: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 14: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 1b: 48 29 fe subq %rdi, %rsi
// 1e: 48 83 c6 b8 addq $-0x48, %rsi
// 22: 48 c1 ee 03 shrq $0x3, %rsi
// 26: 89 77 40 movl %esi, 0x40(%rdi)
// 29: 48 8b 07 movq (%rdi), %rax
// 2c: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x32 <_JIT_ENTRY+0x32>
// 000000000000002e: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 32: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 36: 48 05 c8 00 00 00 addq $0xc8, %rax
// 3c: c3 retq
// 3d: ff 25 00 00 00 00 jmpq *(%rip) # 0x43 <_JIT_ENTRY+0x43>
// 000000000000003f: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 3d:
static const unsigned char _CHECK_FUNCTION_code_body[62] = {
0x48, 0x8b, 0x47, 0x10, 0x48, 0x3b, 0x05, 0x00,
0x00, 0x00, 0x00, 0x74, 0x30, 0x48, 0x8b, 0x05,
0x00, 0x00, 0x00, 0x00, 0x48, 0x89, 0x82, 0x28,
0x01, 0x00, 0x00, 0x48, 0x29, 0xfe, 0x48, 0x83,
0xc6, 0xb8, 0x48, 0xc1, 0xee, 0x03, 0x89, 0x77,
0x40, 0x48, 0x8b, 0x07, 0x8b, 0x0d, 0x00, 0x00,
0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05,
0xc8, 0x00, 0x00, 0x00, 0xc3,
};
static const Hole _CHECK_FUNCTION_code_holes[4] = {
{0x7, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x10, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x2e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
};
// 0:
// 0: OPERAND
// 8: EXECUTOR
// 10: TARGET
static const unsigned char _CHECK_FUNCTION_data_body[25] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CHECK_FUNCTION_data_holes[4] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPERAND, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _CHECK_FUNCTION_EXACT_ARGS
//
// /tmp/tmp2mfmnab2/_CHECK_FUNCTION_EXACT_ARGS.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x7 <_JIT_ENTRY+0x7>
// 0000000000000003: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 7: b9 fe ff ff ff movl $0xfffffffe, %ecx # imm = 0xFFFFFFFE
// c: 29 c1 subl %eax, %ecx
// e: 48 63 c9 movslq %ecx, %rcx
// 11: 48 8b 0c ce movq (%rsi,%rcx,8), %rcx
// 15: 4c 8b 41 08 movq 0x8(%rcx), %r8
// 19: 4c 3b 05 00 00 00 00 cmpq (%rip), %r8 # 0x20 <_JIT_ENTRY+0x20>
// 000000000000001c: R_X86_64_REX_GOTPCRELX PyFunction_Type-0x4
// 20: 75 30 jne 0x52 <_JIT_ENTRY+0x52>
// 22: 44 8b 81 88 00 00 00 movl 0x88(%rcx), %r8d
// 29: 44 3b 05 00 00 00 00 cmpl (%rip), %r8d # 0x30 <_JIT_ENTRY+0x30>
// 000000000000002c: R_X86_64_REX_GOTPCRELX _JIT_OPERAND-0x4
// 30: 75 20 jne 0x52 <_JIT_ENTRY+0x52>
// 32: 41 89 c0 movl %eax, %r8d
// 35: 41 f7 d0 notl %r8d
// 38: 4d 63 c0 movslq %r8d, %r8
// 3b: 48 8b 49 30 movq 0x30(%rcx), %rcx
// 3f: 4a 83 3c c6 01 cmpq $0x1, (%rsi,%r8,8)
// 44: 83 d8 ff sbbl $-0x1, %eax
// 47: 39 41 34 cmpl %eax, 0x34(%rcx)
// 4a: 75 06 jne 0x52 <_JIT_ENTRY+0x52>
// 4c: ff 25 00 00 00 00 jmpq *(%rip) # 0x52 <_JIT_ENTRY+0x52>
// 000000000000004e: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 52: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x59 <_JIT_ENTRY+0x59>
// 0000000000000055: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 59: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 60: 48 29 fe subq %rdi, %rsi
// 63: 48 83 c6 b8 addq $-0x48, %rsi
// 67: 48 c1 ee 03 shrq $0x3, %rsi
// 6b: 89 77 40 movl %esi, 0x40(%rdi)
// 6e: 48 8b 07 movq (%rdi), %rax
// 71: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x77 <_JIT_ENTRY+0x77>
// 0000000000000073: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 77: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 7b: 48 05 c8 00 00 00 addq $0xc8, %rax
// 81: c3 retq
// 82:
static const unsigned char _CHECK_FUNCTION_EXACT_ARGS_code_body[131] = {
0x0f, 0xb7, 0x05, 0x00, 0x00, 0x00, 0x00, 0xb9,
0xfe, 0xff, 0xff, 0xff, 0x29, 0xc1, 0x48, 0x63,
0xc9, 0x48, 0x8b, 0x0c, 0xce, 0x4c, 0x8b, 0x41,
0x08, 0x4c, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x75, 0x30, 0x44, 0x8b, 0x81, 0x88, 0x00, 0x00,
0x00, 0x44, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x75, 0x20, 0x41, 0x89, 0xc0, 0x41, 0xf7, 0xd0,
0x4d, 0x63, 0xc0, 0x48, 0x8b, 0x49, 0x30, 0x4a,
0x83, 0x3c, 0xc6, 0x01, 0x83, 0xd8, 0xff, 0x39,
0x41, 0x34, 0x75, 0x06, 0xff, 0x25, 0x00, 0x00,
0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x48, 0x89, 0x82, 0x28, 0x01, 0x00, 0x00,
0x48, 0x29, 0xfe, 0x48, 0x83, 0xc6, 0xb8, 0x48,
0xc1, 0xee, 0x03, 0x89, 0x77, 0x40, 0x48, 0x8b,
0x07, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48,
0x8d, 0x04, 0x48, 0x48, 0x05, 0xc8, 0x00, 0x00,
0x00, 0xc3,
};
static const Hole _CHECK_FUNCTION_EXACT_ARGS_code_holes[7] = {
{0x3, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x1c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x2c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x4e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x55, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0x73, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
};
// 0:
// 0: OPARG
// 8: &PyFunction_Type+0x0
// 10: OPERAND
// 18: CONTINUE
// 20: EXECUTOR
// 28: TARGET
static const unsigned char _CHECK_FUNCTION_EXACT_ARGS_data_body[49] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CHECK_FUNCTION_EXACT_ARGS_data_holes[7] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyFunction_Type, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_OPERAND, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _CHECK_MANAGED_OBJECT_HAS_VALUES
//
// /tmp/tmp2mfmnab2/_CHECK_MANAGED_OBJECT_HAS_VALUES.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 53 pushq %rbx
// 5: 49 89 d7 movq %rdx, %r15
// 8: 48 89 f3 movq %rsi, %rbx
// b: 49 89 fe movq %rdi, %r14
// e: 48 8b 7e f8 movq -0x8(%rsi), %rdi
// 12: f6 47 e8 01 testb $0x1, -0x18(%rdi)
// 16: 75 0e jne 0x26 <_JIT_ENTRY+0x26>
// 18: 48 8d 77 e8 leaq -0x18(%rdi), %rsi
// 1c: ff 15 00 00 00 00 callq *(%rip) # 0x22 <_JIT_ENTRY+0x22>
// 000000000000001e: R_X86_64_GOTPCRELX _PyObject_MakeInstanceAttributesFromDict-0x4
// 22: 84 c0 testb %al, %al
// 24: 74 14 je 0x3a <_JIT_ENTRY+0x3a>
// 26: 4c 89 f7 movq %r14, %rdi
// 29: 48 89 de movq %rbx, %rsi
// 2c: 4c 89 fa movq %r15, %rdx
// 2f: 5b popq %rbx
// 30: 41 5e popq %r14
// 32: 41 5f popq %r15
// 34: ff 25 00 00 00 00 jmpq *(%rip) # 0x3a <_JIT_ENTRY+0x3a>
// 0000000000000036: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 3a: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x41 <_JIT_ENTRY+0x41>
// 000000000000003d: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 41: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 48: 4c 29 f3 subq %r14, %rbx
// 4b: 48 83 c3 b8 addq $-0x48, %rbx
// 4f: 48 c1 eb 03 shrq $0x3, %rbx
// 53: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 57: 49 8b 06 movq (%r14), %rax
// 5a: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x60 <_JIT_ENTRY+0x60>
// 000000000000005c: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 60: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 64: 48 05 c8 00 00 00 addq $0xc8, %rax
// 6a: 5b popq %rbx
// 6b: 41 5e popq %r14
// 6d: 41 5f popq %r15
// 6f: c3 retq
// 70:
static const unsigned char _CHECK_MANAGED_OBJECT_HAS_VALUES_code_body[113] = {
0x41, 0x57, 0x41, 0x56, 0x53, 0x49, 0x89, 0xd7,
0x48, 0x89, 0xf3, 0x49, 0x89, 0xfe, 0x48, 0x8b,
0x7e, 0xf8, 0xf6, 0x47, 0xe8, 0x01, 0x75, 0x0e,
0x48, 0x8d, 0x77, 0xe8, 0xff, 0x15, 0x00, 0x00,
0x00, 0x00, 0x84, 0xc0, 0x74, 0x14, 0x4c, 0x89,
0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, 0x5b,
0x41, 0x5e, 0x41, 0x5f, 0xff, 0x25, 0x00, 0x00,
0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00, 0x00,
0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8, 0x48,
0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, 0x49,
0x8b, 0x06, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00,
0x48, 0x8d, 0x04, 0x48, 0x48, 0x05, 0xc8, 0x00,
0x00, 0x00, 0x5b, 0x41, 0x5e, 0x41, 0x5f, 0xc3,
};
static const Hole _CHECK_MANAGED_OBJECT_HAS_VALUES_code_holes[5] = {
{0x1e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x36, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x3d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x5c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
};
// 0:
// 0: &_PyObject_MakeInstanceAttributesFromDict+0x0
// 8: CONTINUE
// 10: EXECUTOR
// 18: TARGET
static const unsigned char _CHECK_MANAGED_OBJECT_HAS_VALUES_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CHECK_MANAGED_OBJECT_HAS_VALUES_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyObject_MakeInstanceAttributesFromDict, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _CHECK_PEP_523
//
// /tmp/tmp2mfmnab2/_CHECK_PEP_523.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 42 10 movq 0x10(%rdx), %rax
// 4: 48 83 b8 e0 07 00 00 00 cmpq $0x0, 0x7e0(%rax)
// c: 74 30 je 0x3e <_JIT_ENTRY+0x3e>
// e: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x15 <_JIT_ENTRY+0x15>
// 0000000000000011: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 15: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 1c: 48 29 fe subq %rdi, %rsi
// 1f: 48 83 c6 b8 addq $-0x48, %rsi
// 23: 48 c1 ee 03 shrq $0x3, %rsi
// 27: 89 77 40 movl %esi, 0x40(%rdi)
// 2a: 48 8b 07 movq (%rdi), %rax
// 2d: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x33 <_JIT_ENTRY+0x33>
// 000000000000002f: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 33: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 37: 48 05 c8 00 00 00 addq $0xc8, %rax
// 3d: c3 retq
// 3e: ff 25 00 00 00 00 jmpq *(%rip) # 0x44 <_JIT_ENTRY+0x44>
// 0000000000000040: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 3e:
static const unsigned char _CHECK_PEP_523_code_body[63] = {
0x48, 0x8b, 0x42, 0x10, 0x48, 0x83, 0xb8, 0xe0,
0x07, 0x00, 0x00, 0x00, 0x74, 0x30, 0x48, 0x8b,
0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x89, 0x82,
0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xfe, 0x48,
0x83, 0xc6, 0xb8, 0x48, 0xc1, 0xee, 0x03, 0x89,
0x77, 0x40, 0x48, 0x8b, 0x07, 0x8b, 0x0d, 0x00,
0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, 0x48,
0x05, 0xc8, 0x00, 0x00, 0x00, 0xc3,
};
static const Hole _CHECK_PEP_523_code_holes[3] = {
{0x11, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x2f, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
};
// 0:
// 0: EXECUTOR
// 8: TARGET
static const unsigned char _CHECK_PEP_523_data_body[17] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CHECK_PEP_523_data_holes[3] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _CHECK_STACK_SPACE
//
// /tmp/tmp2mfmnab2/_CHECK_STACK_SPACE.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 82 08 01 00 00 movq 0x108(%rdx), %rax
// 7: 48 85 c0 testq %rax, %rax
// a: 74 38 je 0x44 <_JIT_ENTRY+0x44>
// c: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0x13 <_JIT_ENTRY+0x13>
// 000000000000000f: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 13: 41 b8 fe ff ff ff movl $0xfffffffe, %r8d # imm = 0xFFFFFFFE
// 19: 41 29 c8 subl %ecx, %r8d
// 1c: 49 63 c8 movslq %r8d, %rcx
// 1f: 48 8b 0c ce movq (%rsi,%rcx,8), %rcx
// 23: 48 8b 49 30 movq 0x30(%rcx), %rcx
// 27: 48 63 49 4c movslq 0x4c(%rcx), %rcx
// 2b: 4c 8b 82 10 01 00 00 movq 0x110(%rdx), %r8
// 32: 49 29 c0 subq %rax, %r8
// 35: 49 c1 f8 03 sarq $0x3, %r8
// 39: 49 39 c8 cmpq %rcx, %r8
// 3c: 7e 06 jle 0x44 <_JIT_ENTRY+0x44>
// 3e: 83 7a 2c 02 cmpl $0x2, 0x2c(%rdx)
// 42: 7d 30 jge 0x74 <_JIT_ENTRY+0x74>
// 44: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x4b <_JIT_ENTRY+0x4b>
// 0000000000000047: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 4b: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 52: 48 29 fe subq %rdi, %rsi
// 55: 48 83 c6 b8 addq $-0x48, %rsi
// 59: 48 c1 ee 03 shrq $0x3, %rsi
// 5d: 89 77 40 movl %esi, 0x40(%rdi)
// 60: 48 8b 07 movq (%rdi), %rax
// 63: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x69 <_JIT_ENTRY+0x69>
// 0000000000000065: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 69: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 6d: 48 05 c8 00 00 00 addq $0xc8, %rax
// 73: c3 retq
// 74: ff 25 00 00 00 00 jmpq *(%rip) # 0x7a <_JIT_ENTRY+0x7a>
// 0000000000000076: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 74:
static const unsigned char _CHECK_STACK_SPACE_code_body[117] = {
0x48, 0x8b, 0x82, 0x08, 0x01, 0x00, 0x00, 0x48,
0x85, 0xc0, 0x74, 0x38, 0x0f, 0xb7, 0x0d, 0x00,
0x00, 0x00, 0x00, 0x41, 0xb8, 0xfe, 0xff, 0xff,
0xff, 0x41, 0x29, 0xc8, 0x49, 0x63, 0xc8, 0x48,
0x8b, 0x0c, 0xce, 0x48, 0x8b, 0x49, 0x30, 0x48,
0x63, 0x49, 0x4c, 0x4c, 0x8b, 0x82, 0x10, 0x01,
0x00, 0x00, 0x49, 0x29, 0xc0, 0x49, 0xc1, 0xf8,
0x03, 0x49, 0x39, 0xc8, 0x7e, 0x06, 0x83, 0x7a,
0x2c, 0x02, 0x7d, 0x30, 0x48, 0x8b, 0x05, 0x00,
0x00, 0x00, 0x00, 0x48, 0x89, 0x82, 0x28, 0x01,
0x00, 0x00, 0x48, 0x29, 0xfe, 0x48, 0x83, 0xc6,
0xb8, 0x48, 0xc1, 0xee, 0x03, 0x89, 0x77, 0x40,
0x48, 0x8b, 0x07, 0x8b, 0x0d, 0x00, 0x00, 0x00,
0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05, 0xc8,
0x00, 0x00, 0x00, 0xc3,
};
static const Hole _CHECK_STACK_SPACE_code_holes[4] = {
{0xf, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x47, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x65, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
};
// 0:
// 0: OPARG
// 8: EXECUTOR
// 10: TARGET
static const unsigned char _CHECK_STACK_SPACE_data_body[25] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CHECK_STACK_SPACE_data_holes[4] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _CHECK_VALIDITY
//
// /tmp/tmp2mfmnab2/_CHECK_VALIDITY.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x7 <_JIT_ENTRY+0x7>
// 0000000000000003: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 7: 80 78 22 00 cmpb $0x0, 0x22(%rax)
// b: 74 06 je 0x13 <_JIT_ENTRY+0x13>
// d: ff 25 00 00 00 00 jmpq *(%rip) # 0x13 <_JIT_ENTRY+0x13>
// 000000000000000f: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 13: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 1a: 48 29 fe subq %rdi, %rsi
// 1d: 48 83 c6 b8 addq $-0x48, %rsi
// 21: 48 c1 ee 03 shrq $0x3, %rsi
// 25: 89 77 40 movl %esi, 0x40(%rdi)
// 28: 48 8b 07 movq (%rdi), %rax
// 2b: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x31 <_JIT_ENTRY+0x31>
// 000000000000002d: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 31: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 35: 48 05 c8 00 00 00 addq $0xc8, %rax
// 3b: c3 retq
// 3c:
static const unsigned char _CHECK_VALIDITY_code_body[61] = {
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x80,
0x78, 0x22, 0x00, 0x74, 0x06, 0xff, 0x25, 0x00,
0x00, 0x00, 0x00, 0x48, 0x89, 0x82, 0x28, 0x01,
0x00, 0x00, 0x48, 0x29, 0xfe, 0x48, 0x83, 0xc6,
0xb8, 0x48, 0xc1, 0xee, 0x03, 0x89, 0x77, 0x40,
0x48, 0x8b, 0x07, 0x8b, 0x0d, 0x00, 0x00, 0x00,
0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05, 0xc8,
0x00, 0x00, 0x00, 0xc3,
};
static const Hole _CHECK_VALIDITY_code_holes[4] = {
{0x3, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0xf, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x2d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
};
// 0:
// 0: EXECUTOR
// 8: CONTINUE
// 10: TARGET
static const unsigned char _CHECK_VALIDITY_data_body[25] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CHECK_VALIDITY_data_holes[4] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _CHECK_VALIDITY_AND_SET_IP
//
// /tmp/tmp2mfmnab2/_CHECK_VALIDITY_AND_SET_IP.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x7 <_JIT_ENTRY+0x7>
// 0000000000000003: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 7: 80 78 22 00 cmpb $0x0, 0x22(%rax)
// b: 74 11 je 0x1e <_JIT_ENTRY+0x1e>
// d: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x14 <_JIT_ENTRY+0x14>
// 0000000000000010: R_X86_64_REX_GOTPCRELX _JIT_OPERAND-0x4
// 14: 48 89 47 38 movq %rax, 0x38(%rdi)
// 18: ff 25 00 00 00 00 jmpq *(%rip) # 0x1e <_JIT_ENTRY+0x1e>
// 000000000000001a: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 1e: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 25: 48 29 fe subq %rdi, %rsi
// 28: 48 83 c6 b8 addq $-0x48, %rsi
// 2c: 48 c1 ee 03 shrq $0x3, %rsi
// 30: 89 77 40 movl %esi, 0x40(%rdi)
// 33: 48 8b 07 movq (%rdi), %rax
// 36: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x3c <_JIT_ENTRY+0x3c>
// 0000000000000038: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 3c: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 40: 48 05 c8 00 00 00 addq $0xc8, %rax
// 46: c3 retq
// 47:
static const unsigned char _CHECK_VALIDITY_AND_SET_IP_code_body[72] = {
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x80,
0x78, 0x22, 0x00, 0x74, 0x11, 0x48, 0x8b, 0x05,
0x00, 0x00, 0x00, 0x00, 0x48, 0x89, 0x47, 0x38,
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x89,
0x82, 0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xfe,
0x48, 0x83, 0xc6, 0xb8, 0x48, 0xc1, 0xee, 0x03,
0x89, 0x77, 0x40, 0x48, 0x8b, 0x07, 0x8b, 0x0d,
0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48,
0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0xc3,
};
static const Hole _CHECK_VALIDITY_AND_SET_IP_code_holes[5] = {
{0x3, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x10, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x1a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x38, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
};
// 0:
// 0: EXECUTOR
// 8: OPERAND
// 10: CONTINUE
// 18: TARGET
static const unsigned char _CHECK_VALIDITY_AND_SET_IP_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CHECK_VALIDITY_AND_SET_IP_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_OPERAND, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _COLD_EXIT
//
// /tmp/tmp2mfmnab2/_COLD_EXIT.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d7 movq %rdx, %r15
// e: 48 89 f3 movq %rsi, %rbx
// 11: 49 89 fe movq %rdi, %r14
// 14: 4c 8b a2 28 01 00 00 movq 0x128(%rdx), %r12
// 1b: 0f b7 2d 00 00 00 00 movzwl (%rip), %ebp # 0x22 <_JIT_ENTRY+0x22>
// 000000000000001e: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 22: 48 c1 e5 04 shlq $0x4, %rbp
// 26: 41 8b 4c 2c 78 movl 0x78(%r12,%rbp), %ecx
// 2b: 41 8b 54 2c 7c movl 0x7c(%r12,%rbp), %edx
// 30: ff c2 incl %edx
// 32: 66 41 89 54 2c 7c movw %dx, 0x7c(%r12,%rbp)
// 38: 48 8b 07 movq (%rdi), %rax
// 3b: 4c 8d 2c 48 leaq (%rax,%rcx,2), %r13
// 3f: 49 81 c5 c8 00 00 00 addq $0xc8, %r13
// 46: 0f bf ca movswl %dx, %ecx
// 49: 49 8b 57 10 movq 0x10(%r15), %rdx
// 4d: 0f b7 92 e0 50 02 00 movzwl 0x250e0(%rdx), %edx
// 54: 39 d1 cmpl %edx, %ecx
// 56: 7d 21 jge 0x79 <_JIT_ENTRY+0x79>
// 58: 4c 29 f3 subq %r14, %rbx
// 5b: 48 83 c3 b8 addq $-0x48, %rbx
// 5f: 48 c1 eb 03 shrq $0x3, %rbx
// 63: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 67: 4c 89 e8 movq %r13, %rax
// 6a: 48 83 c4 08 addq $0x8, %rsp
// 6e: 5b popq %rbx
// 6f: 41 5c popq %r12
// 71: 41 5d popq %r13
// 73: 41 5e popq %r14
// 75: 41 5f popq %r15
// 77: 5d popq %rbp
// 78: c3 retq
// 79: 41 80 7d 00 46 cmpb $0x46, (%r13)
// 7e: 75 1f jne 0x9f <_JIT_ENTRY+0x9f>
// 80: 48 8b 80 98 00 00 00 movq 0x98(%rax), %rax
// 87: 41 0f b6 4d 01 movzbl 0x1(%r13), %ecx
// 8c: 48 8b 44 c8 08 movq 0x8(%rax,%rcx,8), %rax
// 91: 48 89 04 24 movq %rax, (%rsp)
// 95: 8b 08 movl (%rax), %ecx
// 97: ff c1 incl %ecx
// 99: 74 1a je 0xb5 <_JIT_ENTRY+0xb5>
// 9b: 89 08 movl %ecx, (%rax)
// 9d: eb 16 jmp 0xb5 <_JIT_ENTRY+0xb5>
// 9f: 48 89 e1 movq %rsp, %rcx
// a2: 4c 89 f7 movq %r14, %rdi
// a5: 4c 89 ee movq %r13, %rsi
// a8: 48 89 da movq %rbx, %rdx
// ab: ff 15 00 00 00 00 callq *(%rip) # 0xb1 <_JIT_ENTRY+0xb1>
// 00000000000000ad: R_X86_64_GOTPCRELX _PyOptimizer_Optimize-0x4
// b1: 85 c0 testl %eax, %eax
// b3: 7e 44 jle 0xf9 <_JIT_ENTRY+0xf9>
// b5: 48 8b 04 24 movq (%rsp), %rax
// b9: 8b 08 movl (%rax), %ecx
// bb: ff c1 incl %ecx
// bd: 74 06 je 0xc5 <_JIT_ENTRY+0xc5>
// bf: 89 08 movl %ecx, (%rax)
// c1: 48 8b 04 24 movq (%rsp), %rax
// c5: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0xcc <_JIT_ENTRY+0xcc>
// 00000000000000c8: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// cc: 48 c1 e1 04 shlq $0x4, %rcx
// d0: 49 89 84 0c 80 00 00 00 movq %rax, 0x80(%r12,%rcx)
// d8: 48 8b 04 24 movq (%rsp), %rax
// dc: 48 8b 40 70 movq 0x70(%rax), %rax
// e0: 4c 89 f7 movq %r14, %rdi
// e3: 48 89 de movq %rbx, %rsi
// e6: 4c 89 fa movq %r15, %rdx
// e9: 48 83 c4 08 addq $0x8, %rsp
// ed: 5b popq %rbx
// ee: 41 5c popq %r12
// f0: 41 5d popq %r13
// f2: 41 5e popq %r14
// f4: 41 5f popq %r15
// f6: 5d popq %rbp
// f7: ff e0 jmpq *%rax
// f9: 49 8d 0c 2c leaq (%r12,%rbp), %rcx
// fd: 48 83 c1 7c addq $0x7c, %rcx
// 101: 49 8b 57 10 movq 0x10(%r15), %rdx
// 105: 0f b7 92 e0 50 02 00 movzwl 0x250e0(%rdx), %edx
// 10c: f7 da negl %edx
// 10e: 81 fa 01 80 ff ff cmpl $0xffff8001, %edx # imm = 0xFFFF8001
// 114: be 00 80 ff ff movl $0xffff8000, %esi # imm = 0xFFFF8000
// 119: 0f 4d f2 cmovgel %edx, %esi
// 11c: 66 89 31 movw %si, (%rcx)
// 11f: 85 c0 testl %eax, %eax
// 121: 0f 89 31 ff ff ff jns 0x58 <_JIT_ENTRY+0x58>
// 127: 49 8b 04 24 movq (%r12), %rax
// 12b: 85 c0 testl %eax, %eax
// 12d: 78 12 js 0x141 <_JIT_ENTRY+0x141>
// 12f: 48 ff c8 decq %rax
// 132: 49 89 04 24 movq %rax, (%r12)
// 136: 75 09 jne 0x141 <_JIT_ENTRY+0x141>
// 138: 4c 89 e7 movq %r12, %rdi
// 13b: ff 15 00 00 00 00 callq *(%rip) # 0x141 <_JIT_ENTRY+0x141>
// 000000000000013d: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 141: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x148 <_JIT_ENTRY+0x148>
// 0000000000000144: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 148: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 14f: 4c 29 f3 subq %r14, %rbx
// 152: 48 83 c3 b8 addq $-0x48, %rbx
// 156: 48 c1 eb 03 shrq $0x3, %rbx
// 15a: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 15e: 45 31 ed xorl %r13d, %r13d
// 161: e9 01 ff ff ff jmp 0x67 <_JIT_ENTRY+0x67>
// 166:
static const unsigned char _COLD_EXIT_code_body[359] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x48, 0x89,
0xf3, 0x49, 0x89, 0xfe, 0x4c, 0x8b, 0xa2, 0x28,
0x01, 0x00, 0x00, 0x0f, 0xb7, 0x2d, 0x00, 0x00,
0x00, 0x00, 0x48, 0xc1, 0xe5, 0x04, 0x41, 0x8b,
0x4c, 0x2c, 0x78, 0x41, 0x8b, 0x54, 0x2c, 0x7c,
0xff, 0xc2, 0x66, 0x41, 0x89, 0x54, 0x2c, 0x7c,
0x48, 0x8b, 0x07, 0x4c, 0x8d, 0x2c, 0x48, 0x49,
0x81, 0xc5, 0xc8, 0x00, 0x00, 0x00, 0x0f, 0xbf,
0xca, 0x49, 0x8b, 0x57, 0x10, 0x0f, 0xb7, 0x92,
0xe0, 0x50, 0x02, 0x00, 0x39, 0xd1, 0x7d, 0x21,
0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8, 0x48,
0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, 0x4c,
0x89, 0xe8, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41,
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d,
0xc3, 0x41, 0x80, 0x7d, 0x00, 0x46, 0x75, 0x1f,
0x48, 0x8b, 0x80, 0x98, 0x00, 0x00, 0x00, 0x41,
0x0f, 0xb6, 0x4d, 0x01, 0x48, 0x8b, 0x44, 0xc8,
0x08, 0x48, 0x89, 0x04, 0x24, 0x8b, 0x08, 0xff,
0xc1, 0x74, 0x1a, 0x89, 0x08, 0xeb, 0x16, 0x48,
0x89, 0xe1, 0x4c, 0x89, 0xf7, 0x4c, 0x89, 0xee,
0x48, 0x89, 0xda, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0x85, 0xc0, 0x7e, 0x44, 0x48, 0x8b, 0x04,
0x24, 0x8b, 0x08, 0xff, 0xc1, 0x74, 0x06, 0x89,
0x08, 0x48, 0x8b, 0x04, 0x24, 0x0f, 0xb7, 0x0d,
0x00, 0x00, 0x00, 0x00, 0x48, 0xc1, 0xe1, 0x04,
0x49, 0x89, 0x84, 0x0c, 0x80, 0x00, 0x00, 0x00,
0x48, 0x8b, 0x04, 0x24, 0x48, 0x8b, 0x40, 0x70,
0x4c, 0x89, 0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89,
0xfa, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c,
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xff,
0xe0, 0x49, 0x8d, 0x0c, 0x2c, 0x48, 0x83, 0xc1,
0x7c, 0x49, 0x8b, 0x57, 0x10, 0x0f, 0xb7, 0x92,
0xe0, 0x50, 0x02, 0x00, 0xf7, 0xda, 0x81, 0xfa,
0x01, 0x80, 0xff, 0xff, 0xbe, 0x00, 0x80, 0xff,
0xff, 0x0f, 0x4d, 0xf2, 0x66, 0x89, 0x31, 0x85,
0xc0, 0x0f, 0x89, 0x31, 0xff, 0xff, 0xff, 0x49,
0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, 0x12, 0x48,
0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x09,
0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x49, 0x89, 0x87, 0x28, 0x01, 0x00, 0x00, 0x4c,
0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8, 0x48, 0xc1,
0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, 0x45, 0x31,
0xed, 0xe9, 0x01, 0xff, 0xff, 0xff,
};
static const Hole _COLD_EXIT_code_holes[6] = {
{0x1e, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0xad, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0xc8, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x13d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x144, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
};
// 0:
// 0: OPARG
// 8: &_PyOptimizer_Optimize+0x0
// 10: &_Py_Dealloc+0x0
// 18: EXECUTOR
static const unsigned char _COLD_EXIT_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _COLD_EXIT_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyOptimizer_Optimize, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _COMPARE_OP
//
// /tmp/tmp2mfmnab2/_COMPARE_OP.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d6 movq %rdx, %r14
// e: 49 89 f7 movq %rsi, %r15
// 11: 48 89 fb movq %rdi, %rbx
// 14: 48 8b 6e f0 movq -0x10(%rsi), %rbp
// 18: 4c 8b 6e f8 movq -0x8(%rsi), %r13
// 1c: 0f b7 15 00 00 00 00 movzwl (%rip), %edx # 0x23 <_JIT_ENTRY+0x23>
// 000000000000001f: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 23: c1 ea 05 shrl $0x5, %edx
// 26: 48 89 ef movq %rbp, %rdi
// 29: 4c 89 ee movq %r13, %rsi
// 2c: ff 15 00 00 00 00 callq *(%rip) # 0x32 <_JIT_ENTRY+0x32>
// 000000000000002e: R_X86_64_GOTPCRELX PyObject_RichCompare-0x4
// 32: 49 89 c4 movq %rax, %r12
// 35: 48 8b 45 00 movq (%rbp), %rax
// 39: 85 c0 testl %eax, %eax
// 3b: 78 09 js 0x46 <_JIT_ENTRY+0x46>
// 3d: 48 ff c8 decq %rax
// 40: 48 89 45 00 movq %rax, (%rbp)
// 44: 74 1c je 0x62 <_JIT_ENTRY+0x62>
// 46: 49 8b 45 00 movq (%r13), %rax
// 4a: 85 c0 testl %eax, %eax
// 4c: 78 25 js 0x73 <_JIT_ENTRY+0x73>
// 4e: 48 ff c8 decq %rax
// 51: 49 89 45 00 movq %rax, (%r13)
// 55: 75 1c jne 0x73 <_JIT_ENTRY+0x73>
// 57: 4c 89 ef movq %r13, %rdi
// 5a: ff 15 00 00 00 00 callq *(%rip) # 0x60 <_JIT_ENTRY+0x60>
// 000000000000005c: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 60: eb 11 jmp 0x73 <_JIT_ENTRY+0x73>
// 62: 48 89 ef movq %rbp, %rdi
// 65: ff 15 00 00 00 00 callq *(%rip) # 0x6b <_JIT_ENTRY+0x6b>
// 0000000000000067: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 6b: 49 8b 45 00 movq (%r13), %rax
// 6f: 85 c0 testl %eax, %eax
// 71: 79 db jns 0x4e <_JIT_ENTRY+0x4e>
// 73: 4d 8d 6f f0 leaq -0x10(%r15), %r13
// 77: 4d 85 e4 testq %r12, %r12
// 7a: 74 32 je 0xae <_JIT_ENTRY+0xae>
// 7c: f6 05 00 00 00 00 10 testb $0x10, (%rip) # 0x83 <_JIT_ENTRY+0x83>
// 000000000000007e: R_X86_64_GOTPCREL _JIT_OPARG-0x5
// 83: 74 6d je 0xf2 <_JIT_ENTRY+0xf2>
// 85: 4c 89 e7 movq %r12, %rdi
// 88: ff 15 00 00 00 00 callq *(%rip) # 0x8e <_JIT_ENTRY+0x8e>
// 000000000000008a: R_X86_64_GOTPCRELX PyObject_IsTrue-0x4
// 8e: 89 c5 movl %eax, %ebp
// 90: 49 8b 04 24 movq (%r12), %rax
// 94: 85 c0 testl %eax, %eax
// 96: 78 09 js 0xa1 <_JIT_ENTRY+0xa1>
// 98: 48 ff c8 decq %rax
// 9b: 49 89 04 24 movq %rax, (%r12)
// 9f: 74 3b je 0xdc <_JIT_ENTRY+0xdc>
// a1: 85 ed testl %ebp, %ebp
// a3: 75 44 jne 0xe9 <_JIT_ENTRY+0xe9>
// a5: 4c 8b 25 00 00 00 00 movq (%rip), %r12 # 0xac <_JIT_ENTRY+0xac>
// 00000000000000a8: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4
// ac: 79 44 jns 0xf2 <_JIT_ENTRY+0xf2>
// ae: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xb5 <_JIT_ENTRY+0xb5>
// 00000000000000b1: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// b5: 49 89 86 28 01 00 00 movq %rax, 0x128(%r14)
// bc: 49 29 dd subq %rbx, %r13
// bf: 49 83 c5 b8 addq $-0x48, %r13
// c3: 49 c1 ed 03 shrq $0x3, %r13
// c7: 44 89 6b 40 movl %r13d, 0x40(%rbx)
// cb: 31 c0 xorl %eax, %eax
// cd: 48 83 c4 08 addq $0x8, %rsp
// d1: 5b popq %rbx
// d2: 41 5c popq %r12
// d4: 41 5d popq %r13
// d6: 41 5e popq %r14
// d8: 41 5f popq %r15
// da: 5d popq %rbp
// db: c3 retq
// dc: 4c 89 e7 movq %r12, %rdi
// df: ff 15 00 00 00 00 callq *(%rip) # 0xe5 <_JIT_ENTRY+0xe5>
// 00000000000000e1: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// e5: 85 ed testl %ebp, %ebp
// e7: 74 bc je 0xa5 <_JIT_ENTRY+0xa5>
// e9: 4c 8b 25 00 00 00 00 movq (%rip), %r12 # 0xf0 <_JIT_ENTRY+0xf0>
// 00000000000000ec: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4
// f0: 78 bc js 0xae <_JIT_ENTRY+0xae>
// f2: 49 83 c7 f8 addq $-0x8, %r15
// f6: 4d 89 65 00 movq %r12, (%r13)
// fa: 48 89 df movq %rbx, %rdi
// fd: 4c 89 fe movq %r15, %rsi
// 100: 4c 89 f2 movq %r14, %rdx
// 103: 48 83 c4 08 addq $0x8, %rsp
// 107: 5b popq %rbx
// 108: 41 5c popq %r12
// 10a: 41 5d popq %r13
// 10c: 41 5e popq %r14
// 10e: 41 5f popq %r15
// 110: 5d popq %rbp
// 111: ff 25 00 00 00 00 jmpq *(%rip) # 0x117 <_JIT_ENTRY+0x117>
// 0000000000000113: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 111:
static const unsigned char _COMPARE_OP_code_body[274] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89,
0xf7, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x6e, 0xf0,
0x4c, 0x8b, 0x6e, 0xf8, 0x0f, 0xb7, 0x15, 0x00,
0x00, 0x00, 0x00, 0xc1, 0xea, 0x05, 0x48, 0x89,
0xef, 0x4c, 0x89, 0xee, 0xff, 0x15, 0x00, 0x00,
0x00, 0x00, 0x49, 0x89, 0xc4, 0x48, 0x8b, 0x45,
0x00, 0x85, 0xc0, 0x78, 0x09, 0x48, 0xff, 0xc8,
0x48, 0x89, 0x45, 0x00, 0x74, 0x1c, 0x49, 0x8b,
0x45, 0x00, 0x85, 0xc0, 0x78, 0x25, 0x48, 0xff,
0xc8, 0x49, 0x89, 0x45, 0x00, 0x75, 0x1c, 0x4c,
0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0xeb, 0x11, 0x48, 0x89, 0xef, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x49, 0x8b, 0x45, 0x00, 0x85,
0xc0, 0x79, 0xdb, 0x4d, 0x8d, 0x6f, 0xf0, 0x4d,
0x85, 0xe4, 0x74, 0x32, 0xf6, 0x05, 0x00, 0x00,
0x00, 0x00, 0x10, 0x74, 0x6d, 0x4c, 0x89, 0xe7,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x89, 0xc5,
0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, 0x09,
0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, 0x74,
0x3b, 0x85, 0xed, 0x75, 0x44, 0x4c, 0x8b, 0x25,
0x00, 0x00, 0x00, 0x00, 0x79, 0x44, 0x48, 0x8b,
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x86,
0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xdd, 0x49,
0x83, 0xc5, 0xb8, 0x49, 0xc1, 0xed, 0x03, 0x44,
0x89, 0x6b, 0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4,
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e,
0x41, 0x5f, 0x5d, 0xc3, 0x4c, 0x89, 0xe7, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0x85, 0xed, 0x74,
0xbc, 0x4c, 0x8b, 0x25, 0x00, 0x00, 0x00, 0x00,
0x78, 0xbc, 0x49, 0x83, 0xc7, 0xf8, 0x4d, 0x89,
0x65, 0x00, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xfe,
0x4c, 0x89, 0xf2, 0x48, 0x83, 0xc4, 0x08, 0x5b,
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f,
0x5d,
};
static const Hole _COMPARE_OP_code_holes[11] = {
{0x1f, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x2e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x5c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x67, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x7e, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x5},
{0x8a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0xa8, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0xb1, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0xe1, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0xec, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
};
// 0:
// 0: OPARG
// 8: &PyObject_RichCompare+0x0
// 10: &_Py_Dealloc+0x0
// 18: &PyObject_IsTrue+0x0
// 20: &_Py_FalseStruct+0x0
// 28: EXECUTOR
// 30: &_Py_TrueStruct+0x0
static const unsigned char _COMPARE_OP_data_body[57] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _COMPARE_OP_data_holes[8] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_RichCompare, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_IsTrue, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x30, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0},
};
// _COMPARE_OP_FLOAT
//
// /tmp/tmp2mfmnab2/_COMPARE_OP_FLOAT.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 54 pushq %r12
// 6: 53 pushq %rbx
// 7: 48 83 ec 18 subq $0x18, %rsp
// b: 48 89 d3 movq %rdx, %rbx
// e: 49 89 f7 movq %rsi, %r15
// 11: 49 89 fe movq %rdi, %r14
// 14: 48 8b 7e f0 movq -0x10(%rsi), %rdi
// 18: 4c 8b 66 f8 movq -0x8(%rsi), %r12
// 1c: f2 0f 10 47 10 movsd 0x10(%rdi), %xmm0 # xmm0 = mem[0],zero
// 21: f2 41 0f 10 4c 24 10 movsd 0x10(%r12), %xmm1 # xmm1 = mem[0],zero
// 28: 48 8b 07 movq (%rdi), %rax
// 2b: 85 c0 testl %eax, %eax
// 2d: 78 08 js 0x37 <_JIT_ENTRY+0x37>
// 2f: 48 ff c8 decq %rax
// 32: 48 89 07 movq %rax, (%rdi)
// 35: 74 34 je 0x6b <_JIT_ENTRY+0x6b>
// 37: 49 8b 04 24 movq (%r12), %rax
// 3b: 85 c0 testl %eax, %eax
// 3d: 78 52 js 0x91 <_JIT_ENTRY+0x91>
// 3f: 48 ff c8 decq %rax
// 42: 49 89 04 24 movq %rax, (%r12)
// 46: 75 49 jne 0x91 <_JIT_ENTRY+0x91>
// 48: 4c 89 e7 movq %r12, %rdi
// 4b: f2 0f 11 44 24 10 movsd %xmm0, 0x10(%rsp)
// 51: f2 0f 11 4c 24 08 movsd %xmm1, 0x8(%rsp)
// 57: ff 15 00 00 00 00 callq *(%rip) # 0x5d <_JIT_ENTRY+0x5d>
// 0000000000000059: R_X86_64_GOTPCRELX _PyFloat_ExactDealloc-0x4
// 5d: f2 0f 10 4c 24 08 movsd 0x8(%rsp), %xmm1 # xmm1 = mem[0],zero
// 63: f2 0f 10 44 24 10 movsd 0x10(%rsp), %xmm0 # xmm0 = mem[0],zero
// 69: eb 26 jmp 0x91 <_JIT_ENTRY+0x91>
// 6b: f2 0f 11 44 24 10 movsd %xmm0, 0x10(%rsp)
// 71: f2 0f 11 4c 24 08 movsd %xmm1, 0x8(%rsp)
// 77: ff 15 00 00 00 00 callq *(%rip) # 0x7d <_JIT_ENTRY+0x7d>
// 0000000000000079: R_X86_64_GOTPCRELX _PyFloat_ExactDealloc-0x4
// 7d: f2 0f 10 4c 24 08 movsd 0x8(%rsp), %xmm1 # xmm1 = mem[0],zero
// 83: f2 0f 10 44 24 10 movsd 0x10(%rsp), %xmm0 # xmm0 = mem[0],zero
// 89: 49 8b 04 24 movq (%r12), %rax
// 8d: 85 c0 testl %eax, %eax
// 8f: 79 ae jns 0x3f <_JIT_ENTRY+0x3f>
// 91: 49 8d 77 f8 leaq -0x8(%r15), %rsi
// 95: 31 c0 xorl %eax, %eax
// 97: 66 0f 2e c1 ucomisd %xmm1, %xmm0
// 9b: 0f 93 c0 setae %al
// 9e: 01 c0 addl %eax, %eax
// a0: 31 c9 xorl %ecx, %ecx
// a2: 66 0f 2e c8 ucomisd %xmm0, %xmm1
// a6: 0f 93 c1 setae %cl
// a9: 09 c1 orl %eax, %ecx
// ab: 8b 05 00 00 00 00 movl (%rip), %eax # 0xb1 <_JIT_ENTRY+0xb1>
// 00000000000000ad: R_X86_64_GOTPCRELX _JIT_OPARG-0x4
// b1: 0f a3 c8 btl %ecx, %eax
// b4: 72 09 jb 0xbf <_JIT_ENTRY+0xbf>
// b6: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xbd <_JIT_ENTRY+0xbd>
// 00000000000000b9: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4
// bd: eb 07 jmp 0xc6 <_JIT_ENTRY+0xc6>
// bf: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xc6 <_JIT_ENTRY+0xc6>
// 00000000000000c2: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4
// c6: 49 89 47 f0 movq %rax, -0x10(%r15)
// ca: 4c 89 f7 movq %r14, %rdi
// cd: 48 89 da movq %rbx, %rdx
// d0: 48 83 c4 18 addq $0x18, %rsp
// d4: 5b popq %rbx
// d5: 41 5c popq %r12
// d7: 41 5e popq %r14
// d9: 41 5f popq %r15
// db: ff 25 00 00 00 00 jmpq *(%rip) # 0xe1 <_JIT_ENTRY+0xe1>
// 00000000000000dd: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// db:
static const unsigned char _COMPARE_OP_FLOAT_code_body[220] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x54, 0x53, 0x48,
0x83, 0xec, 0x18, 0x48, 0x89, 0xd3, 0x49, 0x89,
0xf7, 0x49, 0x89, 0xfe, 0x48, 0x8b, 0x7e, 0xf0,
0x4c, 0x8b, 0x66, 0xf8, 0xf2, 0x0f, 0x10, 0x47,
0x10, 0xf2, 0x41, 0x0f, 0x10, 0x4c, 0x24, 0x10,
0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78, 0x08, 0x48,
0xff, 0xc8, 0x48, 0x89, 0x07, 0x74, 0x34, 0x49,
0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, 0x52, 0x48,
0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x49,
0x4c, 0x89, 0xe7, 0xf2, 0x0f, 0x11, 0x44, 0x24,
0x10, 0xf2, 0x0f, 0x11, 0x4c, 0x24, 0x08, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x0f, 0x10,
0x4c, 0x24, 0x08, 0xf2, 0x0f, 0x10, 0x44, 0x24,
0x10, 0xeb, 0x26, 0xf2, 0x0f, 0x11, 0x44, 0x24,
0x10, 0xf2, 0x0f, 0x11, 0x4c, 0x24, 0x08, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x0f, 0x10,
0x4c, 0x24, 0x08, 0xf2, 0x0f, 0x10, 0x44, 0x24,
0x10, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x79,
0xae, 0x49, 0x8d, 0x77, 0xf8, 0x31, 0xc0, 0x66,
0x0f, 0x2e, 0xc1, 0x0f, 0x93, 0xc0, 0x01, 0xc0,
0x31, 0xc9, 0x66, 0x0f, 0x2e, 0xc8, 0x0f, 0x93,
0xc1, 0x09, 0xc1, 0x8b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x0f, 0xa3, 0xc8, 0x72, 0x09, 0x48, 0x8b,
0x05, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x07, 0x48,
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89,
0x47, 0xf0, 0x4c, 0x89, 0xf7, 0x48, 0x89, 0xda,
0x48, 0x83, 0xc4, 0x18, 0x5b, 0x41, 0x5c, 0x41,
0x5e, 0x41, 0x5f,
};
static const Hole _COMPARE_OP_FLOAT_code_holes[6] = {
{0x59, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x79, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0xad, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0xb9, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0xc2, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
};
// 0:
// 0: &_PyFloat_ExactDealloc+0x0
// 8: OPARG
// 10: &_Py_FalseStruct+0x0
// 18: &_Py_TrueStruct+0x0
static const unsigned char _COMPARE_OP_FLOAT_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _COMPARE_OP_FLOAT_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyFloat_ExactDealloc, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0},
};
// _COMPARE_OP_INT
//
// /tmp/tmp2mfmnab2/_COMPARE_OP_INT.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 48 83 ec 18 subq $0x18, %rsp
// e: 49 89 d7 movq %rdx, %r15
// 11: 49 89 f6 movq %rsi, %r14
// 14: 48 89 fb movq %rdi, %rbx
// 17: 48 8b 7e f0 movq -0x10(%rsi), %rdi
// 1b: 48 8b 6f 10 movq 0x10(%rdi), %rbp
// 1f: 48 83 fd 0f cmpq $0xf, %rbp
// 23: 77 0f ja 0x34 <_JIT_ENTRY+0x34>
// 25: 4d 8b 66 f8 movq -0x8(%r14), %r12
// 29: 4d 8b 6c 24 10 movq 0x10(%r12), %r13
// 2e: 49 83 fd 0f cmpq $0xf, %r13
// 32: 76 3f jbe 0x73 <_JIT_ENTRY+0x73>
// 34: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x3b <_JIT_ENTRY+0x3b>
// 0000000000000037: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 3b: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 42: 49 29 de subq %rbx, %r14
// 45: 49 83 c6 b8 addq $-0x48, %r14
// 49: 49 c1 ee 03 shrq $0x3, %r14
// 4d: 44 89 73 40 movl %r14d, 0x40(%rbx)
// 51: 48 8b 03 movq (%rbx), %rax
// 54: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x5a <_JIT_ENTRY+0x5a>
// 0000000000000056: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 5a: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 5e: 48 05 c8 00 00 00 addq $0xc8, %rax
// 64: 48 83 c4 18 addq $0x18, %rsp
// 68: 5b popq %rbx
// 69: 41 5c popq %r12
// 6b: 41 5d popq %r13
// 6d: 41 5e popq %r14
// 6f: 41 5f popq %r15
// 71: 5d popq %rbp
// 72: c3 retq
// 73: 44 8b 47 18 movl 0x18(%rdi), %r8d
// 77: 41 8b 54 24 18 movl 0x18(%r12), %edx
// 7c: 48 8b 07 movq (%rdi), %rax
// 7f: 85 c0 testl %eax, %eax
// 81: 78 22 js 0xa5 <_JIT_ENTRY+0xa5>
// 83: 48 ff c8 decq %rax
// 86: 48 89 07 movq %rax, (%rdi)
// 89: 75 1a jne 0xa5 <_JIT_ENTRY+0xa5>
// 8b: 48 89 54 24 08 movq %rdx, 0x8(%rsp)
// 90: 4c 89 44 24 10 movq %r8, 0x10(%rsp)
// 95: ff 15 00 00 00 00 callq *(%rip) # 0x9b <_JIT_ENTRY+0x9b>
// 0000000000000097: R_X86_64_GOTPCRELX PyObject_Free-0x4
// 9b: 4c 8b 44 24 10 movq 0x10(%rsp), %r8
// a0: 48 8b 54 24 08 movq 0x8(%rsp), %rdx
// a5: 49 8b 04 24 movq (%r12), %rax
// a9: 85 c0 testl %eax, %eax
// ab: 78 22 js 0xcf <_JIT_ENTRY+0xcf>
// ad: 48 ff c8 decq %rax
// b0: 49 89 04 24 movq %rax, (%r12)
// b4: 75 19 jne 0xcf <_JIT_ENTRY+0xcf>
// b6: 4c 89 e7 movq %r12, %rdi
// b9: 48 89 54 24 08 movq %rdx, 0x8(%rsp)
// be: 4d 89 c4 movq %r8, %r12
// c1: ff 15 00 00 00 00 callq *(%rip) # 0xc7 <_JIT_ENTRY+0xc7>
// 00000000000000c3: R_X86_64_GOTPCRELX PyObject_Free-0x4
// c7: 4d 89 e0 movq %r12, %r8
// ca: 48 8b 54 24 08 movq 0x8(%rsp), %rdx
// cf: 49 8d 76 f8 leaq -0x8(%r14), %rsi
// d3: 83 e5 03 andl $0x3, %ebp
// d6: b8 01 00 00 00 movl $0x1, %eax
// db: b9 01 00 00 00 movl $0x1, %ecx
// e0: 48 29 e9 subq %rbp, %rcx
// e3: 49 0f af c8 imulq %r8, %rcx
// e7: 41 83 e5 03 andl $0x3, %r13d
// eb: 4c 29 e8 subq %r13, %rax
// ee: 48 0f af c2 imulq %rdx, %rax
// f2: 31 d2 xorl %edx, %edx
// f4: 31 ff xorl %edi, %edi
// f6: 48 39 c1 cmpq %rax, %rcx
// f9: 0f 9d c2 setge %dl
// fc: 40 0f 9e c7 setle %dil
// 100: 01 d2 addl %edx, %edx
// 102: 09 d7 orl %edx, %edi
// 104: 8b 05 00 00 00 00 movl (%rip), %eax # 0x10a <_JIT_ENTRY+0x10a>
// 0000000000000106: R_X86_64_GOTPCRELX _JIT_OPARG-0x4
// 10a: 0f a3 f8 btl %edi, %eax
// 10d: 72 09 jb 0x118 <_JIT_ENTRY+0x118>
// 10f: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x116 <_JIT_ENTRY+0x116>
// 0000000000000112: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4
// 116: eb 07 jmp 0x11f <_JIT_ENTRY+0x11f>
// 118: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x11f <_JIT_ENTRY+0x11f>
// 000000000000011b: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4
// 11f: 49 89 46 f0 movq %rax, -0x10(%r14)
// 123: 48 89 df movq %rbx, %rdi
// 126: 4c 89 fa movq %r15, %rdx
// 129: 48 83 c4 18 addq $0x18, %rsp
// 12d: 5b popq %rbx
// 12e: 41 5c popq %r12
// 130: 41 5d popq %r13
// 132: 41 5e popq %r14
// 134: 41 5f popq %r15
// 136: 5d popq %rbp
// 137: ff 25 00 00 00 00 jmpq *(%rip) # 0x13d <_JIT_ENTRY+0x13d>
// 0000000000000139: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 137:
static const unsigned char _COMPARE_OP_INT_code_body[312] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x48, 0x83, 0xec, 0x18, 0x49, 0x89,
0xd7, 0x49, 0x89, 0xf6, 0x48, 0x89, 0xfb, 0x48,
0x8b, 0x7e, 0xf0, 0x48, 0x8b, 0x6f, 0x10, 0x48,
0x83, 0xfd, 0x0f, 0x77, 0x0f, 0x4d, 0x8b, 0x66,
0xf8, 0x4d, 0x8b, 0x6c, 0x24, 0x10, 0x49, 0x83,
0xfd, 0x0f, 0x76, 0x3f, 0x48, 0x8b, 0x05, 0x00,
0x00, 0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01,
0x00, 0x00, 0x49, 0x29, 0xde, 0x49, 0x83, 0xc6,
0xb8, 0x49, 0xc1, 0xee, 0x03, 0x44, 0x89, 0x73,
0x40, 0x48, 0x8b, 0x03, 0x8b, 0x0d, 0x00, 0x00,
0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05,
0xc8, 0x00, 0x00, 0x00, 0x48, 0x83, 0xc4, 0x18,
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41,
0x5f, 0x5d, 0xc3, 0x44, 0x8b, 0x47, 0x18, 0x41,
0x8b, 0x54, 0x24, 0x18, 0x48, 0x8b, 0x07, 0x85,
0xc0, 0x78, 0x22, 0x48, 0xff, 0xc8, 0x48, 0x89,
0x07, 0x75, 0x1a, 0x48, 0x89, 0x54, 0x24, 0x08,
0x4c, 0x89, 0x44, 0x24, 0x10, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x4c, 0x8b, 0x44, 0x24, 0x10,
0x48, 0x8b, 0x54, 0x24, 0x08, 0x49, 0x8b, 0x04,
0x24, 0x85, 0xc0, 0x78, 0x22, 0x48, 0xff, 0xc8,
0x49, 0x89, 0x04, 0x24, 0x75, 0x19, 0x4c, 0x89,
0xe7, 0x48, 0x89, 0x54, 0x24, 0x08, 0x4d, 0x89,
0xc4, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x4d,
0x89, 0xe0, 0x48, 0x8b, 0x54, 0x24, 0x08, 0x49,
0x8d, 0x76, 0xf8, 0x83, 0xe5, 0x03, 0xb8, 0x01,
0x00, 0x00, 0x00, 0xb9, 0x01, 0x00, 0x00, 0x00,
0x48, 0x29, 0xe9, 0x49, 0x0f, 0xaf, 0xc8, 0x41,
0x83, 0xe5, 0x03, 0x4c, 0x29, 0xe8, 0x48, 0x0f,
0xaf, 0xc2, 0x31, 0xd2, 0x31, 0xff, 0x48, 0x39,
0xc1, 0x0f, 0x9d, 0xc2, 0x40, 0x0f, 0x9e, 0xc7,
0x01, 0xd2, 0x09, 0xd7, 0x8b, 0x05, 0x00, 0x00,
0x00, 0x00, 0x0f, 0xa3, 0xf8, 0x72, 0x09, 0x48,
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x07,
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49,
0x89, 0x46, 0xf0, 0x48, 0x89, 0xdf, 0x4c, 0x89,
0xfa, 0x48, 0x83, 0xc4, 0x18, 0x5b, 0x41, 0x5c,
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d,
};
static const Hole _COMPARE_OP_INT_code_holes[8] = {
{0x37, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x56, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x97, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0xc3, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x106, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x112, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0x11b, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
};
// 0:
// 0: EXECUTOR
// 8: TARGET
// 10: &PyObject_Free+0x0
// 18: OPARG
// 20: &_Py_FalseStruct+0x0
// 28: &_Py_TrueStruct+0x0
static const unsigned char _COMPARE_OP_INT_data_body[49] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _COMPARE_OP_INT_data_holes[7] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_Free, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0},
};
// _COMPARE_OP_STR
//
// /tmp/tmp2mfmnab2/_COMPARE_OP_STR.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 48 89 d3 movq %rdx, %rbx
// e: 49 89 f7 movq %rsi, %r15
// 11: 49 89 fe movq %rdi, %r14
// 14: 4c 8b 6e f0 movq -0x10(%rsi), %r13
// 18: 4c 8b 66 f8 movq -0x8(%rsi), %r12
// 1c: 4c 89 ef movq %r13, %rdi
// 1f: 4c 89 e6 movq %r12, %rsi
// 22: ff 15 00 00 00 00 callq *(%rip) # 0x28 <_JIT_ENTRY+0x28>
// 0000000000000024: R_X86_64_GOTPCRELX _PyUnicode_Equal-0x4
// 28: 89 c5 movl %eax, %ebp
// 2a: 49 8b 45 00 movq (%r13), %rax
// 2e: 85 c0 testl %eax, %eax
// 30: 78 09 js 0x3b <_JIT_ENTRY+0x3b>
// 32: 48 ff c8 decq %rax
// 35: 49 89 45 00 movq %rax, (%r13)
// 39: 74 1c je 0x57 <_JIT_ENTRY+0x57>
// 3b: 49 8b 04 24 movq (%r12), %rax
// 3f: 85 c0 testl %eax, %eax
// 41: 78 25 js 0x68 <_JIT_ENTRY+0x68>
// 43: 48 ff c8 decq %rax
// 46: 49 89 04 24 movq %rax, (%r12)
// 4a: 75 1c jne 0x68 <_JIT_ENTRY+0x68>
// 4c: 4c 89 e7 movq %r12, %rdi
// 4f: ff 15 00 00 00 00 callq *(%rip) # 0x55 <_JIT_ENTRY+0x55>
// 0000000000000051: R_X86_64_GOTPCRELX _PyUnicode_ExactDealloc-0x4
// 55: eb 11 jmp 0x68 <_JIT_ENTRY+0x68>
// 57: 4c 89 ef movq %r13, %rdi
// 5a: ff 15 00 00 00 00 callq *(%rip) # 0x60 <_JIT_ENTRY+0x60>
// 000000000000005c: R_X86_64_GOTPCRELX _PyUnicode_ExactDealloc-0x4
// 60: 49 8b 04 24 movq (%r12), %rax
// 64: 85 c0 testl %eax, %eax
// 66: 79 db jns 0x43 <_JIT_ENTRY+0x43>
// 68: 49 8d 77 f8 leaq -0x8(%r15), %rsi
// 6c: 83 c5 07 addl $0x7, %ebp
// 6f: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x76 <_JIT_ENTRY+0x76>
// 0000000000000072: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 76: 66 85 e8 testw %bp, %ax
// 79: 75 09 jne 0x84 <_JIT_ENTRY+0x84>
// 7b: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x82 <_JIT_ENTRY+0x82>
// 000000000000007e: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4
// 82: eb 07 jmp 0x8b <_JIT_ENTRY+0x8b>
// 84: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x8b <_JIT_ENTRY+0x8b>
// 0000000000000087: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4
// 8b: 49 89 47 f0 movq %rax, -0x10(%r15)
// 8f: 4c 89 f7 movq %r14, %rdi
// 92: 48 89 da movq %rbx, %rdx
// 95: 48 83 c4 08 addq $0x8, %rsp
// 99: 5b popq %rbx
// 9a: 41 5c popq %r12
// 9c: 41 5d popq %r13
// 9e: 41 5e popq %r14
// a0: 41 5f popq %r15
// a2: 5d popq %rbp
// a3: ff 25 00 00 00 00 jmpq *(%rip) # 0xa9 <_JIT_ENTRY+0xa9>
// 00000000000000a5: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// a3:
static const unsigned char _COMPARE_OP_STR_code_body[164] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x48, 0x89, 0xd3, 0x49, 0x89,
0xf7, 0x49, 0x89, 0xfe, 0x4c, 0x8b, 0x6e, 0xf0,
0x4c, 0x8b, 0x66, 0xf8, 0x4c, 0x89, 0xef, 0x4c,
0x89, 0xe6, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x89, 0xc5, 0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0,
0x78, 0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x45,
0x00, 0x74, 0x1c, 0x49, 0x8b, 0x04, 0x24, 0x85,
0xc0, 0x78, 0x25, 0x48, 0xff, 0xc8, 0x49, 0x89,
0x04, 0x24, 0x75, 0x1c, 0x4c, 0x89, 0xe7, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x11, 0x4c,
0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x79, 0xdb,
0x49, 0x8d, 0x77, 0xf8, 0x83, 0xc5, 0x07, 0x48,
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x66, 0x85,
0xe8, 0x75, 0x09, 0x48, 0x8b, 0x05, 0x00, 0x00,
0x00, 0x00, 0xeb, 0x07, 0x48, 0x8b, 0x05, 0x00,
0x00, 0x00, 0x00, 0x49, 0x89, 0x47, 0xf0, 0x4c,
0x89, 0xf7, 0x48, 0x89, 0xda, 0x48, 0x83, 0xc4,
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e,
0x41, 0x5f, 0x5d,
};
static const Hole _COMPARE_OP_STR_code_holes[7] = {
{0x24, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x51, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x5c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x72, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x7e, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x87, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
};
// 0:
// 0: &_PyUnicode_Equal+0x0
// 8: &_PyUnicode_ExactDealloc+0x0
// 10: OPARG
// 18: &_Py_FalseStruct+0x0
// 20: &_Py_TrueStruct+0x0
static const unsigned char _COMPARE_OP_STR_data_body[41] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _COMPARE_OP_STR_data_holes[6] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyUnicode_Equal, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyUnicode_ExactDealloc, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0},
};
// _CONTAINS_OP
//
// /tmp/tmp2mfmnab2/_CONTAINS_OP.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d6 movq %rdx, %r14
// e: 49 89 f7 movq %rsi, %r15
// 11: 48 89 fb movq %rdi, %rbx
// 14: 4c 8b 6e f0 movq -0x10(%rsi), %r13
// 18: 4c 8b 66 f8 movq -0x8(%rsi), %r12
// 1c: 4c 89 e7 movq %r12, %rdi
// 1f: 4c 89 ee movq %r13, %rsi
// 22: ff 15 00 00 00 00 callq *(%rip) # 0x28 <_JIT_ENTRY+0x28>
// 0000000000000024: R_X86_64_GOTPCRELX PySequence_Contains-0x4
// 28: 89 c5 movl %eax, %ebp
// 2a: 49 8b 45 00 movq (%r13), %rax
// 2e: 85 c0 testl %eax, %eax
// 30: 78 09 js 0x3b <_JIT_ENTRY+0x3b>
// 32: 48 ff c8 decq %rax
// 35: 49 89 45 00 movq %rax, (%r13)
// 39: 74 1c je 0x57 <_JIT_ENTRY+0x57>
// 3b: 49 8b 04 24 movq (%r12), %rax
// 3f: 85 c0 testl %eax, %eax
// 41: 78 25 js 0x68 <_JIT_ENTRY+0x68>
// 43: 48 ff c8 decq %rax
// 46: 49 89 04 24 movq %rax, (%r12)
// 4a: 75 1c jne 0x68 <_JIT_ENTRY+0x68>
// 4c: 4c 89 e7 movq %r12, %rdi
// 4f: ff 15 00 00 00 00 callq *(%rip) # 0x55 <_JIT_ENTRY+0x55>
// 0000000000000051: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 55: eb 11 jmp 0x68 <_JIT_ENTRY+0x68>
// 57: 4c 89 ef movq %r13, %rdi
// 5a: ff 15 00 00 00 00 callq *(%rip) # 0x60 <_JIT_ENTRY+0x60>
// 000000000000005c: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 60: 49 8b 04 24 movq (%r12), %rax
// 64: 85 c0 testl %eax, %eax
// 66: 79 db jns 0x43 <_JIT_ENTRY+0x43>
// 68: 49 8d 47 f0 leaq -0x10(%r15), %rax
// 6c: 85 ed testl %ebp, %ebp
// 6e: 78 18 js 0x88 <_JIT_ENTRY+0x88>
// 70: 49 83 c7 f8 addq $-0x8, %r15
// 74: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0x7b <_JIT_ENTRY+0x7b>
// 0000000000000077: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 7b: 39 cd cmpl %ecx, %ebp
// 7d: 75 36 jne 0xb5 <_JIT_ENTRY+0xb5>
// 7f: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x86 <_JIT_ENTRY+0x86>
// 0000000000000082: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4
// 86: eb 34 jmp 0xbc <_JIT_ENTRY+0xbc>
// 88: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x8f <_JIT_ENTRY+0x8f>
// 000000000000008b: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 8f: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14)
// 96: 48 29 d8 subq %rbx, %rax
// 99: 48 83 c0 b8 addq $-0x48, %rax
// 9d: 48 c1 e8 03 shrq $0x3, %rax
// a1: 89 43 40 movl %eax, 0x40(%rbx)
// a4: 31 c0 xorl %eax, %eax
// a6: 48 83 c4 08 addq $0x8, %rsp
// aa: 5b popq %rbx
// ab: 41 5c popq %r12
// ad: 41 5d popq %r13
// af: 41 5e popq %r14
// b1: 41 5f popq %r15
// b3: 5d popq %rbp
// b4: c3 retq
// b5: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xbc <_JIT_ENTRY+0xbc>
// 00000000000000b8: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4
// bc: 48 89 08 movq %rcx, (%rax)
// bf: 48 89 df movq %rbx, %rdi
// c2: 4c 89 fe movq %r15, %rsi
// c5: 4c 89 f2 movq %r14, %rdx
// c8: 48 83 c4 08 addq $0x8, %rsp
// cc: 5b popq %rbx
// cd: 41 5c popq %r12
// cf: 41 5d popq %r13
// d1: 41 5e popq %r14
// d3: 41 5f popq %r15
// d5: 5d popq %rbp
// d6: ff 25 00 00 00 00 jmpq *(%rip) # 0xdc <_JIT_ENTRY+0xdc>
// 00000000000000d8: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// d6:
static const unsigned char _CONTAINS_OP_code_body[215] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89,
0xf7, 0x48, 0x89, 0xfb, 0x4c, 0x8b, 0x6e, 0xf0,
0x4c, 0x8b, 0x66, 0xf8, 0x4c, 0x89, 0xe7, 0x4c,
0x89, 0xee, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x89, 0xc5, 0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0,
0x78, 0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x45,
0x00, 0x74, 0x1c, 0x49, 0x8b, 0x04, 0x24, 0x85,
0xc0, 0x78, 0x25, 0x48, 0xff, 0xc8, 0x49, 0x89,
0x04, 0x24, 0x75, 0x1c, 0x4c, 0x89, 0xe7, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x11, 0x4c,
0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x79, 0xdb,
0x49, 0x8d, 0x47, 0xf0, 0x85, 0xed, 0x78, 0x18,
0x49, 0x83, 0xc7, 0xf8, 0x0f, 0xb7, 0x0d, 0x00,
0x00, 0x00, 0x00, 0x39, 0xcd, 0x75, 0x36, 0x48,
0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x34,
0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x49,
0x89, 0x8e, 0x28, 0x01, 0x00, 0x00, 0x48, 0x29,
0xd8, 0x48, 0x83, 0xc0, 0xb8, 0x48, 0xc1, 0xe8,
0x03, 0x89, 0x43, 0x40, 0x31, 0xc0, 0x48, 0x83,
0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41,
0x5e, 0x41, 0x5f, 0x5d, 0xc3, 0x48, 0x8b, 0x0d,
0x00, 0x00, 0x00, 0x00, 0x48, 0x89, 0x08, 0x48,
0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c, 0x89, 0xf2,
0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41,
0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d,
};
static const Hole _CONTAINS_OP_code_holes[8] = {
{0x24, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x51, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x5c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x77, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0xc},
{0x82, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x8b, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0xb8, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
};
// 0:
// 0: &PySequence_Contains+0x0
// 8: &_Py_Dealloc+0x0
// 10: OPARG
// 18: &_Py_FalseStruct+0x0
// 20: EXECUTOR
// 28: &_Py_TrueStruct+0x0
static const unsigned char _CONTAINS_OP_data_body[49] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CONTAINS_OP_data_holes[7] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PySequence_Contains, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0},
};
// _CONTAINS_OP_DICT
//
// /tmp/tmp2mfmnab2/_CONTAINS_OP_DICT.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d7 movq %rdx, %r15
// e: 49 89 f6 movq %rsi, %r14
// 11: 48 89 fb movq %rdi, %rbx
// 14: 4c 8b 66 f8 movq -0x8(%rsi), %r12
// 18: 49 8b 44 24 08 movq 0x8(%r12), %rax
// 1d: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x24 <_JIT_ENTRY+0x24>
// 0000000000000020: R_X86_64_REX_GOTPCRELX PyDict_Type-0x4
// 24: 74 3f je 0x65 <_JIT_ENTRY+0x65>
// 26: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x2d <_JIT_ENTRY+0x2d>
// 0000000000000029: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 2d: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 34: 49 29 de subq %rbx, %r14
// 37: 49 83 c6 b8 addq $-0x48, %r14
// 3b: 49 c1 ee 03 shrq $0x3, %r14
// 3f: 44 89 73 40 movl %r14d, 0x40(%rbx)
// 43: 48 8b 03 movq (%rbx), %rax
// 46: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4c <_JIT_ENTRY+0x4c>
// 0000000000000048: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 4c: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 50: 48 05 c8 00 00 00 addq $0xc8, %rax
// 56: 48 83 c4 08 addq $0x8, %rsp
// 5a: 5b popq %rbx
// 5b: 41 5c popq %r12
// 5d: 41 5d popq %r13
// 5f: 41 5e popq %r14
// 61: 41 5f popq %r15
// 63: 5d popq %rbp
// 64: c3 retq
// 65: 4d 8b 6e f0 movq -0x10(%r14), %r13
// 69: 4c 89 e7 movq %r12, %rdi
// 6c: 4c 89 ee movq %r13, %rsi
// 6f: ff 15 00 00 00 00 callq *(%rip) # 0x75 <_JIT_ENTRY+0x75>
// 0000000000000071: R_X86_64_GOTPCRELX PyDict_Contains-0x4
// 75: 89 c5 movl %eax, %ebp
// 77: 49 8b 45 00 movq (%r13), %rax
// 7b: 85 c0 testl %eax, %eax
// 7d: 78 12 js 0x91 <_JIT_ENTRY+0x91>
// 7f: 48 ff c8 decq %rax
// 82: 49 89 45 00 movq %rax, (%r13)
// 86: 75 09 jne 0x91 <_JIT_ENTRY+0x91>
// 88: 4c 89 ef movq %r13, %rdi
// 8b: ff 15 00 00 00 00 callq *(%rip) # 0x91 <_JIT_ENTRY+0x91>
// 000000000000008d: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 91: 49 8b 04 24 movq (%r12), %rax
// 95: 85 c0 testl %eax, %eax
// 97: 78 09 js 0xa2 <_JIT_ENTRY+0xa2>
// 99: 48 ff c8 decq %rax
// 9c: 49 89 04 24 movq %rax, (%r12)
// a0: 74 47 je 0xe9 <_JIT_ENTRY+0xe9>
// a2: 49 8d 46 f0 leaq -0x10(%r14), %rax
// a6: 85 ed testl %ebp, %ebp
// a8: 78 50 js 0xfa <_JIT_ENTRY+0xfa>
// aa: 49 83 c6 f8 addq $-0x8, %r14
// ae: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0xb5 <_JIT_ENTRY+0xb5>
// 00000000000000b1: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// b5: 39 cd cmpl %ecx, %ebp
// b7: 75 09 jne 0xc2 <_JIT_ENTRY+0xc2>
// b9: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xc0 <_JIT_ENTRY+0xc0>
// 00000000000000bc: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4
// c0: eb 07 jmp 0xc9 <_JIT_ENTRY+0xc9>
// c2: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xc9 <_JIT_ENTRY+0xc9>
// 00000000000000c5: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4
// c9: 48 89 08 movq %rcx, (%rax)
// cc: 48 89 df movq %rbx, %rdi
// cf: 4c 89 f6 movq %r14, %rsi
// d2: 4c 89 fa movq %r15, %rdx
// d5: 48 83 c4 08 addq $0x8, %rsp
// d9: 5b popq %rbx
// da: 41 5c popq %r12
// dc: 41 5d popq %r13
// de: 41 5e popq %r14
// e0: 41 5f popq %r15
// e2: 5d popq %rbp
// e3: ff 25 00 00 00 00 jmpq *(%rip) # 0xe9 <_JIT_ENTRY+0xe9>
// 00000000000000e5: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// e9: 4c 89 e7 movq %r12, %rdi
// ec: ff 15 00 00 00 00 callq *(%rip) # 0xf2 <_JIT_ENTRY+0xf2>
// 00000000000000ee: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// f2: 49 8d 46 f0 leaq -0x10(%r14), %rax
// f6: 85 ed testl %ebp, %ebp
// f8: 79 b0 jns 0xaa <_JIT_ENTRY+0xaa>
// fa: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x101 <_JIT_ENTRY+0x101>
// 00000000000000fd: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 101: 49 89 8f 28 01 00 00 movq %rcx, 0x128(%r15)
// 108: 48 29 d8 subq %rbx, %rax
// 10b: 48 83 c0 b8 addq $-0x48, %rax
// 10f: 48 c1 e8 03 shrq $0x3, %rax
// 113: 89 43 40 movl %eax, 0x40(%rbx)
// 116: 31 c0 xorl %eax, %eax
// 118: e9 39 ff ff ff jmp 0x56 <_JIT_ENTRY+0x56>
// 11d:
static const unsigned char _CONTAINS_OP_DICT_code_body[286] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x49, 0x89,
0xf6, 0x48, 0x89, 0xfb, 0x4c, 0x8b, 0x66, 0xf8,
0x49, 0x8b, 0x44, 0x24, 0x08, 0x48, 0x3b, 0x05,
0x00, 0x00, 0x00, 0x00, 0x74, 0x3f, 0x48, 0x8b,
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87,
0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xde, 0x49,
0x83, 0xc6, 0xb8, 0x49, 0xc1, 0xee, 0x03, 0x44,
0x89, 0x73, 0x40, 0x48, 0x8b, 0x03, 0x8b, 0x0d,
0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48,
0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0x48, 0x83,
0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41,
0x5e, 0x41, 0x5f, 0x5d, 0xc3, 0x4d, 0x8b, 0x6e,
0xf0, 0x4c, 0x89, 0xe7, 0x4c, 0x89, 0xee, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0x89, 0xc5, 0x49,
0x8b, 0x45, 0x00, 0x85, 0xc0, 0x78, 0x12, 0x48,
0xff, 0xc8, 0x49, 0x89, 0x45, 0x00, 0x75, 0x09,
0x4c, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78,
0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24,
0x74, 0x47, 0x49, 0x8d, 0x46, 0xf0, 0x85, 0xed,
0x78, 0x50, 0x49, 0x83, 0xc6, 0xf8, 0x0f, 0xb7,
0x0d, 0x00, 0x00, 0x00, 0x00, 0x39, 0xcd, 0x75,
0x09, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00,
0xeb, 0x07, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00,
0x00, 0x48, 0x89, 0x08, 0x48, 0x89, 0xdf, 0x4c,
0x89, 0xf6, 0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4,
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e,
0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00, 0x00, 0x00,
0x00, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00,
0x00, 0x00, 0x49, 0x8d, 0x46, 0xf0, 0x85, 0xed,
0x79, 0xb0, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00,
0x00, 0x49, 0x89, 0x8f, 0x28, 0x01, 0x00, 0x00,
0x48, 0x29, 0xd8, 0x48, 0x83, 0xc0, 0xb8, 0x48,
0xc1, 0xe8, 0x03, 0x89, 0x43, 0x40, 0x31, 0xc0,
0xe9, 0x39, 0xff, 0xff, 0xff,
};
static const Hole _CONTAINS_OP_DICT_code_holes[12] = {
{0x20, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x29, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x48, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x71, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x8d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0xb1, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x24},
{0xbc, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
{0xc5, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x34},
{0xe5, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c},
{0xee, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0xfd, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
};
// 0:
// 0: &PyDict_Type+0x0
// 8: EXECUTOR
// 10: TARGET
// 18: &PyDict_Contains+0x0
// 20: &_Py_Dealloc+0x0
// 28: OPARG
// 30: &_Py_FalseStruct+0x0
// 38: &_Py_TrueStruct+0x0
// 40: CONTINUE
static const unsigned char _CONTAINS_OP_DICT_data_body[73] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CONTAINS_OP_DICT_data_holes[10] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyDict_Type, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyDict_Contains, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x30, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0},
{0x38, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0},
{0x40, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
};
// _CONTAINS_OP_LIST
//
// /tmp/tmp2mfmnab2/_CONTAINS_OP_LIST.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d7 movq %rdx, %r15
// e: 49 89 f6 movq %rsi, %r14
// 11: 48 89 fb movq %rdi, %rbx
// 14: 4c 8b 66 f8 movq -0x8(%rsi), %r12
// 18: 49 8b 44 24 08 movq 0x8(%r12), %rax
// 1d: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x24 <_JIT_ENTRY+0x24>
// 0000000000000020: R_X86_64_REX_GOTPCRELX PyList_Type-0x4
// 24: 74 3f je 0x65 <_JIT_ENTRY+0x65>
// 26: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x2d <_JIT_ENTRY+0x2d>
// 0000000000000029: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 2d: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 34: 49 29 de subq %rbx, %r14
// 37: 49 83 c6 b8 addq $-0x48, %r14
// 3b: 49 c1 ee 03 shrq $0x3, %r14
// 3f: 44 89 73 40 movl %r14d, 0x40(%rbx)
// 43: 48 8b 03 movq (%rbx), %rax
// 46: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4c <_JIT_ENTRY+0x4c>
// 0000000000000048: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 4c: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 50: 48 05 c8 00 00 00 addq $0xc8, %rax
// 56: 48 83 c4 08 addq $0x8, %rsp
// 5a: 5b popq %rbx
// 5b: 41 5c popq %r12
// 5d: 41 5d popq %r13
// 5f: 41 5e popq %r14
// 61: 41 5f popq %r15
// 63: 5d popq %rbp
// 64: c3 retq
// 65: 4d 8b 6e f0 movq -0x10(%r14), %r13
// 69: 4c 89 e7 movq %r12, %rdi
// 6c: 4c 89 ee movq %r13, %rsi
// 6f: ff 15 00 00 00 00 callq *(%rip) # 0x75 <_JIT_ENTRY+0x75>
// 0000000000000071: R_X86_64_GOTPCRELX _PyList_Contains-0x4
// 75: 89 c5 movl %eax, %ebp
// 77: 49 8b 45 00 movq (%r13), %rax
// 7b: 85 c0 testl %eax, %eax
// 7d: 78 12 js 0x91 <_JIT_ENTRY+0x91>
// 7f: 48 ff c8 decq %rax
// 82: 49 89 45 00 movq %rax, (%r13)
// 86: 75 09 jne 0x91 <_JIT_ENTRY+0x91>
// 88: 4c 89 ef movq %r13, %rdi
// 8b: ff 15 00 00 00 00 callq *(%rip) # 0x91 <_JIT_ENTRY+0x91>
// 000000000000008d: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 91: 49 8b 04 24 movq (%r12), %rax
// 95: 85 c0 testl %eax, %eax
// 97: 78 09 js 0xa2 <_JIT_ENTRY+0xa2>
// 99: 48 ff c8 decq %rax
// 9c: 49 89 04 24 movq %rax, (%r12)
// a0: 74 47 je 0xe9 <_JIT_ENTRY+0xe9>
// a2: 49 8d 46 f0 leaq -0x10(%r14), %rax
// a6: 85 ed testl %ebp, %ebp
// a8: 78 50 js 0xfa <_JIT_ENTRY+0xfa>
// aa: 49 83 c6 f8 addq $-0x8, %r14
// ae: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0xb5 <_JIT_ENTRY+0xb5>
// 00000000000000b1: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// b5: 39 cd cmpl %ecx, %ebp
// b7: 75 09 jne 0xc2 <_JIT_ENTRY+0xc2>
// b9: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xc0 <_JIT_ENTRY+0xc0>
// 00000000000000bc: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4
// c0: eb 07 jmp 0xc9 <_JIT_ENTRY+0xc9>
// c2: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xc9 <_JIT_ENTRY+0xc9>
// 00000000000000c5: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4
// c9: 48 89 08 movq %rcx, (%rax)
// cc: 48 89 df movq %rbx, %rdi
// cf: 4c 89 f6 movq %r14, %rsi
// d2: 4c 89 fa movq %r15, %rdx
// d5: 48 83 c4 08 addq $0x8, %rsp
// d9: 5b popq %rbx
// da: 41 5c popq %r12
// dc: 41 5d popq %r13
// de: 41 5e popq %r14
// e0: 41 5f popq %r15
// e2: 5d popq %rbp
// e3: ff 25 00 00 00 00 jmpq *(%rip) # 0xe9 <_JIT_ENTRY+0xe9>
// 00000000000000e5: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// e9: 4c 89 e7 movq %r12, %rdi
// ec: ff 15 00 00 00 00 callq *(%rip) # 0xf2 <_JIT_ENTRY+0xf2>
// 00000000000000ee: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// f2: 49 8d 46 f0 leaq -0x10(%r14), %rax
// f6: 85 ed testl %ebp, %ebp
// f8: 79 b0 jns 0xaa <_JIT_ENTRY+0xaa>
// fa: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x101 <_JIT_ENTRY+0x101>
// 00000000000000fd: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 101: 49 89 8f 28 01 00 00 movq %rcx, 0x128(%r15)
// 108: 48 29 d8 subq %rbx, %rax
// 10b: 48 83 c0 b8 addq $-0x48, %rax
// 10f: 48 c1 e8 03 shrq $0x3, %rax
// 113: 89 43 40 movl %eax, 0x40(%rbx)
// 116: 31 c0 xorl %eax, %eax
// 118: e9 39 ff ff ff jmp 0x56 <_JIT_ENTRY+0x56>
// 11d:
static const unsigned char _CONTAINS_OP_LIST_code_body[286] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x49, 0x89,
0xf6, 0x48, 0x89, 0xfb, 0x4c, 0x8b, 0x66, 0xf8,
0x49, 0x8b, 0x44, 0x24, 0x08, 0x48, 0x3b, 0x05,
0x00, 0x00, 0x00, 0x00, 0x74, 0x3f, 0x48, 0x8b,
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87,
0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xde, 0x49,
0x83, 0xc6, 0xb8, 0x49, 0xc1, 0xee, 0x03, 0x44,
0x89, 0x73, 0x40, 0x48, 0x8b, 0x03, 0x8b, 0x0d,
0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48,
0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0x48, 0x83,
0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41,
0x5e, 0x41, 0x5f, 0x5d, 0xc3, 0x4d, 0x8b, 0x6e,
0xf0, 0x4c, 0x89, 0xe7, 0x4c, 0x89, 0xee, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0x89, 0xc5, 0x49,
0x8b, 0x45, 0x00, 0x85, 0xc0, 0x78, 0x12, 0x48,
0xff, 0xc8, 0x49, 0x89, 0x45, 0x00, 0x75, 0x09,
0x4c, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78,
0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24,
0x74, 0x47, 0x49, 0x8d, 0x46, 0xf0, 0x85, 0xed,
0x78, 0x50, 0x49, 0x83, 0xc6, 0xf8, 0x0f, 0xb7,
0x0d, 0x00, 0x00, 0x00, 0x00, 0x39, 0xcd, 0x75,
0x09, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00,
0xeb, 0x07, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00,
0x00, 0x48, 0x89, 0x08, 0x48, 0x89, 0xdf, 0x4c,
0x89, 0xf6, 0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4,
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e,
0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00, 0x00, 0x00,
0x00, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00,
0x00, 0x00, 0x49, 0x8d, 0x46, 0xf0, 0x85, 0xed,
0x79, 0xb0, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00,
0x00, 0x49, 0x89, 0x8f, 0x28, 0x01, 0x00, 0x00,
0x48, 0x29, 0xd8, 0x48, 0x83, 0xc0, 0xb8, 0x48,
0xc1, 0xe8, 0x03, 0x89, 0x43, 0x40, 0x31, 0xc0,
0xe9, 0x39, 0xff, 0xff, 0xff,
};
static const Hole _CONTAINS_OP_LIST_code_holes[12] = {
{0x20, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x29, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x48, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x71, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x8d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0xb1, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x24},
{0xbc, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
{0xc5, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x34},
{0xe5, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c},
{0xee, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0xfd, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
};
// 0:
// 0: &PyList_Type+0x0
// 8: EXECUTOR
// 10: TARGET
// 18: &_PyList_Contains+0x0
// 20: &_Py_Dealloc+0x0
// 28: OPARG
// 30: &_Py_FalseStruct+0x0
// 38: &_Py_TrueStruct+0x0
// 40: CONTINUE
static const unsigned char _CONTAINS_OP_LIST_data_body[73] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CONTAINS_OP_LIST_data_holes[10] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyList_Type, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyList_Contains, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x30, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0},
{0x38, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0},
{0x40, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
};
// _CONTAINS_OP_SET
//
// /tmp/tmp2mfmnab2/_CONTAINS_OP_SET.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d7 movq %rdx, %r15
// e: 49 89 f6 movq %rsi, %r14
// 11: 48 89 fb movq %rdi, %rbx
// 14: 4c 8b 66 f8 movq -0x8(%rsi), %r12
// 18: 49 8b 44 24 08 movq 0x8(%r12), %rax
// 1d: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x24 <_JIT_ENTRY+0x24>
// 0000000000000020: R_X86_64_REX_GOTPCRELX PySet_Type-0x4
// 24: 74 3f je 0x65 <_JIT_ENTRY+0x65>
// 26: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x2d <_JIT_ENTRY+0x2d>
// 0000000000000029: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 2d: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 34: 49 29 de subq %rbx, %r14
// 37: 49 83 c6 b8 addq $-0x48, %r14
// 3b: 49 c1 ee 03 shrq $0x3, %r14
// 3f: 44 89 73 40 movl %r14d, 0x40(%rbx)
// 43: 48 8b 03 movq (%rbx), %rax
// 46: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4c <_JIT_ENTRY+0x4c>
// 0000000000000048: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 4c: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 50: 48 05 c8 00 00 00 addq $0xc8, %rax
// 56: 48 83 c4 08 addq $0x8, %rsp
// 5a: 5b popq %rbx
// 5b: 41 5c popq %r12
// 5d: 41 5d popq %r13
// 5f: 41 5e popq %r14
// 61: 41 5f popq %r15
// 63: 5d popq %rbp
// 64: c3 retq
// 65: 4d 8b 6e f0 movq -0x10(%r14), %r13
// 69: 4c 89 e7 movq %r12, %rdi
// 6c: 4c 89 ee movq %r13, %rsi
// 6f: ff 15 00 00 00 00 callq *(%rip) # 0x75 <_JIT_ENTRY+0x75>
// 0000000000000071: R_X86_64_GOTPCRELX _PySet_Contains-0x4
// 75: 89 c5 movl %eax, %ebp
// 77: 49 8b 45 00 movq (%r13), %rax
// 7b: 85 c0 testl %eax, %eax
// 7d: 78 12 js 0x91 <_JIT_ENTRY+0x91>
// 7f: 48 ff c8 decq %rax
// 82: 49 89 45 00 movq %rax, (%r13)
// 86: 75 09 jne 0x91 <_JIT_ENTRY+0x91>
// 88: 4c 89 ef movq %r13, %rdi
// 8b: ff 15 00 00 00 00 callq *(%rip) # 0x91 <_JIT_ENTRY+0x91>
// 000000000000008d: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 91: 49 8b 04 24 movq (%r12), %rax
// 95: 85 c0 testl %eax, %eax
// 97: 78 09 js 0xa2 <_JIT_ENTRY+0xa2>
// 99: 48 ff c8 decq %rax
// 9c: 49 89 04 24 movq %rax, (%r12)
// a0: 74 47 je 0xe9 <_JIT_ENTRY+0xe9>
// a2: 49 8d 46 f0 leaq -0x10(%r14), %rax
// a6: 85 ed testl %ebp, %ebp
// a8: 78 50 js 0xfa <_JIT_ENTRY+0xfa>
// aa: 49 83 c6 f8 addq $-0x8, %r14
// ae: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0xb5 <_JIT_ENTRY+0xb5>
// 00000000000000b1: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// b5: 39 cd cmpl %ecx, %ebp
// b7: 75 09 jne 0xc2 <_JIT_ENTRY+0xc2>
// b9: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xc0 <_JIT_ENTRY+0xc0>
// 00000000000000bc: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4
// c0: eb 07 jmp 0xc9 <_JIT_ENTRY+0xc9>
// c2: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xc9 <_JIT_ENTRY+0xc9>
// 00000000000000c5: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4
// c9: 48 89 08 movq %rcx, (%rax)
// cc: 48 89 df movq %rbx, %rdi
// cf: 4c 89 f6 movq %r14, %rsi
// d2: 4c 89 fa movq %r15, %rdx
// d5: 48 83 c4 08 addq $0x8, %rsp
// d9: 5b popq %rbx
// da: 41 5c popq %r12
// dc: 41 5d popq %r13
// de: 41 5e popq %r14
// e0: 41 5f popq %r15
// e2: 5d popq %rbp
// e3: ff 25 00 00 00 00 jmpq *(%rip) # 0xe9 <_JIT_ENTRY+0xe9>
// 00000000000000e5: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// e9: 4c 89 e7 movq %r12, %rdi
// ec: ff 15 00 00 00 00 callq *(%rip) # 0xf2 <_JIT_ENTRY+0xf2>
// 00000000000000ee: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// f2: 49 8d 46 f0 leaq -0x10(%r14), %rax
// f6: 85 ed testl %ebp, %ebp
// f8: 79 b0 jns 0xaa <_JIT_ENTRY+0xaa>
// fa: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x101 <_JIT_ENTRY+0x101>
// 00000000000000fd: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 101: 49 89 8f 28 01 00 00 movq %rcx, 0x128(%r15)
// 108: 48 29 d8 subq %rbx, %rax
// 10b: 48 83 c0 b8 addq $-0x48, %rax
// 10f: 48 c1 e8 03 shrq $0x3, %rax
// 113: 89 43 40 movl %eax, 0x40(%rbx)
// 116: 31 c0 xorl %eax, %eax
// 118: e9 39 ff ff ff jmp 0x56 <_JIT_ENTRY+0x56>
// 11d:
static const unsigned char _CONTAINS_OP_SET_code_body[286] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x49, 0x89,
0xf6, 0x48, 0x89, 0xfb, 0x4c, 0x8b, 0x66, 0xf8,
0x49, 0x8b, 0x44, 0x24, 0x08, 0x48, 0x3b, 0x05,
0x00, 0x00, 0x00, 0x00, 0x74, 0x3f, 0x48, 0x8b,
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87,
0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xde, 0x49,
0x83, 0xc6, 0xb8, 0x49, 0xc1, 0xee, 0x03, 0x44,
0x89, 0x73, 0x40, 0x48, 0x8b, 0x03, 0x8b, 0x0d,
0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48,
0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0x48, 0x83,
0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41,
0x5e, 0x41, 0x5f, 0x5d, 0xc3, 0x4d, 0x8b, 0x6e,
0xf0, 0x4c, 0x89, 0xe7, 0x4c, 0x89, 0xee, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0x89, 0xc5, 0x49,
0x8b, 0x45, 0x00, 0x85, 0xc0, 0x78, 0x12, 0x48,
0xff, 0xc8, 0x49, 0x89, 0x45, 0x00, 0x75, 0x09,
0x4c, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78,
0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24,
0x74, 0x47, 0x49, 0x8d, 0x46, 0xf0, 0x85, 0xed,
0x78, 0x50, 0x49, 0x83, 0xc6, 0xf8, 0x0f, 0xb7,
0x0d, 0x00, 0x00, 0x00, 0x00, 0x39, 0xcd, 0x75,
0x09, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00,
0xeb, 0x07, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00,
0x00, 0x48, 0x89, 0x08, 0x48, 0x89, 0xdf, 0x4c,
0x89, 0xf6, 0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4,
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e,
0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00, 0x00, 0x00,
0x00, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00,
0x00, 0x00, 0x49, 0x8d, 0x46, 0xf0, 0x85, 0xed,
0x79, 0xb0, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00,
0x00, 0x49, 0x89, 0x8f, 0x28, 0x01, 0x00, 0x00,
0x48, 0x29, 0xd8, 0x48, 0x83, 0xc0, 0xb8, 0x48,
0xc1, 0xe8, 0x03, 0x89, 0x43, 0x40, 0x31, 0xc0,
0xe9, 0x39, 0xff, 0xff, 0xff,
};
static const Hole _CONTAINS_OP_SET_code_holes[12] = {
{0x20, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x29, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x48, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x71, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x8d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0xb1, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x24},
{0xbc, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
{0xc5, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x34},
{0xe5, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c},
{0xee, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0xfd, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
};
// 0:
// 0: &PySet_Type+0x0
// 8: EXECUTOR
// 10: TARGET
// 18: &_PySet_Contains+0x0
// 20: &_Py_Dealloc+0x0
// 28: OPARG
// 30: &_Py_FalseStruct+0x0
// 38: &_Py_TrueStruct+0x0
// 40: CONTINUE
static const unsigned char _CONTAINS_OP_SET_data_body[73] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CONTAINS_OP_SET_data_holes[10] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PySet_Type, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PySet_Contains, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x30, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0},
{0x38, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0},
{0x40, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
};
// _CONTAINS_OP_STR
//
// /tmp/tmp2mfmnab2/_CONTAINS_OP_STR.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d7 movq %rdx, %r15
// e: 49 89 f6 movq %rsi, %r14
// 11: 48 89 fb movq %rdi, %rbx
// 14: 4c 8b 66 f8 movq -0x8(%rsi), %r12
// 18: 49 8b 44 24 08 movq 0x8(%r12), %rax
// 1d: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x24 <_JIT_ENTRY+0x24>
// 0000000000000020: R_X86_64_REX_GOTPCRELX PyUnicode_Type-0x4
// 24: 74 3f je 0x65 <_JIT_ENTRY+0x65>
// 26: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x2d <_JIT_ENTRY+0x2d>
// 0000000000000029: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 2d: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 34: 49 29 de subq %rbx, %r14
// 37: 49 83 c6 b8 addq $-0x48, %r14
// 3b: 49 c1 ee 03 shrq $0x3, %r14
// 3f: 44 89 73 40 movl %r14d, 0x40(%rbx)
// 43: 48 8b 03 movq (%rbx), %rax
// 46: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4c <_JIT_ENTRY+0x4c>
// 0000000000000048: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 4c: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 50: 48 05 c8 00 00 00 addq $0xc8, %rax
// 56: 48 83 c4 08 addq $0x8, %rsp
// 5a: 5b popq %rbx
// 5b: 41 5c popq %r12
// 5d: 41 5d popq %r13
// 5f: 41 5e popq %r14
// 61: 41 5f popq %r15
// 63: 5d popq %rbp
// 64: c3 retq
// 65: 4d 8b 6e f0 movq -0x10(%r14), %r13
// 69: 4c 89 e7 movq %r12, %rdi
// 6c: 4c 89 ee movq %r13, %rsi
// 6f: ff 15 00 00 00 00 callq *(%rip) # 0x75 <_JIT_ENTRY+0x75>
// 0000000000000071: R_X86_64_GOTPCRELX PyUnicode_Contains-0x4
// 75: 89 c5 movl %eax, %ebp
// 77: 49 8b 45 00 movq (%r13), %rax
// 7b: 85 c0 testl %eax, %eax
// 7d: 78 12 js 0x91 <_JIT_ENTRY+0x91>
// 7f: 48 ff c8 decq %rax
// 82: 49 89 45 00 movq %rax, (%r13)
// 86: 75 09 jne 0x91 <_JIT_ENTRY+0x91>
// 88: 4c 89 ef movq %r13, %rdi
// 8b: ff 15 00 00 00 00 callq *(%rip) # 0x91 <_JIT_ENTRY+0x91>
// 000000000000008d: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 91: 49 8b 04 24 movq (%r12), %rax
// 95: 85 c0 testl %eax, %eax
// 97: 78 09 js 0xa2 <_JIT_ENTRY+0xa2>
// 99: 48 ff c8 decq %rax
// 9c: 49 89 04 24 movq %rax, (%r12)
// a0: 74 47 je 0xe9 <_JIT_ENTRY+0xe9>
// a2: 49 8d 46 f0 leaq -0x10(%r14), %rax
// a6: 85 ed testl %ebp, %ebp
// a8: 78 50 js 0xfa <_JIT_ENTRY+0xfa>
// aa: 49 83 c6 f8 addq $-0x8, %r14
// ae: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0xb5 <_JIT_ENTRY+0xb5>
// 00000000000000b1: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// b5: 39 cd cmpl %ecx, %ebp
// b7: 75 09 jne 0xc2 <_JIT_ENTRY+0xc2>
// b9: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xc0 <_JIT_ENTRY+0xc0>
// 00000000000000bc: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4
// c0: eb 07 jmp 0xc9 <_JIT_ENTRY+0xc9>
// c2: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xc9 <_JIT_ENTRY+0xc9>
// 00000000000000c5: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4
// c9: 48 89 08 movq %rcx, (%rax)
// cc: 48 89 df movq %rbx, %rdi
// cf: 4c 89 f6 movq %r14, %rsi
// d2: 4c 89 fa movq %r15, %rdx
// d5: 48 83 c4 08 addq $0x8, %rsp
// d9: 5b popq %rbx
// da: 41 5c popq %r12
// dc: 41 5d popq %r13
// de: 41 5e popq %r14
// e0: 41 5f popq %r15
// e2: 5d popq %rbp
// e3: ff 25 00 00 00 00 jmpq *(%rip) # 0xe9 <_JIT_ENTRY+0xe9>
// 00000000000000e5: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// e9: 4c 89 e7 movq %r12, %rdi
// ec: ff 15 00 00 00 00 callq *(%rip) # 0xf2 <_JIT_ENTRY+0xf2>
// 00000000000000ee: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// f2: 49 8d 46 f0 leaq -0x10(%r14), %rax
// f6: 85 ed testl %ebp, %ebp
// f8: 79 b0 jns 0xaa <_JIT_ENTRY+0xaa>
// fa: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x101 <_JIT_ENTRY+0x101>
// 00000000000000fd: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 101: 49 89 8f 28 01 00 00 movq %rcx, 0x128(%r15)
// 108: 48 29 d8 subq %rbx, %rax
// 10b: 48 83 c0 b8 addq $-0x48, %rax
// 10f: 48 c1 e8 03 shrq $0x3, %rax
// 113: 89 43 40 movl %eax, 0x40(%rbx)
// 116: 31 c0 xorl %eax, %eax
// 118: e9 39 ff ff ff jmp 0x56 <_JIT_ENTRY+0x56>
// 11d:
static const unsigned char _CONTAINS_OP_STR_code_body[286] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x49, 0x89,
0xf6, 0x48, 0x89, 0xfb, 0x4c, 0x8b, 0x66, 0xf8,
0x49, 0x8b, 0x44, 0x24, 0x08, 0x48, 0x3b, 0x05,
0x00, 0x00, 0x00, 0x00, 0x74, 0x3f, 0x48, 0x8b,
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87,
0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xde, 0x49,
0x83, 0xc6, 0xb8, 0x49, 0xc1, 0xee, 0x03, 0x44,
0x89, 0x73, 0x40, 0x48, 0x8b, 0x03, 0x8b, 0x0d,
0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48,
0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0x48, 0x83,
0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41,
0x5e, 0x41, 0x5f, 0x5d, 0xc3, 0x4d, 0x8b, 0x6e,
0xf0, 0x4c, 0x89, 0xe7, 0x4c, 0x89, 0xee, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0x89, 0xc5, 0x49,
0x8b, 0x45, 0x00, 0x85, 0xc0, 0x78, 0x12, 0x48,
0xff, 0xc8, 0x49, 0x89, 0x45, 0x00, 0x75, 0x09,
0x4c, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78,
0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24,
0x74, 0x47, 0x49, 0x8d, 0x46, 0xf0, 0x85, 0xed,
0x78, 0x50, 0x49, 0x83, 0xc6, 0xf8, 0x0f, 0xb7,
0x0d, 0x00, 0x00, 0x00, 0x00, 0x39, 0xcd, 0x75,
0x09, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00,
0xeb, 0x07, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00,
0x00, 0x48, 0x89, 0x08, 0x48, 0x89, 0xdf, 0x4c,
0x89, 0xf6, 0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4,
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e,
0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00, 0x00, 0x00,
0x00, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00,
0x00, 0x00, 0x49, 0x8d, 0x46, 0xf0, 0x85, 0xed,
0x79, 0xb0, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00,
0x00, 0x49, 0x89, 0x8f, 0x28, 0x01, 0x00, 0x00,
0x48, 0x29, 0xd8, 0x48, 0x83, 0xc0, 0xb8, 0x48,
0xc1, 0xe8, 0x03, 0x89, 0x43, 0x40, 0x31, 0xc0,
0xe9, 0x39, 0xff, 0xff, 0xff,
};
static const Hole _CONTAINS_OP_STR_code_holes[12] = {
{0x20, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x29, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x48, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x71, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x8d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0xb1, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x24},
{0xbc, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
{0xc5, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x34},
{0xe5, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c},
{0xee, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0xfd, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
};
// 0:
// 0: &PyUnicode_Type+0x0
// 8: EXECUTOR
// 10: TARGET
// 18: &PyUnicode_Contains+0x0
// 20: &_Py_Dealloc+0x0
// 28: OPARG
// 30: &_Py_FalseStruct+0x0
// 38: &_Py_TrueStruct+0x0
// 40: CONTINUE
static const unsigned char _CONTAINS_OP_STR_data_body[73] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CONTAINS_OP_STR_data_holes[10] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyUnicode_Type, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyUnicode_Contains, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x30, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0},
{0x38, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0},
{0x40, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
};
// _CONTAINS_OP_TUPLE
//
// /tmp/tmp2mfmnab2/_CONTAINS_OP_TUPLE.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d7 movq %rdx, %r15
// e: 49 89 f6 movq %rsi, %r14
// 11: 48 89 fb movq %rdi, %rbx
// 14: 4c 8b 66 f8 movq -0x8(%rsi), %r12
// 18: 49 8b 44 24 08 movq 0x8(%r12), %rax
// 1d: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x24 <_JIT_ENTRY+0x24>
// 0000000000000020: R_X86_64_REX_GOTPCRELX PyTuple_Type-0x4
// 24: 74 3f je 0x65 <_JIT_ENTRY+0x65>
// 26: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x2d <_JIT_ENTRY+0x2d>
// 0000000000000029: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 2d: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 34: 49 29 de subq %rbx, %r14
// 37: 49 83 c6 b8 addq $-0x48, %r14
// 3b: 49 c1 ee 03 shrq $0x3, %r14
// 3f: 44 89 73 40 movl %r14d, 0x40(%rbx)
// 43: 48 8b 03 movq (%rbx), %rax
// 46: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4c <_JIT_ENTRY+0x4c>
// 0000000000000048: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 4c: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 50: 48 05 c8 00 00 00 addq $0xc8, %rax
// 56: 48 83 c4 08 addq $0x8, %rsp
// 5a: 5b popq %rbx
// 5b: 41 5c popq %r12
// 5d: 41 5d popq %r13
// 5f: 41 5e popq %r14
// 61: 41 5f popq %r15
// 63: 5d popq %rbp
// 64: c3 retq
// 65: 4d 8b 6e f0 movq -0x10(%r14), %r13
// 69: 4c 89 e7 movq %r12, %rdi
// 6c: 4c 89 ee movq %r13, %rsi
// 6f: ff 15 00 00 00 00 callq *(%rip) # 0x75 <_JIT_ENTRY+0x75>
// 0000000000000071: R_X86_64_GOTPCRELX _PyTuple_Contains-0x4
// 75: 89 c5 movl %eax, %ebp
// 77: 49 8b 45 00 movq (%r13), %rax
// 7b: 85 c0 testl %eax, %eax
// 7d: 78 12 js 0x91 <_JIT_ENTRY+0x91>
// 7f: 48 ff c8 decq %rax
// 82: 49 89 45 00 movq %rax, (%r13)
// 86: 75 09 jne 0x91 <_JIT_ENTRY+0x91>
// 88: 4c 89 ef movq %r13, %rdi
// 8b: ff 15 00 00 00 00 callq *(%rip) # 0x91 <_JIT_ENTRY+0x91>
// 000000000000008d: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 91: 49 8b 04 24 movq (%r12), %rax
// 95: 85 c0 testl %eax, %eax
// 97: 78 09 js 0xa2 <_JIT_ENTRY+0xa2>
// 99: 48 ff c8 decq %rax
// 9c: 49 89 04 24 movq %rax, (%r12)
// a0: 74 47 je 0xe9 <_JIT_ENTRY+0xe9>
// a2: 49 8d 46 f0 leaq -0x10(%r14), %rax
// a6: 85 ed testl %ebp, %ebp
// a8: 78 50 js 0xfa <_JIT_ENTRY+0xfa>
// aa: 49 83 c6 f8 addq $-0x8, %r14
// ae: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0xb5 <_JIT_ENTRY+0xb5>
// 00000000000000b1: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// b5: 39 cd cmpl %ecx, %ebp
// b7: 75 09 jne 0xc2 <_JIT_ENTRY+0xc2>
// b9: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xc0 <_JIT_ENTRY+0xc0>
// 00000000000000bc: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4
// c0: eb 07 jmp 0xc9 <_JIT_ENTRY+0xc9>
// c2: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xc9 <_JIT_ENTRY+0xc9>
// 00000000000000c5: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4
// c9: 48 89 08 movq %rcx, (%rax)
// cc: 48 89 df movq %rbx, %rdi
// cf: 4c 89 f6 movq %r14, %rsi
// d2: 4c 89 fa movq %r15, %rdx
// d5: 48 83 c4 08 addq $0x8, %rsp
// d9: 5b popq %rbx
// da: 41 5c popq %r12
// dc: 41 5d popq %r13
// de: 41 5e popq %r14
// e0: 41 5f popq %r15
// e2: 5d popq %rbp
// e3: ff 25 00 00 00 00 jmpq *(%rip) # 0xe9 <_JIT_ENTRY+0xe9>
// 00000000000000e5: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// e9: 4c 89 e7 movq %r12, %rdi
// ec: ff 15 00 00 00 00 callq *(%rip) # 0xf2 <_JIT_ENTRY+0xf2>
// 00000000000000ee: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// f2: 49 8d 46 f0 leaq -0x10(%r14), %rax
// f6: 85 ed testl %ebp, %ebp
// f8: 79 b0 jns 0xaa <_JIT_ENTRY+0xaa>
// fa: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x101 <_JIT_ENTRY+0x101>
// 00000000000000fd: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 101: 49 89 8f 28 01 00 00 movq %rcx, 0x128(%r15)
// 108: 48 29 d8 subq %rbx, %rax
// 10b: 48 83 c0 b8 addq $-0x48, %rax
// 10f: 48 c1 e8 03 shrq $0x3, %rax
// 113: 89 43 40 movl %eax, 0x40(%rbx)
// 116: 31 c0 xorl %eax, %eax
// 118: e9 39 ff ff ff jmp 0x56 <_JIT_ENTRY+0x56>
// 11d:
static const unsigned char _CONTAINS_OP_TUPLE_code_body[286] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x49, 0x89,
0xf6, 0x48, 0x89, 0xfb, 0x4c, 0x8b, 0x66, 0xf8,
0x49, 0x8b, 0x44, 0x24, 0x08, 0x48, 0x3b, 0x05,
0x00, 0x00, 0x00, 0x00, 0x74, 0x3f, 0x48, 0x8b,
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87,
0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xde, 0x49,
0x83, 0xc6, 0xb8, 0x49, 0xc1, 0xee, 0x03, 0x44,
0x89, 0x73, 0x40, 0x48, 0x8b, 0x03, 0x8b, 0x0d,
0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48,
0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0x48, 0x83,
0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41,
0x5e, 0x41, 0x5f, 0x5d, 0xc3, 0x4d, 0x8b, 0x6e,
0xf0, 0x4c, 0x89, 0xe7, 0x4c, 0x89, 0xee, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0x89, 0xc5, 0x49,
0x8b, 0x45, 0x00, 0x85, 0xc0, 0x78, 0x12, 0x48,
0xff, 0xc8, 0x49, 0x89, 0x45, 0x00, 0x75, 0x09,
0x4c, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78,
0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24,
0x74, 0x47, 0x49, 0x8d, 0x46, 0xf0, 0x85, 0xed,
0x78, 0x50, 0x49, 0x83, 0xc6, 0xf8, 0x0f, 0xb7,
0x0d, 0x00, 0x00, 0x00, 0x00, 0x39, 0xcd, 0x75,
0x09, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00,
0xeb, 0x07, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00,
0x00, 0x48, 0x89, 0x08, 0x48, 0x89, 0xdf, 0x4c,
0x89, 0xf6, 0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4,
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e,
0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00, 0x00, 0x00,
0x00, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00,
0x00, 0x00, 0x49, 0x8d, 0x46, 0xf0, 0x85, 0xed,
0x79, 0xb0, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00,
0x00, 0x49, 0x89, 0x8f, 0x28, 0x01, 0x00, 0x00,
0x48, 0x29, 0xd8, 0x48, 0x83, 0xc0, 0xb8, 0x48,
0xc1, 0xe8, 0x03, 0x89, 0x43, 0x40, 0x31, 0xc0,
0xe9, 0x39, 0xff, 0xff, 0xff,
};
static const Hole _CONTAINS_OP_TUPLE_code_holes[12] = {
{0x20, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x29, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x48, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x71, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x8d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0xb1, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x24},
{0xbc, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
{0xc5, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x34},
{0xe5, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c},
{0xee, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0xfd, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
};
// 0:
// 0: &PyTuple_Type+0x0
// 8: EXECUTOR
// 10: TARGET
// 18: &_PyTuple_Contains+0x0
// 20: &_Py_Dealloc+0x0
// 28: OPARG
// 30: &_Py_FalseStruct+0x0
// 38: &_Py_TrueStruct+0x0
// 40: CONTINUE
static const unsigned char _CONTAINS_OP_TUPLE_data_body[73] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CONTAINS_OP_TUPLE_data_holes[10] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyTuple_Type, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyTuple_Contains, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x30, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0},
{0x38, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0},
{0x40, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
};
// _CONVERT_VALUE
//
// /tmp/tmp2mfmnab2/_CONVERT_VALUE.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 55 pushq %r13
// 6: 41 54 pushq %r12
// 8: 53 pushq %rbx
// 9: 49 89 d7 movq %rdx, %r15
// c: 48 89 f3 movq %rsi, %rbx
// f: 49 89 fe movq %rdi, %r14
// 12: 4c 8b 6e f8 movq -0x8(%rsi), %r13
// 16: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x1d <_JIT_ENTRY+0x1d>
// 0000000000000019: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 1d: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x24 <_JIT_ENTRY+0x24>
// 0000000000000020: R_X86_64_REX_GOTPCRELX _PyEval_ConversionFuncs-0x4
// 24: 4c 89 ef movq %r13, %rdi
// 27: ff 14 c1 callq *(%rcx,%rax,8)
// 2a: 49 89 c4 movq %rax, %r12
// 2d: 49 8b 45 00 movq (%r13), %rax
// 31: 85 c0 testl %eax, %eax
// 33: 78 09 js 0x3e <_JIT_ENTRY+0x3e>
// 35: 48 ff c8 decq %rax
// 38: 49 89 45 00 movq %rax, (%r13)
// 3c: 74 21 je 0x5f <_JIT_ENTRY+0x5f>
// 3e: 4d 85 e4 testq %r12, %r12
// 41: 74 2a je 0x6d <_JIT_ENTRY+0x6d>
// 43: 4c 89 63 f8 movq %r12, -0x8(%rbx)
// 47: 4c 89 f7 movq %r14, %rdi
// 4a: 48 89 de movq %rbx, %rsi
// 4d: 4c 89 fa movq %r15, %rdx
// 50: 5b popq %rbx
// 51: 41 5c popq %r12
// 53: 41 5d popq %r13
// 55: 41 5e popq %r14
// 57: 41 5f popq %r15
// 59: ff 25 00 00 00 00 jmpq *(%rip) # 0x5f <_JIT_ENTRY+0x5f>
// 000000000000005b: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 5f: 4c 89 ef movq %r13, %rdi
// 62: ff 15 00 00 00 00 callq *(%rip) # 0x68 <_JIT_ENTRY+0x68>
// 0000000000000064: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 68: 4d 85 e4 testq %r12, %r12
// 6b: 75 d6 jne 0x43 <_JIT_ENTRY+0x43>
// 6d: 48 83 c3 f8 addq $-0x8, %rbx
// 71: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x78 <_JIT_ENTRY+0x78>
// 0000000000000074: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 78: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 7f: 4c 29 f3 subq %r14, %rbx
// 82: 48 83 c3 b8 addq $-0x48, %rbx
// 86: 48 c1 eb 03 shrq $0x3, %rbx
// 8a: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 8e: 31 c0 xorl %eax, %eax
// 90: 5b popq %rbx
// 91: 41 5c popq %r12
// 93: 41 5d popq %r13
// 95: 41 5e popq %r14
// 97: 41 5f popq %r15
// 99: c3 retq
// 9a:
static const unsigned char _CONVERT_VALUE_code_body[155] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54,
0x53, 0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49,
0x89, 0xfe, 0x4c, 0x8b, 0x6e, 0xf8, 0x0f, 0xb7,
0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x0d,
0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xef, 0xff,
0x14, 0xc1, 0x49, 0x89, 0xc4, 0x49, 0x8b, 0x45,
0x00, 0x85, 0xc0, 0x78, 0x09, 0x48, 0xff, 0xc8,
0x49, 0x89, 0x45, 0x00, 0x74, 0x21, 0x4d, 0x85,
0xe4, 0x74, 0x2a, 0x4c, 0x89, 0x63, 0xf8, 0x4c,
0x89, 0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa,
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41,
0x5f, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x4c,
0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x4d, 0x85, 0xe4, 0x75, 0xd6, 0x48, 0x83, 0xc3,
0xf8, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x49, 0x89, 0x87, 0x28, 0x01, 0x00, 0x00, 0x4c,
0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8, 0x48, 0xc1,
0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, 0x31, 0xc0,
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41,
0x5f, 0xc3,
};
static const Hole _CONVERT_VALUE_code_holes[6] = {
{0x19, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x20, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x5b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x64, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x74, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
};
// 0:
// 0: OPARG
// 8: &_PyEval_ConversionFuncs+0x0
// 10: CONTINUE
// 18: &_Py_Dealloc+0x0
// 20: EXECUTOR
static const unsigned char _CONVERT_VALUE_data_body[41] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _CONVERT_VALUE_data_holes[6] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyEval_ConversionFuncs, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _COPY
//
// /tmp/tmp2mfmnab2/_COPY.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x7 <_JIT_ENTRY+0x7>
// 0000000000000003: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 7: 48 c1 e0 03 shlq $0x3, %rax
// b: 48 89 f1 movq %rsi, %rcx
// e: 48 29 c1 subq %rax, %rcx
// 11: 48 8b 01 movq (%rcx), %rax
// 14: 8b 08 movl (%rax), %ecx
// 16: ff c1 incl %ecx
// 18: 74 02 je 0x1c <_JIT_ENTRY+0x1c>
// 1a: 89 08 movl %ecx, (%rax)
// 1c: 48 89 06 movq %rax, (%rsi)
// 1f: 48 83 c6 08 addq $0x8, %rsi
// 23: ff 25 00 00 00 00 jmpq *(%rip) # 0x29 <_JIT_ENTRY+0x29>
// 0000000000000025: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 23:
static const unsigned char _COPY_code_body[36] = {
0x0f, 0xb7, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48,
0xc1, 0xe0, 0x03, 0x48, 0x89, 0xf1, 0x48, 0x29,
0xc1, 0x48, 0x8b, 0x01, 0x8b, 0x08, 0xff, 0xc1,
0x74, 0x02, 0x89, 0x08, 0x48, 0x89, 0x06, 0x48,
0x83, 0xc6, 0x08,
};
static const Hole _COPY_code_holes[2] = {
{0x3, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
};
// 0:
// 0: OPARG
static const unsigned char _COPY_data_body[9] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _COPY_data_holes[2] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
};
// _COPY_FREE_VARS
//
// /tmp/tmp2mfmnab2/_COPY_FREE_VARS.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 53 pushq %rbx
// 2: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x9 <_JIT_ENTRY+0x9>
// 0000000000000005: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 9: 66 85 c0 testw %ax, %ax
// c: 74 55 je 0x63 <_JIT_ENTRY+0x63>
// e: 48 8b 47 10 movq 0x10(%rdi), %rax
// 12: 48 8b 40 48 movq 0x48(%rax), %rax
// 16: 48 8b 0f movq (%rdi), %rcx
// 19: 8b 49 48 movl 0x48(%rcx), %ecx
// 1c: 4c 8b 05 00 00 00 00 movq (%rip), %r8 # 0x23 <_JIT_ENTRY+0x23>
// 000000000000001f: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 23: 45 0f b7 d0 movzwl %r8w, %r10d
// 27: 44 29 d1 subl %r10d, %ecx
// 2a: 48 63 c9 movslq %ecx, %rcx
// 2d: 41 83 fa 02 cmpl $0x2, %r10d
// 31: 41 b9 01 00 00 00 movl $0x1, %r9d
// 37: 45 0f 43 ca cmovael %r10d, %r9d
// 3b: 66 41 83 f8 02 cmpw $0x2, %r8w
// 40: 73 29 jae 0x6b <_JIT_ENTRY+0x6b>
// 42: 45 31 c0 xorl %r8d, %r8d
// 45: 41 f6 c1 01 testb $0x1, %r9b
// 49: 74 18 je 0x63 <_JIT_ENTRY+0x63>
// 4b: 4a 8b 44 c0 18 movq 0x18(%rax,%r8,8), %rax
// 50: 44 8b 08 movl (%rax), %r9d
// 53: 41 ff c1 incl %r9d
// 56: 74 03 je 0x5b <_JIT_ENTRY+0x5b>
// 58: 44 89 08 movl %r9d, (%rax)
// 5b: 49 01 c8 addq %rcx, %r8
// 5e: 4a 89 44 c7 48 movq %rax, 0x48(%rdi,%r8,8)
// 63: 5b popq %rbx
// 64: 5d popq %rbp
// 65: ff 25 00 00 00 00 jmpq *(%rip) # 0x6b <_JIT_ENTRY+0x6b>
// 0000000000000067: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 6b: 45 89 ca movl %r9d, %r10d
// 6e: 41 83 e2 fe andl $-0x2, %r10d
// 72: 4c 8d 1c cf leaq (%rdi,%rcx,8), %r11
// 76: 49 83 c3 50 addq $0x50, %r11
// 7a: 45 31 c0 xorl %r8d, %r8d
// 7d: eb 0e jmp 0x8d <_JIT_ENTRY+0x8d>
// 7f: 90 nop
// 80: 4b 89 1c c3 movq %rbx, (%r11,%r8,8)
// 84: 49 83 c0 02 addq $0x2, %r8
// 88: 4d 39 c2 cmpq %r8, %r10
// 8b: 74 b8 je 0x45 <_JIT_ENTRY+0x45>
// 8d: 4a 8b 5c c0 18 movq 0x18(%rax,%r8,8), %rbx
// 92: 8b 2b movl (%rbx), %ebp
// 94: ff c5 incl %ebp
// 96: 74 02 je 0x9a <_JIT_ENTRY+0x9a>
// 98: 89 2b movl %ebp, (%rbx)
// 9a: 4b 89 5c c3 f8 movq %rbx, -0x8(%r11,%r8,8)
// 9f: 4a 8b 5c c0 20 movq 0x20(%rax,%r8,8), %rbx
// a4: 8b 2b movl (%rbx), %ebp
// a6: ff c5 incl %ebp
// a8: 74 d6 je 0x80 <_JIT_ENTRY+0x80>
// aa: 89 2b movl %ebp, (%rbx)
// ac: eb d2 jmp 0x80 <_JIT_ENTRY+0x80>
// ae:
static const unsigned char _COPY_FREE_VARS_code_body[175] = {
0x55, 0x53, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x66, 0x85, 0xc0, 0x74, 0x55, 0x48, 0x8b,
0x47, 0x10, 0x48, 0x8b, 0x40, 0x48, 0x48, 0x8b,
0x0f, 0x8b, 0x49, 0x48, 0x4c, 0x8b, 0x05, 0x00,
0x00, 0x00, 0x00, 0x45, 0x0f, 0xb7, 0xd0, 0x44,
0x29, 0xd1, 0x48, 0x63, 0xc9, 0x41, 0x83, 0xfa,
0x02, 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, 0x45,
0x0f, 0x43, 0xca, 0x66, 0x41, 0x83, 0xf8, 0x02,
0x73, 0x29, 0x45, 0x31, 0xc0, 0x41, 0xf6, 0xc1,
0x01, 0x74, 0x18, 0x4a, 0x8b, 0x44, 0xc0, 0x18,
0x44, 0x8b, 0x08, 0x41, 0xff, 0xc1, 0x74, 0x03,
0x44, 0x89, 0x08, 0x49, 0x01, 0xc8, 0x4a, 0x89,
0x44, 0xc7, 0x48, 0x5b, 0x5d, 0xff, 0x25, 0x00,
0x00, 0x00, 0x00, 0x45, 0x89, 0xca, 0x41, 0x83,
0xe2, 0xfe, 0x4c, 0x8d, 0x1c, 0xcf, 0x49, 0x83,
0xc3, 0x50, 0x45, 0x31, 0xc0, 0xeb, 0x0e, 0x90,
0x4b, 0x89, 0x1c, 0xc3, 0x49, 0x83, 0xc0, 0x02,
0x4d, 0x39, 0xc2, 0x74, 0xb8, 0x4a, 0x8b, 0x5c,
0xc0, 0x18, 0x8b, 0x2b, 0xff, 0xc5, 0x74, 0x02,
0x89, 0x2b, 0x4b, 0x89, 0x5c, 0xc3, 0xf8, 0x4a,
0x8b, 0x5c, 0xc0, 0x20, 0x8b, 0x2b, 0xff, 0xc5,
0x74, 0xd6, 0x89, 0x2b, 0xeb, 0xd2,
};
static const Hole _COPY_FREE_VARS_code_holes[4] = {
{0x5, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x1f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x67, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
};
// 0:
// 0: OPARG
// 8: CONTINUE
static const unsigned char _COPY_FREE_VARS_data_body[17] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _COPY_FREE_VARS_data_holes[3] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
};
// _DELETE_ATTR
//
// /tmp/tmp2mfmnab2/_DELETE_ATTR.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d7 movq %rdx, %r15
// e: 48 89 f3 movq %rsi, %rbx
// 11: 49 89 fe movq %rdi, %r14
// 14: 4c 8d 6e f8 leaq -0x8(%rsi), %r13
// 18: 4c 8b 66 f8 movq -0x8(%rsi), %r12
// 1c: 48 8b 07 movq (%rdi), %rax
// 1f: 48 8b 40 20 movq 0x20(%rax), %rax
// 23: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0x2a <_JIT_ENTRY+0x2a>
// 0000000000000026: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 2a: 48 8b 74 c8 18 movq 0x18(%rax,%rcx,8), %rsi
// 2f: 4c 89 e7 movq %r12, %rdi
// 32: ff 15 00 00 00 00 callq *(%rip) # 0x38 <_JIT_ENTRY+0x38>
// 0000000000000034: R_X86_64_GOTPCRELX PyObject_DelAttr-0x4
// 38: 89 c5 movl %eax, %ebp
// 3a: 49 8b 04 24 movq (%r12), %rax
// 3e: 85 c0 testl %eax, %eax
// 40: 78 09 js 0x4b <_JIT_ENTRY+0x4b>
// 42: 48 ff c8 decq %rax
// 45: 49 89 04 24 movq %rax, (%r12)
// 49: 74 36 je 0x81 <_JIT_ENTRY+0x81>
// 4b: 85 ed testl %ebp, %ebp
// 4d: 49 0f 44 dd cmoveq %r13, %rbx
// 51: 74 3f je 0x92 <_JIT_ENTRY+0x92>
// 53: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x5a <_JIT_ENTRY+0x5a>
// 0000000000000056: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 5a: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 61: 4c 29 f3 subq %r14, %rbx
// 64: 48 83 c3 b0 addq $-0x50, %rbx
// 68: 48 c1 eb 03 shrq $0x3, %rbx
// 6c: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 70: 31 c0 xorl %eax, %eax
// 72: 48 83 c4 08 addq $0x8, %rsp
// 76: 5b popq %rbx
// 77: 41 5c popq %r12
// 79: 41 5d popq %r13
// 7b: 41 5e popq %r14
// 7d: 41 5f popq %r15
// 7f: 5d popq %rbp
// 80: c3 retq
// 81: 4c 89 e7 movq %r12, %rdi
// 84: ff 15 00 00 00 00 callq *(%rip) # 0x8a <_JIT_ENTRY+0x8a>
// 0000000000000086: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 8a: 85 ed testl %ebp, %ebp
// 8c: 49 0f 44 dd cmoveq %r13, %rbx
// 90: 75 c1 jne 0x53 <_JIT_ENTRY+0x53>
// 92: 4c 89 f7 movq %r14, %rdi
// 95: 48 89 de movq %rbx, %rsi
// 98: 4c 89 fa movq %r15, %rdx
// 9b: 48 83 c4 08 addq $0x8, %rsp
// 9f: 5b popq %rbx
// a0: 41 5c popq %r12
// a2: 41 5d popq %r13
// a4: 41 5e popq %r14
// a6: 41 5f popq %r15
// a8: 5d popq %rbp
// a9: ff 25 00 00 00 00 jmpq *(%rip) # 0xaf <_JIT_ENTRY+0xaf>
// 00000000000000ab: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// a9:
static const unsigned char _DELETE_ATTR_code_body[170] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x48, 0x89,
0xf3, 0x49, 0x89, 0xfe, 0x4c, 0x8d, 0x6e, 0xf8,
0x4c, 0x8b, 0x66, 0xf8, 0x48, 0x8b, 0x07, 0x48,
0x8b, 0x40, 0x20, 0x0f, 0xb7, 0x0d, 0x00, 0x00,
0x00, 0x00, 0x48, 0x8b, 0x74, 0xc8, 0x18, 0x4c,
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x89, 0xc5, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0,
0x78, 0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x04,
0x24, 0x74, 0x36, 0x85, 0xed, 0x49, 0x0f, 0x44,
0xdd, 0x74, 0x3f, 0x48, 0x8b, 0x05, 0x00, 0x00,
0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00,
0x00, 0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb0,
0x48, 0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40,
0x31, 0xc0, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41,
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d,
0xc3, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00,
0x00, 0x00, 0x85, 0xed, 0x49, 0x0f, 0x44, 0xdd,
0x75, 0xc1, 0x4c, 0x89, 0xf7, 0x48, 0x89, 0xde,
0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4, 0x08, 0x5b,
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f,
0x5d,
};
static const Hole _DELETE_ATTR_code_holes[5] = {
{0x26, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x34, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x56, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x86, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
};
// 0:
// 0: OPARG
// 8: &PyObject_DelAttr+0x0
// 10: EXECUTOR
// 18: &_Py_Dealloc+0x0
static const unsigned char _DELETE_ATTR_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _DELETE_ATTR_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_DelAttr, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
};
// _DELETE_DEREF
//
// /tmp/tmp2mfmnab2/_DELETE_DEREF.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 53 pushq %rbx
// 5: 49 89 d7 movq %rdx, %r15
// 8: 48 89 f3 movq %rsi, %rbx
// b: 49 89 fe movq %rdi, %r14
// e: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x15 <_JIT_ENTRY+0x15>
// 0000000000000011: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 15: 48 8b 44 c7 48 movq 0x48(%rdi,%rax,8), %rax
// 1a: 48 8b 78 10 movq 0x10(%rax), %rdi
// 1e: 48 85 ff testq %rdi, %rdi
// 21: 74 31 je 0x54 <_JIT_ENTRY+0x54>
// 23: 48 c7 40 10 00 00 00 00 movq $0x0, 0x10(%rax)
// 2b: 48 8b 07 movq (%rdi), %rax
// 2e: 85 c0 testl %eax, %eax
// 30: 78 0e js 0x40 <_JIT_ENTRY+0x40>
// 32: 48 ff c8 decq %rax
// 35: 48 89 07 movq %rax, (%rdi)
// 38: 75 06 jne 0x40 <_JIT_ENTRY+0x40>
// 3a: ff 15 00 00 00 00 callq *(%rip) # 0x40 <_JIT_ENTRY+0x40>
// 000000000000003c: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 40: 4c 89 f7 movq %r14, %rdi
// 43: 48 89 de movq %rbx, %rsi
// 46: 4c 89 fa movq %r15, %rdx
// 49: 5b popq %rbx
// 4a: 41 5e popq %r14
// 4c: 41 5f popq %r15
// 4e: ff 25 00 00 00 00 jmpq *(%rip) # 0x54 <_JIT_ENTRY+0x54>
// 0000000000000050: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 54: 49 8b 36 movq (%r14), %rsi
// 57: 0f b7 15 00 00 00 00 movzwl (%rip), %edx # 0x5e <_JIT_ENTRY+0x5e>
// 000000000000005a: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 5e: 4c 89 ff movq %r15, %rdi
// 61: ff 15 00 00 00 00 callq *(%rip) # 0x67 <_JIT_ENTRY+0x67>
// 0000000000000063: R_X86_64_GOTPCRELX _PyEval_FormatExcUnbound-0x4
// 67: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x6e <_JIT_ENTRY+0x6e>
// 000000000000006a: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 6e: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 75: 4c 29 f3 subq %r14, %rbx
// 78: 48 83 c3 b8 addq $-0x48, %rbx
// 7c: 48 c1 eb 03 shrq $0x3, %rbx
// 80: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 84: 31 c0 xorl %eax, %eax
// 86: 5b popq %rbx
// 87: 41 5e popq %r14
// 89: 41 5f popq %r15
// 8b: c3 retq
// 8c:
static const unsigned char _DELETE_DEREF_code_body[141] = {
0x41, 0x57, 0x41, 0x56, 0x53, 0x49, 0x89, 0xd7,
0x48, 0x89, 0xf3, 0x49, 0x89, 0xfe, 0x0f, 0xb7,
0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x44,
0xc7, 0x48, 0x48, 0x8b, 0x78, 0x10, 0x48, 0x85,
0xff, 0x74, 0x31, 0x48, 0xc7, 0x40, 0x10, 0x00,
0x00, 0x00, 0x00, 0x48, 0x8b, 0x07, 0x85, 0xc0,
0x78, 0x0e, 0x48, 0xff, 0xc8, 0x48, 0x89, 0x07,
0x75, 0x06, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x4c, 0x89, 0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89,
0xfa, 0x5b, 0x41, 0x5e, 0x41, 0x5f, 0xff, 0x25,
0x00, 0x00, 0x00, 0x00, 0x49, 0x8b, 0x36, 0x0f,
0xb7, 0x15, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89,
0xff, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48,
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89,
0x87, 0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, 0xf3,
0x48, 0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb, 0x03,
0x41, 0x89, 0x5e, 0x40, 0x31, 0xc0, 0x5b, 0x41,
0x5e, 0x41, 0x5f, 0xc3,
};
static const Hole _DELETE_DEREF_code_holes[7] = {
{0x11, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x3c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x50, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x5a, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x63, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x6a, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
};
// 0:
// 0: OPARG
// 8: &_Py_Dealloc+0x0
// 10: CONTINUE
// 18: &_PyEval_FormatExcUnbound+0x0
// 20: EXECUTOR
static const unsigned char _DELETE_DEREF_data_body[41] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _DELETE_DEREF_data_holes[6] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyEval_FormatExcUnbound, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _DELETE_FAST
//
// /tmp/tmp2mfmnab2/_DELETE_FAST.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 54 pushq %r12
// 6: 53 pushq %rbx
// 7: 50 pushq %rax
// 8: 49 89 d7 movq %rdx, %r15
// b: 48 89 f3 movq %rsi, %rbx
// e: 49 89 fe movq %rdi, %r14
// 11: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x18 <_JIT_ENTRY+0x18>
// 0000000000000014: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 18: 48 8b 7c c7 48 movq 0x48(%rdi,%rax,8), %rdi
// 1d: 48 85 ff testq %rdi, %rdi
// 20: 74 3f je 0x61 <_JIT_ENTRY+0x61>
// 22: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x29 <_JIT_ENTRY+0x29>
// 0000000000000025: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 29: 49 c7 44 c6 48 00 00 00 00 movq $0x0, 0x48(%r14,%rax,8)
// 32: 48 8b 07 movq (%rdi), %rax
// 35: 85 c0 testl %eax, %eax
// 37: 78 0e js 0x47 <_JIT_ENTRY+0x47>
// 39: 48 ff c8 decq %rax
// 3c: 48 89 07 movq %rax, (%rdi)
// 3f: 75 06 jne 0x47 <_JIT_ENTRY+0x47>
// 41: ff 15 00 00 00 00 callq *(%rip) # 0x47 <_JIT_ENTRY+0x47>
// 0000000000000043: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 47: 4c 89 f7 movq %r14, %rdi
// 4a: 48 89 de movq %rbx, %rsi
// 4d: 4c 89 fa movq %r15, %rdx
// 50: 48 83 c4 08 addq $0x8, %rsp
// 54: 5b popq %rbx
// 55: 41 5c popq %r12
// 57: 41 5e popq %r14
// 59: 41 5f popq %r15
// 5b: ff 25 00 00 00 00 jmpq *(%rip) # 0x61 <_JIT_ENTRY+0x61>
// 000000000000005d: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 61: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x68 <_JIT_ENTRY+0x68>
// 0000000000000064: R_X86_64_REX_GOTPCRELX PyExc_UnboundLocalError-0x4
// 68: 4c 8b 20 movq (%rax), %r12
// 6b: 49 8b 06 movq (%r14), %rax
// 6e: 48 8b 78 60 movq 0x60(%rax), %rdi
// 72: 0f b7 35 00 00 00 00 movzwl (%rip), %esi # 0x79 <_JIT_ENTRY+0x79>
// 0000000000000075: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 79: ff 15 00 00 00 00 callq *(%rip) # 0x7f <_JIT_ENTRY+0x7f>
// 000000000000007b: R_X86_64_GOTPCRELX PyTuple_GetItem-0x4
// 7f: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0x86 <_JIT_ENTRY+0x86>
// 0000000000000082: R_X86_64_PC32 .L.str.22-0x4
// 86: 4c 89 ff movq %r15, %rdi
// 89: 4c 89 e6 movq %r12, %rsi
// 8c: 48 89 c1 movq %rax, %rcx
// 8f: ff 15 00 00 00 00 callq *(%rip) # 0x95 <_JIT_ENTRY+0x95>
// 0000000000000091: R_X86_64_GOTPCRELX _PyEval_FormatExcCheckArg-0x4
// 95: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x9c <_JIT_ENTRY+0x9c>
// 0000000000000098: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 9c: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// a3: 4c 29 f3 subq %r14, %rbx
// a6: 48 83 c3 b8 addq $-0x48, %rbx
// aa: 48 c1 eb 03 shrq $0x3, %rbx
// ae: 41 89 5e 40 movl %ebx, 0x40(%r14)
// b2: 31 c0 xorl %eax, %eax
// b4: 48 83 c4 08 addq $0x8, %rsp
// b8: 5b popq %rbx
// b9: 41 5c popq %r12
// bb: 41 5e popq %r14
// bd: 41 5f popq %r15
// bf: c3 retq
// c0:
static const unsigned char _DELETE_FAST_code_body[193] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x54, 0x53, 0x50,
0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49, 0x89,
0xfe, 0x0f, 0xb7, 0x05, 0x00, 0x00, 0x00, 0x00,
0x48, 0x8b, 0x7c, 0xc7, 0x48, 0x48, 0x85, 0xff,
0x74, 0x3f, 0x0f, 0xb7, 0x05, 0x00, 0x00, 0x00,
0x00, 0x49, 0xc7, 0x44, 0xc6, 0x48, 0x00, 0x00,
0x00, 0x00, 0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78,
0x0e, 0x48, 0xff, 0xc8, 0x48, 0x89, 0x07, 0x75,
0x06, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x4c,
0x89, 0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa,
0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41,
0x5e, 0x41, 0x5f, 0xff, 0x25, 0x00, 0x00, 0x00,
0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x4c, 0x8b, 0x20, 0x49, 0x8b, 0x06, 0x48, 0x8b,
0x78, 0x60, 0x0f, 0xb7, 0x35, 0x00, 0x00, 0x00,
0x00, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48,
0x8d, 0x15, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89,
0xff, 0x4c, 0x89, 0xe6, 0x48, 0x89, 0xc1, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x05,
0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87, 0x28,
0x01, 0x00, 0x00, 0x4c, 0x29, 0xf3, 0x48, 0x83,
0xc3, 0xb8, 0x48, 0xc1, 0xeb, 0x03, 0x41, 0x89,
0x5e, 0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4, 0x08,
0x5b, 0x41, 0x5c, 0x41, 0x5e, 0x41, 0x5f, 0xc3,
};
static const Hole _DELETE_FAST_code_holes[11] = {
{0x14, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x4c},
{0x25, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x4c},
{0x43, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x54},
{0x5d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x5c},
{0x64, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x64},
{0x75, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x4c},
{0x7b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x6c},
{0x82, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4},
{0x91, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x74},
{0x98, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x7c},
};
// 0: "cannot access local variable '%s' where it is not associated with a value\x00"
// 4a: 00 00 00 00 00 00
// 50: OPARG
// 58: &_Py_Dealloc+0x0
// 60: CONTINUE
// 68: &PyExc_UnboundLocalError+0x0
// 70: &PyTuple_GetItem+0x0
// 78: &_PyEval_FormatExcCheckArg+0x0
// 80: EXECUTOR
static const unsigned char _DELETE_FAST_data_body[137] = {
0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x20, 0x61,
0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x6c, 0x6f,
0x63, 0x61, 0x6c, 0x20, 0x76, 0x61, 0x72, 0x69,
0x61, 0x62, 0x6c, 0x65, 0x20, 0x27, 0x25, 0x73,
0x27, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20,
0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f,
0x74, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69,
0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74,
0x68, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _DELETE_FAST_data_holes[8] = {
{0x50, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x58, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x60, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x68, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_UnboundLocalError, 0x0},
{0x70, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyTuple_GetItem, 0x0},
{0x78, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyEval_FormatExcCheckArg, 0x0},
{0x80, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _DELETE_GLOBAL
//
// /tmp/tmp2mfmnab2/_DELETE_GLOBAL.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 54 pushq %r12
// 6: 53 pushq %rbx
// 7: 50 pushq %rax
// 8: 49 89 d7 movq %rdx, %r15
// b: 48 89 f3 movq %rsi, %rbx
// e: 49 89 fe movq %rdi, %r14
// 11: 48 8b 07 movq (%rdi), %rax
// 14: 48 8b 7f 18 movq 0x18(%rdi), %rdi
// 18: 48 8b 40 20 movq 0x20(%rax), %rax
// 1c: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0x23 <_JIT_ENTRY+0x23>
// 000000000000001f: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 23: 4c 8b 64 c8 18 movq 0x18(%rax,%rcx,8), %r12
// 28: 4c 89 e6 movq %r12, %rsi
// 2b: ff 15 00 00 00 00 callq *(%rip) # 0x31 <_JIT_ENTRY+0x31>
// 000000000000002d: R_X86_64_GOTPCRELX PyDict_DelItem-0x4
// 31: 85 c0 testl %eax, %eax
// 33: 74 5f je 0x94 <_JIT_ENTRY+0x94>
// 35: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x3c <_JIT_ENTRY+0x3c>
// 0000000000000038: R_X86_64_REX_GOTPCRELX PyExc_KeyError-0x4
// 3c: 48 8b 30 movq (%rax), %rsi
// 3f: 4c 89 ff movq %r15, %rdi
// 42: ff 15 00 00 00 00 callq *(%rip) # 0x48 <_JIT_ENTRY+0x48>
// 0000000000000044: R_X86_64_GOTPCRELX _PyErr_ExceptionMatches-0x4
// 48: 85 c0 testl %eax, %eax
// 4a: 74 1d je 0x69 <_JIT_ENTRY+0x69>
// 4c: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x53 <_JIT_ENTRY+0x53>
// 000000000000004f: R_X86_64_REX_GOTPCRELX PyExc_NameError-0x4
// 53: 48 8b 30 movq (%rax), %rsi
// 56: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0x5d <_JIT_ENTRY+0x5d>
// 0000000000000059: R_X86_64_PC32 .L.str.8-0x4
// 5d: 4c 89 ff movq %r15, %rdi
// 60: 4c 89 e1 movq %r12, %rcx
// 63: ff 15 00 00 00 00 callq *(%rip) # 0x69 <_JIT_ENTRY+0x69>
// 0000000000000065: R_X86_64_GOTPCRELX _PyEval_FormatExcCheckArg-0x4
// 69: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x70 <_JIT_ENTRY+0x70>
// 000000000000006c: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 70: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 77: 4c 29 f3 subq %r14, %rbx
// 7a: 48 83 c3 b8 addq $-0x48, %rbx
// 7e: 48 c1 eb 03 shrq $0x3, %rbx
// 82: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 86: 31 c0 xorl %eax, %eax
// 88: 48 83 c4 08 addq $0x8, %rsp
// 8c: 5b popq %rbx
// 8d: 41 5c popq %r12
// 8f: 41 5e popq %r14
// 91: 41 5f popq %r15
// 93: c3 retq
// 94: 4c 89 f7 movq %r14, %rdi
// 97: 48 89 de movq %rbx, %rsi
// 9a: 4c 89 fa movq %r15, %rdx
// 9d: 48 83 c4 08 addq $0x8, %rsp
// a1: 5b popq %rbx
// a2: 41 5c popq %r12
// a4: 41 5e popq %r14
// a6: 41 5f popq %r15
// a8: ff 25 00 00 00 00 jmpq *(%rip) # 0xae <_JIT_ENTRY+0xae>
// 00000000000000aa: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// a8:
static const unsigned char _DELETE_GLOBAL_code_body[169] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x54, 0x53, 0x50,
0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49, 0x89,
0xfe, 0x48, 0x8b, 0x07, 0x48, 0x8b, 0x7f, 0x18,
0x48, 0x8b, 0x40, 0x20, 0x0f, 0xb7, 0x0d, 0x00,
0x00, 0x00, 0x00, 0x4c, 0x8b, 0x64, 0xc8, 0x18,
0x4c, 0x89, 0xe6, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0x85, 0xc0, 0x74, 0x5f, 0x48, 0x8b, 0x05,
0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x30, 0x4c,
0x89, 0xff, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x85, 0xc0, 0x74, 0x1d, 0x48, 0x8b, 0x05, 0x00,
0x00, 0x00, 0x00, 0x48, 0x8b, 0x30, 0x48, 0x8d,
0x15, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xff,
0x4c, 0x89, 0xe1, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x49, 0x89, 0x87, 0x28, 0x01, 0x00, 0x00, 0x4c,
0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8, 0x48, 0xc1,
0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, 0x31, 0xc0,
0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41,
0x5e, 0x41, 0x5f, 0xc3, 0x4c, 0x89, 0xf7, 0x48,
0x89, 0xde, 0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4,
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5e, 0x41, 0x5f,
};
static const Hole _DELETE_GLOBAL_code_holes[9] = {
{0x1f, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x1c},
{0x2d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0x38, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
{0x44, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x34},
{0x4f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x3c},
{0x59, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4},
{0x65, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x44},
{0x6c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4c},
};
// 0: "name '%.200s' is not defined\x00"
// 1d: 00 00 00
// 20: OPARG
// 28: &PyDict_DelItem+0x0
// 30: &PyExc_KeyError+0x0
// 38: &_PyErr_ExceptionMatches+0x0
// 40: &PyExc_NameError+0x0
// 48: &_PyEval_FormatExcCheckArg+0x0
// 50: EXECUTOR
static const unsigned char _DELETE_GLOBAL_data_body[89] = {
0x6e, 0x61, 0x6d, 0x65, 0x20, 0x27, 0x25, 0x2e,
0x32, 0x30, 0x30, 0x73, 0x27, 0x20, 0x69, 0x73,
0x20, 0x6e, 0x6f, 0x74, 0x20, 0x64, 0x65, 0x66,
0x69, 0x6e, 0x65, 0x64, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _DELETE_GLOBAL_data_holes[8] = {
{0x20, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyDict_DelItem, 0x0},
{0x30, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_KeyError, 0x0},
{0x38, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_ExceptionMatches, 0x0},
{0x40, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_NameError, 0x0},
{0x48, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyEval_FormatExcCheckArg, 0x0},
{0x50, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _DELETE_NAME
//
// /tmp/tmp2mfmnab2/_DELETE_NAME.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 54 pushq %r12
// 6: 53 pushq %rbx
// 7: 50 pushq %rax
// 8: 49 89 d7 movq %rdx, %r15
// b: 48 89 f3 movq %rsi, %rbx
// e: 49 89 fe movq %rdi, %r14
// 11: 48 8b 07 movq (%rdi), %rax
// 14: 48 8b 7f 28 movq 0x28(%rdi), %rdi
// 18: 48 8b 40 20 movq 0x20(%rax), %rax
// 1c: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0x23 <_JIT_ENTRY+0x23>
// 000000000000001f: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 23: 4c 8b 64 c8 18 movq 0x18(%rax,%rcx,8), %r12
// 28: 48 85 ff testq %rdi, %rdi
// 2b: 74 2c je 0x59 <_JIT_ENTRY+0x59>
// 2d: 4c 89 e6 movq %r12, %rsi
// 30: ff 15 00 00 00 00 callq *(%rip) # 0x36 <_JIT_ENTRY+0x36>
// 0000000000000032: R_X86_64_GOTPCRELX PyObject_DelItem-0x4
// 36: 85 c0 testl %eax, %eax
// 38: 74 69 je 0xa3 <_JIT_ENTRY+0xa3>
// 3a: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x41 <_JIT_ENTRY+0x41>
// 000000000000003d: R_X86_64_REX_GOTPCRELX PyExc_NameError-0x4
// 41: 48 8b 30 movq (%rax), %rsi
// 44: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0x4b <_JIT_ENTRY+0x4b>
// 0000000000000047: R_X86_64_PC32 .L.str.8-0x4
// 4b: 4c 89 ff movq %r15, %rdi
// 4e: 4c 89 e1 movq %r12, %rcx
// 51: ff 15 00 00 00 00 callq *(%rip) # 0x57 <_JIT_ENTRY+0x57>
// 0000000000000053: R_X86_64_GOTPCRELX _PyEval_FormatExcCheckArg-0x4
// 57: eb 1f jmp 0x78 <_JIT_ENTRY+0x78>
// 59: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x60 <_JIT_ENTRY+0x60>
// 000000000000005c: R_X86_64_REX_GOTPCRELX PyExc_SystemError-0x4
// 60: 48 8b 30 movq (%rax), %rsi
// 63: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0x6a <_JIT_ENTRY+0x6a>
// 0000000000000066: R_X86_64_PC32 .L.str.7-0x4
// 6a: 4c 89 ff movq %r15, %rdi
// 6d: 4c 89 e1 movq %r12, %rcx
// 70: 31 c0 xorl %eax, %eax
// 72: ff 15 00 00 00 00 callq *(%rip) # 0x78 <_JIT_ENTRY+0x78>
// 0000000000000074: R_X86_64_GOTPCRELX _PyErr_Format-0x4
// 78: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x7f <_JIT_ENTRY+0x7f>
// 000000000000007b: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 7f: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 86: 4c 29 f3 subq %r14, %rbx
// 89: 48 83 c3 b8 addq $-0x48, %rbx
// 8d: 48 c1 eb 03 shrq $0x3, %rbx
// 91: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 95: 31 c0 xorl %eax, %eax
// 97: 48 83 c4 08 addq $0x8, %rsp
// 9b: 5b popq %rbx
// 9c: 41 5c popq %r12
// 9e: 41 5e popq %r14
// a0: 41 5f popq %r15
// a2: c3 retq
// a3: 4c 89 f7 movq %r14, %rdi
// a6: 48 89 de movq %rbx, %rsi
// a9: 4c 89 fa movq %r15, %rdx
// ac: 48 83 c4 08 addq $0x8, %rsp
// b0: 5b popq %rbx
// b1: 41 5c popq %r12
// b3: 41 5e popq %r14
// b5: 41 5f popq %r15
// b7: ff 25 00 00 00 00 jmpq *(%rip) # 0xbd <_JIT_ENTRY+0xbd>
// 00000000000000b9: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// b7:
static const unsigned char _DELETE_NAME_code_body[184] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x54, 0x53, 0x50,
0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49, 0x89,
0xfe, 0x48, 0x8b, 0x07, 0x48, 0x8b, 0x7f, 0x28,
0x48, 0x8b, 0x40, 0x20, 0x0f, 0xb7, 0x0d, 0x00,
0x00, 0x00, 0x00, 0x4c, 0x8b, 0x64, 0xc8, 0x18,
0x48, 0x85, 0xff, 0x74, 0x2c, 0x4c, 0x89, 0xe6,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x85, 0xc0,
0x74, 0x69, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x48, 0x8b, 0x30, 0x48, 0x8d, 0x15, 0x00,
0x00, 0x00, 0x00, 0x4c, 0x89, 0xff, 0x4c, 0x89,
0xe1, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb,
0x1f, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x48, 0x8b, 0x30, 0x48, 0x8d, 0x15, 0x00, 0x00,
0x00, 0x00, 0x4c, 0x89, 0xff, 0x4c, 0x89, 0xe1,
0x31, 0xc0, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49,
0x89, 0x87, 0x28, 0x01, 0x00, 0x00, 0x4c, 0x29,
0xf3, 0x48, 0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb,
0x03, 0x41, 0x89, 0x5e, 0x40, 0x31, 0xc0, 0x48,
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5e,
0x41, 0x5f, 0xc3, 0x4c, 0x89, 0xf7, 0x48, 0x89,
0xde, 0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4, 0x08,
0x5b, 0x41, 0x5c, 0x41, 0x5e, 0x41, 0x5f,
};
static const Hole _DELETE_NAME_code_holes[10] = {
{0x1f, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x34},
{0x32, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c},
{0x3d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x44},
{0x47, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, 0x17},
{0x53, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4c},
{0x5c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x54},
{0x66, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4},
{0x74, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x5c},
{0x7b, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x64},
};
// 0: "no locals when deleting %R\x00name '%.200s' is not defined\x00"
// 38:
// 38: OPARG
// 40: &PyObject_DelItem+0x0
// 48: &PyExc_NameError+0x0
// 50: &_PyEval_FormatExcCheckArg+0x0
// 58: &PyExc_SystemError+0x0
// 60: &_PyErr_Format+0x0
// 68: EXECUTOR
static const unsigned char _DELETE_NAME_data_body[113] = {
0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x64,
0x65, 0x6c, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x20,
0x25, 0x52, 0x00, 0x6e, 0x61, 0x6d, 0x65, 0x20,
0x27, 0x25, 0x2e, 0x32, 0x30, 0x30, 0x73, 0x27,
0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20,
0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _DELETE_NAME_data_holes[8] = {
{0x38, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x40, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_DelItem, 0x0},
{0x48, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_NameError, 0x0},
{0x50, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyEval_FormatExcCheckArg, 0x0},
{0x58, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_SystemError, 0x0},
{0x60, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_Format, 0x0},
{0x68, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _DELETE_SUBSCR
//
// /tmp/tmp2mfmnab2/_DELETE_SUBSCR.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d7 movq %rdx, %r15
// e: 48 89 f3 movq %rsi, %rbx
// 11: 49 89 fe movq %rdi, %r14
// 14: 4c 8b 6e f0 movq -0x10(%rsi), %r13
// 18: 4c 8b 66 f8 movq -0x8(%rsi), %r12
// 1c: 4c 89 ef movq %r13, %rdi
// 1f: 4c 89 e6 movq %r12, %rsi
// 22: ff 15 00 00 00 00 callq *(%rip) # 0x28 <_JIT_ENTRY+0x28>
// 0000000000000024: R_X86_64_GOTPCRELX PyObject_DelItem-0x4
// 28: 89 c5 movl %eax, %ebp
// 2a: 49 8b 45 00 movq (%r13), %rax
// 2e: 85 c0 testl %eax, %eax
// 30: 78 09 js 0x3b <_JIT_ENTRY+0x3b>
// 32: 48 ff c8 decq %rax
// 35: 49 89 45 00 movq %rax, (%r13)
// 39: 74 20 je 0x5b <_JIT_ENTRY+0x5b>
// 3b: 4c 8d 6b f0 leaq -0x10(%rbx), %r13
// 3f: 49 8b 04 24 movq (%r12), %rax
// 43: 85 c0 testl %eax, %eax
// 45: 78 29 js 0x70 <_JIT_ENTRY+0x70>
// 47: 48 ff c8 decq %rax
// 4a: 49 89 04 24 movq %rax, (%r12)
// 4e: 75 20 jne 0x70 <_JIT_ENTRY+0x70>
// 50: 4c 89 e7 movq %r12, %rdi
// 53: ff 15 00 00 00 00 callq *(%rip) # 0x59 <_JIT_ENTRY+0x59>
// 0000000000000055: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 59: eb 15 jmp 0x70 <_JIT_ENTRY+0x70>
// 5b: 4c 89 ef movq %r13, %rdi
// 5e: ff 15 00 00 00 00 callq *(%rip) # 0x64 <_JIT_ENTRY+0x64>
// 0000000000000060: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 64: 4c 8d 6b f0 leaq -0x10(%rbx), %r13
// 68: 49 8b 04 24 movq (%r12), %rax
// 6c: 85 c0 testl %eax, %eax
// 6e: 79 d7 jns 0x47 <_JIT_ENTRY+0x47>
// 70: 85 ed testl %ebp, %ebp
// 72: 49 0f 44 dd cmoveq %r13, %rbx
// 76: 74 2e je 0xa6 <_JIT_ENTRY+0xa6>
// 78: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x7f <_JIT_ENTRY+0x7f>
// 000000000000007b: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 7f: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 86: 4c 29 f3 subq %r14, %rbx
// 89: 48 83 c3 a8 addq $-0x58, %rbx
// 8d: 48 c1 eb 03 shrq $0x3, %rbx
// 91: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 95: 31 c0 xorl %eax, %eax
// 97: 48 83 c4 08 addq $0x8, %rsp
// 9b: 5b popq %rbx
// 9c: 41 5c popq %r12
// 9e: 41 5d popq %r13
// a0: 41 5e popq %r14
// a2: 41 5f popq %r15
// a4: 5d popq %rbp
// a5: c3 retq
// a6: 4c 89 f7 movq %r14, %rdi
// a9: 48 89 de movq %rbx, %rsi
// ac: 4c 89 fa movq %r15, %rdx
// af: 48 83 c4 08 addq $0x8, %rsp
// b3: 5b popq %rbx
// b4: 41 5c popq %r12
// b6: 41 5d popq %r13
// b8: 41 5e popq %r14
// ba: 41 5f popq %r15
// bc: 5d popq %rbp
// bd: ff 25 00 00 00 00 jmpq *(%rip) # 0xc3 <_JIT_ENTRY+0xc3>
// 00000000000000bf: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// bd:
static const unsigned char _DELETE_SUBSCR_code_body[190] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x48, 0x89,
0xf3, 0x49, 0x89, 0xfe, 0x4c, 0x8b, 0x6e, 0xf0,
0x4c, 0x8b, 0x66, 0xf8, 0x4c, 0x89, 0xef, 0x4c,
0x89, 0xe6, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x89, 0xc5, 0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0,
0x78, 0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x45,
0x00, 0x74, 0x20, 0x4c, 0x8d, 0x6b, 0xf0, 0x49,
0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, 0x29, 0x48,
0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x20,
0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0xeb, 0x15, 0x4c, 0x89, 0xef, 0xff, 0x15,
0x00, 0x00, 0x00, 0x00, 0x4c, 0x8d, 0x6b, 0xf0,
0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x79, 0xd7,
0x85, 0xed, 0x49, 0x0f, 0x44, 0xdd, 0x74, 0x2e,
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49,
0x89, 0x87, 0x28, 0x01, 0x00, 0x00, 0x4c, 0x29,
0xf3, 0x48, 0x83, 0xc3, 0xa8, 0x48, 0xc1, 0xeb,
0x03, 0x41, 0x89, 0x5e, 0x40, 0x31, 0xc0, 0x48,
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d,
0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xc3, 0x4c, 0x89,
0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, 0x48,
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d,
0x41, 0x5e, 0x41, 0x5f, 0x5d,
};
static const Hole _DELETE_SUBSCR_code_holes[5] = {
{0x24, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x55, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x60, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x7b, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
};
// 0:
// 0: &PyObject_DelItem+0x0
// 8: &_Py_Dealloc+0x0
// 10: EXECUTOR
static const unsigned char _DELETE_SUBSCR_data_body[25] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _DELETE_SUBSCR_data_holes[4] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_DelItem, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _DICT_MERGE
//
// /tmp/tmp2mfmnab2/_DICT_MERGE.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 55 pushq %r13
// 6: 41 54 pushq %r12
// 8: 53 pushq %rbx
// 9: 49 89 d7 movq %rdx, %r15
// c: 48 89 fb movq %rdi, %rbx
// f: 4c 8d 76 f8 leaq -0x8(%rsi), %r14
// 13: 4c 8b 66 f8 movq -0x8(%rsi), %r12
// 17: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x1e <_JIT_ENTRY+0x1e>
// 000000000000001a: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 1e: b9 fc ff ff ff movl $0xfffffffc, %ecx # imm = 0xFFFFFFFC
// 23: 29 c1 subl %eax, %ecx
// 25: f7 d0 notl %eax
// 27: 48 98 cltq
// 29: 48 8b 3c c6 movq (%rsi,%rax,8), %rdi
// 2d: 48 63 c1 movslq %ecx, %rax
// 30: 4c 8b 2c c6 movq (%rsi,%rax,8), %r13
// 34: 4c 89 e6 movq %r12, %rsi
// 37: ba 02 00 00 00 movl $0x2, %edx
// 3c: ff 15 00 00 00 00 callq *(%rip) # 0x42 <_JIT_ENTRY+0x42>
// 000000000000003e: R_X86_64_GOTPCRELX _PyDict_MergeEx-0x4
// 42: 85 c0 testl %eax, %eax
// 44: 78 32 js 0x78 <_JIT_ENTRY+0x78>
// 46: 49 8b 04 24 movq (%r12), %rax
// 4a: 85 c0 testl %eax, %eax
// 4c: 78 12 js 0x60 <_JIT_ENTRY+0x60>
// 4e: 48 ff c8 decq %rax
// 51: 49 89 04 24 movq %rax, (%r12)
// 55: 75 09 jne 0x60 <_JIT_ENTRY+0x60>
// 57: 4c 89 e7 movq %r12, %rdi
// 5a: ff 15 00 00 00 00 callq *(%rip) # 0x60 <_JIT_ENTRY+0x60>
// 000000000000005c: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 60: 48 89 df movq %rbx, %rdi
// 63: 4c 89 f6 movq %r14, %rsi
// 66: 4c 89 fa movq %r15, %rdx
// 69: 5b popq %rbx
// 6a: 41 5c popq %r12
// 6c: 41 5d popq %r13
// 6e: 41 5e popq %r14
// 70: 41 5f popq %r15
// 72: ff 25 00 00 00 00 jmpq *(%rip) # 0x78 <_JIT_ENTRY+0x78>
// 0000000000000074: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 78: 4c 89 ff movq %r15, %rdi
// 7b: 4c 89 ee movq %r13, %rsi
// 7e: 4c 89 e2 movq %r12, %rdx
// 81: ff 15 00 00 00 00 callq *(%rip) # 0x87 <_JIT_ENTRY+0x87>
// 0000000000000083: R_X86_64_GOTPCRELX _PyEval_FormatKwargsError-0x4
// 87: 49 8b 04 24 movq (%r12), %rax
// 8b: 85 c0 testl %eax, %eax
// 8d: 78 12 js 0xa1 <_JIT_ENTRY+0xa1>
// 8f: 48 ff c8 decq %rax
// 92: 49 89 04 24 movq %rax, (%r12)
// 96: 75 09 jne 0xa1 <_JIT_ENTRY+0xa1>
// 98: 4c 89 e7 movq %r12, %rdi
// 9b: ff 15 00 00 00 00 callq *(%rip) # 0xa1 <_JIT_ENTRY+0xa1>
// 000000000000009d: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// a1: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xa8 <_JIT_ENTRY+0xa8>
// 00000000000000a4: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// a8: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// af: 49 29 de subq %rbx, %r14
// b2: 49 83 c6 b8 addq $-0x48, %r14
// b6: 49 c1 ee 03 shrq $0x3, %r14
// ba: 44 89 73 40 movl %r14d, 0x40(%rbx)
// be: 31 c0 xorl %eax, %eax
// c0: 5b popq %rbx
// c1: 41 5c popq %r12
// c3: 41 5d popq %r13
// c5: 41 5e popq %r14
// c7: 41 5f popq %r15
// c9: c3 retq
// ca:
static const unsigned char _DICT_MERGE_code_body[203] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54,
0x53, 0x49, 0x89, 0xd7, 0x48, 0x89, 0xfb, 0x4c,
0x8d, 0x76, 0xf8, 0x4c, 0x8b, 0x66, 0xf8, 0x0f,
0xb7, 0x05, 0x00, 0x00, 0x00, 0x00, 0xb9, 0xfc,
0xff, 0xff, 0xff, 0x29, 0xc1, 0xf7, 0xd0, 0x48,
0x98, 0x48, 0x8b, 0x3c, 0xc6, 0x48, 0x63, 0xc1,
0x4c, 0x8b, 0x2c, 0xc6, 0x4c, 0x89, 0xe6, 0xba,
0x02, 0x00, 0x00, 0x00, 0xff, 0x15, 0x00, 0x00,
0x00, 0x00, 0x85, 0xc0, 0x78, 0x32, 0x49, 0x8b,
0x04, 0x24, 0x85, 0xc0, 0x78, 0x12, 0x48, 0xff,
0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x09, 0x4c,
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x48, 0x89, 0xdf, 0x4c, 0x89, 0xf6, 0x4c, 0x89,
0xfa, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e,
0x41, 0x5f, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00,
0x4c, 0x89, 0xff, 0x4c, 0x89, 0xee, 0x4c, 0x89,
0xe2, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x49,
0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, 0x12, 0x48,
0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x09,
0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x49, 0x89, 0x87, 0x28, 0x01, 0x00, 0x00, 0x49,
0x29, 0xde, 0x49, 0x83, 0xc6, 0xb8, 0x49, 0xc1,
0xee, 0x03, 0x44, 0x89, 0x73, 0x40, 0x31, 0xc0,
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41,
0x5f, 0xc3,
};
static const Hole _DICT_MERGE_code_holes[8] = {
{0x1a, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x3e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x5c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x74, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x83, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0x9d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0xa4, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
};
// 0:
// 0: OPARG
// 8: &_PyDict_MergeEx+0x0
// 10: &_Py_Dealloc+0x0
// 18: CONTINUE
// 20: &_PyEval_FormatKwargsError+0x0
// 28: EXECUTOR
static const unsigned char _DICT_MERGE_data_body[49] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _DICT_MERGE_data_holes[7] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyDict_MergeEx, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyEval_FormatKwargsError, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _DICT_UPDATE
//
// /tmp/tmp2mfmnab2/_DICT_UPDATE.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 54 pushq %r12
// 6: 53 pushq %rbx
// 7: 50 pushq %rax
// 8: 49 89 d7 movq %rdx, %r15
// b: 48 89 fb movq %rdi, %rbx
// e: 4c 8d 76 f8 leaq -0x8(%rsi), %r14
// 12: 4c 8b 66 f8 movq -0x8(%rsi), %r12
// 16: 8b 05 00 00 00 00 movl (%rip), %eax # 0x1c <_JIT_ENTRY+0x1c>
// 0000000000000018: R_X86_64_GOTPCRELX _JIT_OPARG-0x4
// 1c: f7 d0 notl %eax
// 1e: 0d 00 00 ff ff orl $0xffff0000, %eax # imm = 0xFFFF0000
// 23: 48 98 cltq
// 25: 48 8b 3c c6 movq (%rsi,%rax,8), %rdi
// 29: 4c 89 e6 movq %r12, %rsi
// 2c: ff 15 00 00 00 00 callq *(%rip) # 0x32 <_JIT_ENTRY+0x32>
// 000000000000002e: R_X86_64_GOTPCRELX PyDict_Update-0x4
// 32: 85 c0 testl %eax, %eax
// 34: 78 34 js 0x6a <_JIT_ENTRY+0x6a>
// 36: 49 8b 04 24 movq (%r12), %rax
// 3a: 85 c0 testl %eax, %eax
// 3c: 78 12 js 0x50 <_JIT_ENTRY+0x50>
// 3e: 48 ff c8 decq %rax
// 41: 49 89 04 24 movq %rax, (%r12)
// 45: 75 09 jne 0x50 <_JIT_ENTRY+0x50>
// 47: 4c 89 e7 movq %r12, %rdi
// 4a: ff 15 00 00 00 00 callq *(%rip) # 0x50 <_JIT_ENTRY+0x50>
// 000000000000004c: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 50: 48 89 df movq %rbx, %rdi
// 53: 4c 89 f6 movq %r14, %rsi
// 56: 4c 89 fa movq %r15, %rdx
// 59: 48 83 c4 08 addq $0x8, %rsp
// 5d: 5b popq %rbx
// 5e: 41 5c popq %r12
// 60: 41 5e popq %r14
// 62: 41 5f popq %r15
// 64: ff 25 00 00 00 00 jmpq *(%rip) # 0x6a <_JIT_ENTRY+0x6a>
// 0000000000000066: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 6a: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x71 <_JIT_ENTRY+0x71>
// 000000000000006d: R_X86_64_REX_GOTPCRELX PyExc_AttributeError-0x4
// 71: 48 8b 30 movq (%rax), %rsi
// 74: 4c 89 ff movq %r15, %rdi
// 77: ff 15 00 00 00 00 callq *(%rip) # 0x7d <_JIT_ENTRY+0x7d>
// 0000000000000079: R_X86_64_GOTPCRELX _PyErr_ExceptionMatches-0x4
// 7d: 85 c0 testl %eax, %eax
// 7f: 74 25 je 0xa6 <_JIT_ENTRY+0xa6>
// 81: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x88 <_JIT_ENTRY+0x88>
// 0000000000000084: R_X86_64_REX_GOTPCRELX PyExc_TypeError-0x4
// 88: 48 8b 30 movq (%rax), %rsi
// 8b: 49 8b 44 24 08 movq 0x8(%r12), %rax
// 90: 48 8b 48 18 movq 0x18(%rax), %rcx
// 94: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0x9b <_JIT_ENTRY+0x9b>
// 0000000000000097: R_X86_64_PC32 .L.str.13-0x4
// 9b: 4c 89 ff movq %r15, %rdi
// 9e: 31 c0 xorl %eax, %eax
// a0: ff 15 00 00 00 00 callq *(%rip) # 0xa6 <_JIT_ENTRY+0xa6>
// 00000000000000a2: R_X86_64_GOTPCRELX _PyErr_Format-0x4
// a6: 49 8b 04 24 movq (%r12), %rax
// aa: 85 c0 testl %eax, %eax
// ac: 78 12 js 0xc0 <_JIT_ENTRY+0xc0>
// ae: 48 ff c8 decq %rax
// b1: 49 89 04 24 movq %rax, (%r12)
// b5: 75 09 jne 0xc0 <_JIT_ENTRY+0xc0>
// b7: 4c 89 e7 movq %r12, %rdi
// ba: ff 15 00 00 00 00 callq *(%rip) # 0xc0 <_JIT_ENTRY+0xc0>
// 00000000000000bc: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// c0: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xc7 <_JIT_ENTRY+0xc7>
// 00000000000000c3: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// c7: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// ce: 49 29 de subq %rbx, %r14
// d1: 49 83 c6 b8 addq $-0x48, %r14
// d5: 49 c1 ee 03 shrq $0x3, %r14
// d9: 44 89 73 40 movl %r14d, 0x40(%rbx)
// dd: 31 c0 xorl %eax, %eax
// df: 48 83 c4 08 addq $0x8, %rsp
// e3: 5b popq %rbx
// e4: 41 5c popq %r12
// e6: 41 5e popq %r14
// e8: 41 5f popq %r15
// ea: c3 retq
// eb:
static const unsigned char _DICT_UPDATE_code_body[236] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x54, 0x53, 0x50,
0x49, 0x89, 0xd7, 0x48, 0x89, 0xfb, 0x4c, 0x8d,
0x76, 0xf8, 0x4c, 0x8b, 0x66, 0xf8, 0x8b, 0x05,
0x00, 0x00, 0x00, 0x00, 0xf7, 0xd0, 0x0d, 0x00,
0x00, 0xff, 0xff, 0x48, 0x98, 0x48, 0x8b, 0x3c,
0xc6, 0x4c, 0x89, 0xe6, 0xff, 0x15, 0x00, 0x00,
0x00, 0x00, 0x85, 0xc0, 0x78, 0x34, 0x49, 0x8b,
0x04, 0x24, 0x85, 0xc0, 0x78, 0x12, 0x48, 0xff,
0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x09, 0x4c,
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x48, 0x89, 0xdf, 0x4c, 0x89, 0xf6, 0x4c, 0x89,
0xfa, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c,
0x41, 0x5e, 0x41, 0x5f, 0xff, 0x25, 0x00, 0x00,
0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x48, 0x8b, 0x30, 0x4c, 0x89, 0xff, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0x85, 0xc0, 0x74,
0x25, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x48, 0x8b, 0x30, 0x49, 0x8b, 0x44, 0x24, 0x08,
0x48, 0x8b, 0x48, 0x18, 0x48, 0x8d, 0x15, 0x00,
0x00, 0x00, 0x00, 0x4c, 0x89, 0xff, 0x31, 0xc0,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x49, 0x8b,
0x04, 0x24, 0x85, 0xc0, 0x78, 0x12, 0x48, 0xff,
0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x09, 0x4c,
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49,
0x89, 0x87, 0x28, 0x01, 0x00, 0x00, 0x49, 0x29,
0xde, 0x49, 0x83, 0xc6, 0xb8, 0x49, 0xc1, 0xee,
0x03, 0x44, 0x89, 0x73, 0x40, 0x31, 0xc0, 0x48,
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5e,
0x41, 0x5f, 0xc3,
};
static const Hole _DICT_UPDATE_code_holes[12] = {
{0x18, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0x2e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
{0x4c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x34},
{0x66, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c},
{0x6d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x44},
{0x79, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4c},
{0x84, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x54},
{0x97, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4},
{0xa2, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x5c},
{0xbc, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x34},
{0xc3, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x64},
};
// 0: "'%.200s' object is not a mapping\x00"
// 21: 00 00 00 00 00 00 00
// 28: OPARG
// 30: &PyDict_Update+0x0
// 38: &_Py_Dealloc+0x0
// 40: CONTINUE
// 48: &PyExc_AttributeError+0x0
// 50: &_PyErr_ExceptionMatches+0x0
// 58: &PyExc_TypeError+0x0
// 60: &_PyErr_Format+0x0
// 68: EXECUTOR
static const unsigned char _DICT_UPDATE_data_body[113] = {
0x27, 0x25, 0x2e, 0x32, 0x30, 0x30, 0x73, 0x27,
0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20,
0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61,
0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _DICT_UPDATE_data_holes[10] = {
{0x28, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x30, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyDict_Update, 0x0},
{0x38, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x40, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x48, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_AttributeError, 0x0},
{0x50, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_ExceptionMatches, 0x0},
{0x58, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_TypeError, 0x0},
{0x60, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_Format, 0x0},
{0x68, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _END_SEND
//
// /tmp/tmp2mfmnab2/_END_SEND.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 55 pushq %r13
// 6: 41 54 pushq %r12
// 8: 53 pushq %rbx
// 9: 48 89 d3 movq %rdx, %rbx
// c: 49 89 f4 movq %rsi, %r12
// f: 49 89 ff movq %rdi, %r15
// 12: 4c 8d 76 f8 leaq -0x8(%rsi), %r14
// 16: 48 8b 7e f0 movq -0x10(%rsi), %rdi
// 1a: 4c 8b 6e f8 movq -0x8(%rsi), %r13
// 1e: 48 8b 07 movq (%rdi), %rax
// 21: 85 c0 testl %eax, %eax
// 23: 78 0e js 0x33 <_JIT_ENTRY+0x33>
// 25: 48 ff c8 decq %rax
// 28: 48 89 07 movq %rax, (%rdi)
// 2b: 75 06 jne 0x33 <_JIT_ENTRY+0x33>
// 2d: ff 15 00 00 00 00 callq *(%rip) # 0x33 <_JIT_ENTRY+0x33>
// 000000000000002f: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 33: 4d 89 6c 24 f0 movq %r13, -0x10(%r12)
// 38: 4c 89 ff movq %r15, %rdi
// 3b: 4c 89 f6 movq %r14, %rsi
// 3e: 48 89 da movq %rbx, %rdx
// 41: 5b popq %rbx
// 42: 41 5c popq %r12
// 44: 41 5d popq %r13
// 46: 41 5e popq %r14
// 48: 41 5f popq %r15
// 4a: ff 25 00 00 00 00 jmpq *(%rip) # 0x50 <_JIT_ENTRY+0x50>
// 000000000000004c: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 4a:
static const unsigned char _END_SEND_code_body[75] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54,
0x53, 0x48, 0x89, 0xd3, 0x49, 0x89, 0xf4, 0x49,
0x89, 0xff, 0x4c, 0x8d, 0x76, 0xf8, 0x48, 0x8b,
0x7e, 0xf0, 0x4c, 0x8b, 0x6e, 0xf8, 0x48, 0x8b,
0x07, 0x85, 0xc0, 0x78, 0x0e, 0x48, 0xff, 0xc8,
0x48, 0x89, 0x07, 0x75, 0x06, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x4d, 0x89, 0x6c, 0x24, 0xf0,
0x4c, 0x89, 0xff, 0x4c, 0x89, 0xf6, 0x48, 0x89,
0xda, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e,
0x41, 0x5f,
};
static const Hole _END_SEND_code_holes[2] = {
{0x2f, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
};
// 0:
// 0: &_Py_Dealloc+0x0
static const unsigned char _END_SEND_data_body[9] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _END_SEND_data_holes[2] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
};
// _EXIT_INIT_CHECK
//
// /tmp/tmp2mfmnab2/_EXIT_INIT_CHECK.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 53 pushq %rbx
// 5: 49 89 d7 movq %rdx, %r15
// 8: 48 89 f3 movq %rsi, %rbx
// b: 49 89 fe movq %rdi, %r14
// e: 48 8b 46 f8 movq -0x8(%rsi), %rax
// 12: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x19 <_JIT_ENTRY+0x19>
// 0000000000000015: R_X86_64_REX_GOTPCRELX _Py_NoneStruct-0x4
// 19: 74 46 je 0x61 <_JIT_ENTRY+0x61>
// 1b: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x22 <_JIT_ENTRY+0x22>
// 000000000000001e: R_X86_64_REX_GOTPCRELX PyExc_TypeError-0x4
// 22: 48 8b 39 movq (%rcx), %rdi
// 25: 48 8b 40 08 movq 0x8(%rax), %rax
// 29: 48 8b 50 18 movq 0x18(%rax), %rdx
// 2d: 48 8d 35 00 00 00 00 leaq (%rip), %rsi # 0x34 <_JIT_ENTRY+0x34>
// 0000000000000030: R_X86_64_PC32 .L.str.19-0x4
// 34: 31 c0 xorl %eax, %eax
// 36: ff 15 00 00 00 00 callq *(%rip) # 0x3c <_JIT_ENTRY+0x3c>
// 0000000000000038: R_X86_64_GOTPCRELX PyErr_Format-0x4
// 3c: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x43 <_JIT_ENTRY+0x43>
// 000000000000003f: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 43: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 4a: 4c 29 f3 subq %r14, %rbx
// 4d: 48 83 c3 b8 addq $-0x48, %rbx
// 51: 48 c1 eb 03 shrq $0x3, %rbx
// 55: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 59: 31 c0 xorl %eax, %eax
// 5b: 5b popq %rbx
// 5c: 41 5e popq %r14
// 5e: 41 5f popq %r15
// 60: c3 retq
// 61: 48 83 c3 f8 addq $-0x8, %rbx
// 65: 4c 89 f7 movq %r14, %rdi
// 68: 48 89 de movq %rbx, %rsi
// 6b: 4c 89 fa movq %r15, %rdx
// 6e: 5b popq %rbx
// 6f: 41 5e popq %r14
// 71: 41 5f popq %r15
// 73: ff 25 00 00 00 00 jmpq *(%rip) # 0x79 <_JIT_ENTRY+0x79>
// 0000000000000075: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 73:
static const unsigned char _EXIT_INIT_CHECK_code_body[116] = {
0x41, 0x57, 0x41, 0x56, 0x53, 0x49, 0x89, 0xd7,
0x48, 0x89, 0xf3, 0x49, 0x89, 0xfe, 0x48, 0x8b,
0x46, 0xf8, 0x48, 0x3b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x74, 0x46, 0x48, 0x8b, 0x0d, 0x00, 0x00,
0x00, 0x00, 0x48, 0x8b, 0x39, 0x48, 0x8b, 0x40,
0x08, 0x48, 0x8b, 0x50, 0x18, 0x48, 0x8d, 0x35,
0x00, 0x00, 0x00, 0x00, 0x31, 0xc0, 0xff, 0x15,
0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x05, 0x00,
0x00, 0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01,
0x00, 0x00, 0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3,
0xb8, 0x48, 0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e,
0x40, 0x31, 0xc0, 0x5b, 0x41, 0x5e, 0x41, 0x5f,
0xc3, 0x48, 0x83, 0xc3, 0xf8, 0x4c, 0x89, 0xf7,
0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, 0x5b, 0x41,
0x5e, 0x41, 0x5f,
};
static const Hole _EXIT_INIT_CHECK_code_holes[6] = {
{0x15, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
{0x1e, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x34},
{0x30, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4},
{0x38, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c},
{0x3f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x44},
};
// 0: "__init__() should return None, not '%.200s'\x00"
// 2c: 00 00 00 00
// 30: &_Py_NoneStruct+0x0
// 38: &PyExc_TypeError+0x0
// 40: &PyErr_Format+0x0
// 48: EXECUTOR
static const unsigned char _EXIT_INIT_CHECK_data_body[81] = {
0x5f, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x5f,
0x28, 0x29, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c,
0x64, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e,
0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x2c, 0x20, 0x6e,
0x6f, 0x74, 0x20, 0x27, 0x25, 0x2e, 0x32, 0x30,
0x30, 0x73, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _EXIT_INIT_CHECK_data_holes[5] = {
{0x30, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_NoneStruct, 0x0},
{0x38, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_TypeError, 0x0},
{0x40, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyErr_Format, 0x0},
{0x48, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _EXIT_TRACE
//
// /tmp/tmp2mfmnab2/_EXIT_TRACE.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x6 <_JIT_ENTRY+0x6>
// 0000000000000002: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 6: 48 c1 e1 04 shlq $0x4, %rcx
// a: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x11 <_JIT_ENTRY+0x11>
// 000000000000000d: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 11: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx
// 19: 44 8b 01 movl (%rcx), %r8d
// 1c: 41 ff c0 incl %r8d
// 1f: 74 15 je 0x36 <_JIT_ENTRY+0x36>
// 21: 44 89 01 movl %r8d, (%rcx)
// 24: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x2a <_JIT_ENTRY+0x2a>
// 0000000000000026: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 2a: 48 c1 e1 04 shlq $0x4, %rcx
// 2e: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx
// 36: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 3d: 48 8b 41 70 movq 0x70(%rcx), %rax
// 41: ff e0 jmpq *%rax
// 43:
static const unsigned char _EXIT_TRACE_code_body[68] = {
0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0xc1,
0xe1, 0x04, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x48, 0x8b, 0x8c, 0x08, 0x80, 0x00, 0x00,
0x00, 0x44, 0x8b, 0x01, 0x41, 0xff, 0xc0, 0x74,
0x15, 0x44, 0x89, 0x01, 0x8b, 0x0d, 0x00, 0x00,
0x00, 0x00, 0x48, 0xc1, 0xe1, 0x04, 0x48, 0x8b,
0x8c, 0x08, 0x80, 0x00, 0x00, 0x00, 0x48, 0x89,
0x82, 0x28, 0x01, 0x00, 0x00, 0x48, 0x8b, 0x41,
0x70, 0xff, 0xe0,
};
static const Hole _EXIT_TRACE_code_holes[4] = {
{0x2, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0xd, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x26, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
};
// 0:
// 0: TARGET
// 8: EXECUTOR
static const unsigned char _EXIT_TRACE_data_body[17] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _EXIT_TRACE_data_holes[3] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _FATAL_ERROR
//
// /tmp/tmp2mfmnab2/_FATAL_ERROR.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 50 pushq %rax
// 1: 48 8d 3d 00 00 00 00 leaq (%rip), %rdi # 0x8 <_JIT_ENTRY+0x8>
// 0000000000000004: R_X86_64_PC32 .L__func__._JIT_ENTRY-0x4
// 8: 48 8d 35 00 00 00 00 leaq (%rip), %rsi # 0xf <_JIT_ENTRY+0xf>
// 000000000000000b: R_X86_64_PC32 .L.str.21-0x4
// f: ff 15 00 00 00 00 callq *(%rip) # 0x15 <_JIT_ENTRY+0x15>
// 0000000000000011: R_X86_64_GOTPCRELX _Py_FatalErrorFunc-0x4
// 15:
static const unsigned char _FATAL_ERROR_code_body[22] = {
0x50, 0x48, 0x8d, 0x3d, 0x00, 0x00, 0x00, 0x00,
0x48, 0x8d, 0x35, 0x00, 0x00, 0x00, 0x00, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _FATAL_ERROR_code_holes[4] = {
{0x4, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4},
{0xb, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, 0x7},
{0x11, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
};
// 0: '_JIT_ENTRY\x00Fatal error uop executed.\x00'
// 25: 00 00 00
// 28: &_Py_FatalErrorFunc+0x0
static const unsigned char _FATAL_ERROR_data_body[49] = {
0x5f, 0x4a, 0x49, 0x54, 0x5f, 0x45, 0x4e, 0x54,
0x52, 0x59, 0x00, 0x46, 0x61, 0x74, 0x61, 0x6c,
0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x75,
0x6f, 0x70, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75,
0x74, 0x65, 0x64, 0x2e, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _FATAL_ERROR_data_holes[2] = {
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FatalErrorFunc, 0x0},
};
// _FORMAT_SIMPLE
//
// /tmp/tmp2mfmnab2/_FORMAT_SIMPLE.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 55 pushq %r13
// 6: 41 54 pushq %r12
// 8: 53 pushq %rbx
// 9: 49 89 d7 movq %rdx, %r15
// c: 48 89 f3 movq %rsi, %rbx
// f: 49 89 fe movq %rdi, %r14
// 12: 4c 8b 66 f8 movq -0x8(%rsi), %r12
// 16: 49 8b 44 24 08 movq 0x8(%r12), %rax
// 1b: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x22 <_JIT_ENTRY+0x22>
// 000000000000001e: R_X86_64_REX_GOTPCRELX PyUnicode_Type-0x4
// 22: 74 27 je 0x4b <_JIT_ENTRY+0x4b>
// 24: 4c 89 e7 movq %r12, %rdi
// 27: 31 f6 xorl %esi, %esi
// 29: ff 15 00 00 00 00 callq *(%rip) # 0x2f <_JIT_ENTRY+0x2f>
// 000000000000002b: R_X86_64_GOTPCRELX PyObject_Format-0x4
// 2f: 49 89 c5 movq %rax, %r13
// 32: 49 8b 04 24 movq (%r12), %rax
// 36: 85 c0 testl %eax, %eax
// 38: 78 09 js 0x43 <_JIT_ENTRY+0x43>
// 3a: 48 ff c8 decq %rax
// 3d: 49 89 04 24 movq %rax, (%r12)
// 41: 74 24 je 0x67 <_JIT_ENTRY+0x67>
// 43: 4d 89 ec movq %r13, %r12
// 46: 4d 85 ed testq %r13, %r13
// 49: 74 2d je 0x78 <_JIT_ENTRY+0x78>
// 4b: 4c 89 63 f8 movq %r12, -0x8(%rbx)
// 4f: 4c 89 f7 movq %r14, %rdi
// 52: 48 89 de movq %rbx, %rsi
// 55: 4c 89 fa movq %r15, %rdx
// 58: 5b popq %rbx
// 59: 41 5c popq %r12
// 5b: 41 5d popq %r13
// 5d: 41 5e popq %r14
// 5f: 41 5f popq %r15
// 61: ff 25 00 00 00 00 jmpq *(%rip) # 0x67 <_JIT_ENTRY+0x67>
// 0000000000000063: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 67: 4c 89 e7 movq %r12, %rdi
// 6a: ff 15 00 00 00 00 callq *(%rip) # 0x70 <_JIT_ENTRY+0x70>
// 000000000000006c: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 70: 4d 89 ec movq %r13, %r12
// 73: 4d 85 ed testq %r13, %r13
// 76: 75 d3 jne 0x4b <_JIT_ENTRY+0x4b>
// 78: 48 83 c3 f8 addq $-0x8, %rbx
// 7c: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x83 <_JIT_ENTRY+0x83>
// 000000000000007f: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 83: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 8a: 4c 29 f3 subq %r14, %rbx
// 8d: 48 83 c3 b8 addq $-0x48, %rbx
// 91: 48 c1 eb 03 shrq $0x3, %rbx
// 95: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 99: 31 c0 xorl %eax, %eax
// 9b: 5b popq %rbx
// 9c: 41 5c popq %r12
// 9e: 41 5d popq %r13
// a0: 41 5e popq %r14
// a2: 41 5f popq %r15
// a4: c3 retq
// a5:
static const unsigned char _FORMAT_SIMPLE_code_body[166] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54,
0x53, 0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49,
0x89, 0xfe, 0x4c, 0x8b, 0x66, 0xf8, 0x49, 0x8b,
0x44, 0x24, 0x08, 0x48, 0x3b, 0x05, 0x00, 0x00,
0x00, 0x00, 0x74, 0x27, 0x4c, 0x89, 0xe7, 0x31,
0xf6, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x49,
0x89, 0xc5, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0,
0x78, 0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x04,
0x24, 0x74, 0x24, 0x4d, 0x89, 0xec, 0x4d, 0x85,
0xed, 0x74, 0x2d, 0x4c, 0x89, 0x63, 0xf8, 0x4c,
0x89, 0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa,
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41,
0x5f, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x4c,
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x4d, 0x89, 0xec, 0x4d, 0x85, 0xed, 0x75, 0xd3,
0x48, 0x83, 0xc3, 0xf8, 0x48, 0x8b, 0x05, 0x00,
0x00, 0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01,
0x00, 0x00, 0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3,
0xb8, 0x48, 0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e,
0x40, 0x31, 0xc0, 0x5b, 0x41, 0x5c, 0x41, 0x5d,
0x41, 0x5e, 0x41, 0x5f, 0xc3,
};
static const Hole _FORMAT_SIMPLE_code_holes[6] = {
{0x1e, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x2b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x63, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x6c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x7f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
};
// 0:
// 0: &PyUnicode_Type+0x0
// 8: &PyObject_Format+0x0
// 10: CONTINUE
// 18: &_Py_Dealloc+0x0
// 20: EXECUTOR
static const unsigned char _FORMAT_SIMPLE_data_body[41] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _FORMAT_SIMPLE_data_holes[6] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyUnicode_Type, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_Format, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _FORMAT_WITH_SPEC
//
// /tmp/tmp2mfmnab2/_FORMAT_WITH_SPEC.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d6 movq %rdx, %r14
// e: 49 89 f7 movq %rsi, %r15
// 11: 48 89 fb movq %rdi, %rbx
// 14: 48 8b 6e f0 movq -0x10(%rsi), %rbp
// 18: 4c 8b 6e f8 movq -0x8(%rsi), %r13
// 1c: 48 89 ef movq %rbp, %rdi
// 1f: 4c 89 ee movq %r13, %rsi
// 22: ff 15 00 00 00 00 callq *(%rip) # 0x28 <_JIT_ENTRY+0x28>
// 0000000000000024: R_X86_64_GOTPCRELX PyObject_Format-0x4
// 28: 49 89 c4 movq %rax, %r12
// 2b: 48 8b 45 00 movq (%rbp), %rax
// 2f: 85 c0 testl %eax, %eax
// 31: 78 09 js 0x3c <_JIT_ENTRY+0x3c>
// 33: 48 ff c8 decq %rax
// 36: 48 89 45 00 movq %rax, (%rbp)
// 3a: 74 1c je 0x58 <_JIT_ENTRY+0x58>
// 3c: 49 8b 45 00 movq (%r13), %rax
// 40: 85 c0 testl %eax, %eax
// 42: 78 25 js 0x69 <_JIT_ENTRY+0x69>
// 44: 48 ff c8 decq %rax
// 47: 49 89 45 00 movq %rax, (%r13)
// 4b: 75 1c jne 0x69 <_JIT_ENTRY+0x69>
// 4d: 4c 89 ef movq %r13, %rdi
// 50: ff 15 00 00 00 00 callq *(%rip) # 0x56 <_JIT_ENTRY+0x56>
// 0000000000000052: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 56: eb 11 jmp 0x69 <_JIT_ENTRY+0x69>
// 58: 48 89 ef movq %rbp, %rdi
// 5b: ff 15 00 00 00 00 callq *(%rip) # 0x61 <_JIT_ENTRY+0x61>
// 000000000000005d: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 61: 49 8b 45 00 movq (%r13), %rax
// 65: 85 c0 testl %eax, %eax
// 67: 79 db jns 0x44 <_JIT_ENTRY+0x44>
// 69: 49 8d 47 f0 leaq -0x10(%r15), %rax
// 6d: 4d 85 e4 testq %r12, %r12
// 70: 74 24 je 0x96 <_JIT_ENTRY+0x96>
// 72: 49 83 c7 f8 addq $-0x8, %r15
// 76: 4c 89 20 movq %r12, (%rax)
// 79: 48 89 df movq %rbx, %rdi
// 7c: 4c 89 fe movq %r15, %rsi
// 7f: 4c 89 f2 movq %r14, %rdx
// 82: 48 83 c4 08 addq $0x8, %rsp
// 86: 5b popq %rbx
// 87: 41 5c popq %r12
// 89: 41 5d popq %r13
// 8b: 41 5e popq %r14
// 8d: 41 5f popq %r15
// 8f: 5d popq %rbp
// 90: ff 25 00 00 00 00 jmpq *(%rip) # 0x96 <_JIT_ENTRY+0x96>
// 0000000000000092: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 96: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x9d <_JIT_ENTRY+0x9d>
// 0000000000000099: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 9d: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14)
// a4: 48 29 d8 subq %rbx, %rax
// a7: 48 83 c0 b8 addq $-0x48, %rax
// ab: 48 c1 e8 03 shrq $0x3, %rax
// af: 89 43 40 movl %eax, 0x40(%rbx)
// b2: 31 c0 xorl %eax, %eax
// b4: 48 83 c4 08 addq $0x8, %rsp
// b8: 5b popq %rbx
// b9: 41 5c popq %r12
// bb: 41 5d popq %r13
// bd: 41 5e popq %r14
// bf: 41 5f popq %r15
// c1: 5d popq %rbp
// c2: c3 retq
// c3:
static const unsigned char _FORMAT_WITH_SPEC_code_body[196] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89,
0xf7, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x6e, 0xf0,
0x4c, 0x8b, 0x6e, 0xf8, 0x48, 0x89, 0xef, 0x4c,
0x89, 0xee, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x49, 0x89, 0xc4, 0x48, 0x8b, 0x45, 0x00, 0x85,
0xc0, 0x78, 0x09, 0x48, 0xff, 0xc8, 0x48, 0x89,
0x45, 0x00, 0x74, 0x1c, 0x49, 0x8b, 0x45, 0x00,
0x85, 0xc0, 0x78, 0x25, 0x48, 0xff, 0xc8, 0x49,
0x89, 0x45, 0x00, 0x75, 0x1c, 0x4c, 0x89, 0xef,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x11,
0x48, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0, 0x79,
0xdb, 0x49, 0x8d, 0x47, 0xf0, 0x4d, 0x85, 0xe4,
0x74, 0x24, 0x49, 0x83, 0xc7, 0xf8, 0x4c, 0x89,
0x20, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c,
0x89, 0xf2, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41,
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d,
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b,
0x0d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x8e,
0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xd8, 0x48,
0x83, 0xc0, 0xb8, 0x48, 0xc1, 0xe8, 0x03, 0x89,
0x43, 0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4, 0x08,
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41,
0x5f, 0x5d, 0xc3,
};
static const Hole _FORMAT_WITH_SPEC_code_holes[6] = {
{0x24, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x52, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x5d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x92, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x99, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
};
// 0:
// 0: &PyObject_Format+0x0
// 8: &_Py_Dealloc+0x0
// 10: CONTINUE
// 18: EXECUTOR
static const unsigned char _FORMAT_WITH_SPEC_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _FORMAT_WITH_SPEC_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_Format, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _FOR_ITER_TIER_TWO
//
// /tmp/tmp2mfmnab2/_FOR_ITER_TIER_TWO.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 54 pushq %r12
// 6: 53 pushq %rbx
// 7: 50 pushq %rax
// 8: 49 89 d7 movq %rdx, %r15
// b: 48 89 f3 movq %rsi, %rbx
// e: 49 89 fe movq %rdi, %r14
// 11: 4c 8b 66 f8 movq -0x8(%rsi), %r12
// 15: 49 8b 44 24 08 movq 0x8(%r12), %rax
// 1a: 4c 89 e7 movq %r12, %rdi
// 1d: ff 90 e0 00 00 00 callq *0xe0(%rax)
// 23: 48 85 c0 testq %rax, %rax
// 26: 74 21 je 0x49 <_JIT_ENTRY+0x49>
// 28: 48 89 03 movq %rax, (%rbx)
// 2b: 48 83 c3 08 addq $0x8, %rbx
// 2f: 4c 89 f7 movq %r14, %rdi
// 32: 48 89 de movq %rbx, %rsi
// 35: 4c 89 fa movq %r15, %rdx
// 38: 48 83 c4 08 addq $0x8, %rsp
// 3c: 5b popq %rbx
// 3d: 41 5c popq %r12
// 3f: 41 5e popq %r14
// 41: 41 5f popq %r15
// 43: ff 25 00 00 00 00 jmpq *(%rip) # 0x49 <_JIT_ENTRY+0x49>
// 0000000000000045: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 49: 49 8b 47 70 movq 0x70(%r15), %rax
// 4d: 48 85 c0 testq %rax, %rax
// 50: 74 27 je 0x79 <_JIT_ENTRY+0x79>
// 52: 48 83 78 08 00 cmpq $0x0, 0x8(%rax)
// 57: 74 20 je 0x79 <_JIT_ENTRY+0x79>
// 59: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x60 <_JIT_ENTRY+0x60>
// 000000000000005c: R_X86_64_REX_GOTPCRELX PyExc_StopIteration-0x4
// 60: 48 8b 30 movq (%rax), %rsi
// 63: 4c 89 ff movq %r15, %rdi
// 66: ff 15 00 00 00 00 callq *(%rip) # 0x6c <_JIT_ENTRY+0x6c>
// 0000000000000068: R_X86_64_GOTPCRELX _PyErr_ExceptionMatches-0x4
// 6c: 85 c0 testl %eax, %eax
// 6e: 74 63 je 0xd3 <_JIT_ENTRY+0xd3>
// 70: 4c 89 ff movq %r15, %rdi
// 73: ff 15 00 00 00 00 callq *(%rip) # 0x79 <_JIT_ENTRY+0x79>
// 0000000000000075: R_X86_64_GOTPCRELX _PyErr_Clear-0x4
// 79: 48 83 c3 f8 addq $-0x8, %rbx
// 7d: 49 8b 04 24 movq (%r12), %rax
// 81: 85 c0 testl %eax, %eax
// 83: 78 12 js 0x97 <_JIT_ENTRY+0x97>
// 85: 48 ff c8 decq %rax
// 88: 49 89 04 24 movq %rax, (%r12)
// 8c: 75 09 jne 0x97 <_JIT_ENTRY+0x97>
// 8e: 4c 89 e7 movq %r12, %rdi
// 91: ff 15 00 00 00 00 callq *(%rip) # 0x97 <_JIT_ENTRY+0x97>
// 0000000000000093: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 97: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x9e <_JIT_ENTRY+0x9e>
// 000000000000009a: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 9e: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// a5: 4c 29 f3 subq %r14, %rbx
// a8: 48 83 c3 b8 addq $-0x48, %rbx
// ac: 48 c1 eb 03 shrq $0x3, %rbx
// b0: 41 89 5e 40 movl %ebx, 0x40(%r14)
// b4: 49 8b 06 movq (%r14), %rax
// b7: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0xbd <_JIT_ENTRY+0xbd>
// 00000000000000b9: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// bd: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// c1: 48 05 c8 00 00 00 addq $0xc8, %rax
// c7: 48 83 c4 08 addq $0x8, %rsp
// cb: 5b popq %rbx
// cc: 41 5c popq %r12
// ce: 41 5e popq %r14
// d0: 41 5f popq %r15
// d2: c3 retq
// d3: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xda <_JIT_ENTRY+0xda>
// 00000000000000d6: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// da: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// e1: 4c 29 f3 subq %r14, %rbx
// e4: 48 83 c3 b8 addq $-0x48, %rbx
// e8: 48 c1 eb 03 shrq $0x3, %rbx
// ec: 41 89 5e 40 movl %ebx, 0x40(%r14)
// f0: 31 c0 xorl %eax, %eax
// f2: eb d3 jmp 0xc7 <_JIT_ENTRY+0xc7>
// f4:
static const unsigned char _FOR_ITER_TIER_TWO_code_body[245] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x54, 0x53, 0x50,
0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49, 0x89,
0xfe, 0x4c, 0x8b, 0x66, 0xf8, 0x49, 0x8b, 0x44,
0x24, 0x08, 0x4c, 0x89, 0xe7, 0xff, 0x90, 0xe0,
0x00, 0x00, 0x00, 0x48, 0x85, 0xc0, 0x74, 0x21,
0x48, 0x89, 0x03, 0x48, 0x83, 0xc3, 0x08, 0x4c,
0x89, 0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa,
0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41,
0x5e, 0x41, 0x5f, 0xff, 0x25, 0x00, 0x00, 0x00,
0x00, 0x49, 0x8b, 0x47, 0x70, 0x48, 0x85, 0xc0,
0x74, 0x27, 0x48, 0x83, 0x78, 0x08, 0x00, 0x74,
0x20, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x48, 0x8b, 0x30, 0x4c, 0x89, 0xff, 0xff, 0x15,
0x00, 0x00, 0x00, 0x00, 0x85, 0xc0, 0x74, 0x63,
0x4c, 0x89, 0xff, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0x48, 0x83, 0xc3, 0xf8, 0x49, 0x8b, 0x04,
0x24, 0x85, 0xc0, 0x78, 0x12, 0x48, 0xff, 0xc8,
0x49, 0x89, 0x04, 0x24, 0x75, 0x09, 0x4c, 0x89,
0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48,
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89,
0x87, 0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, 0xf3,
0x48, 0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb, 0x03,
0x41, 0x89, 0x5e, 0x40, 0x49, 0x8b, 0x06, 0x8b,
0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04,
0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0x48,
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5e,
0x41, 0x5f, 0xc3, 0x48, 0x8b, 0x05, 0x00, 0x00,
0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00,
0x00, 0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8,
0x48, 0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40,
0x31, 0xc0, 0xeb, 0xd3,
};
static const Hole _FOR_ITER_TIER_TWO_code_holes[9] = {
{0x45, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x5c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x68, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x75, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x93, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0x9a, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0xb9, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
{0xd6, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
};
// 0:
// 0: CONTINUE
// 8: &PyExc_StopIteration+0x0
// 10: &_PyErr_ExceptionMatches+0x0
// 18: &_PyErr_Clear+0x0
// 20: &_Py_Dealloc+0x0
// 28: EXECUTOR
// 30: TARGET
static const unsigned char _FOR_ITER_TIER_TWO_data_body[57] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _FOR_ITER_TIER_TWO_data_holes[8] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_StopIteration, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_ExceptionMatches, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_Clear, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x30, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _GET_AITER
//
// /tmp/tmp2mfmnab2/_GET_AITER.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 55 pushq %r13
// 6: 41 54 pushq %r12
// 8: 53 pushq %rbx
// 9: 49 89 d7 movq %rdx, %r15
// c: 48 89 f3 movq %rsi, %rbx
// f: 49 89 fe movq %rdi, %r14
// 12: 4c 8b 66 f8 movq -0x8(%rsi), %r12
// 16: 49 8b 44 24 08 movq 0x8(%r12), %rax
// 1b: 48 8b 48 50 movq 0x50(%rax), %rcx
// 1f: 48 85 c9 testq %rcx, %rcx
// 22: 74 5f je 0x83 <_JIT_ENTRY+0x83>
// 24: 48 8b 49 08 movq 0x8(%rcx), %rcx
// 28: 48 85 c9 testq %rcx, %rcx
// 2b: 74 56 je 0x83 <_JIT_ENTRY+0x83>
// 2d: 4c 89 e7 movq %r12, %rdi
// 30: ff d1 callq *%rcx
// 32: 49 89 c5 movq %rax, %r13
// 35: 49 8b 04 24 movq (%r12), %rax
// 39: 85 c0 testl %eax, %eax
// 3b: 78 0d js 0x4a <_JIT_ENTRY+0x4a>
// 3d: 48 ff c8 decq %rax
// 40: 49 89 04 24 movq %rax, (%r12)
// 44: 0f 84 d6 00 00 00 je 0x120 <_JIT_ENTRY+0x120>
// 4a: 4d 85 ed testq %r13, %r13
// 4d: 0f 84 a0 00 00 00 je 0xf3 <_JIT_ENTRY+0xf3>
// 53: 49 8b 45 08 movq 0x8(%r13), %rax
// 57: 48 8b 48 50 movq 0x50(%rax), %rcx
// 5b: 48 85 c9 testq %rcx, %rcx
// 5e: 74 56 je 0xb6 <_JIT_ENTRY+0xb6>
// 60: 48 83 79 10 00 cmpq $0x0, 0x10(%rcx)
// 65: 74 4f je 0xb6 <_JIT_ENTRY+0xb6>
// 67: 4c 89 6b f8 movq %r13, -0x8(%rbx)
// 6b: 4c 89 f7 movq %r14, %rdi
// 6e: 48 89 de movq %rbx, %rsi
// 71: 4c 89 fa movq %r15, %rdx
// 74: 5b popq %rbx
// 75: 41 5c popq %r12
// 77: 41 5d popq %r13
// 79: 41 5e popq %r14
// 7b: 41 5f popq %r15
// 7d: ff 25 00 00 00 00 jmpq *(%rip) # 0x83 <_JIT_ENTRY+0x83>
// 000000000000007f: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 83: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x8a <_JIT_ENTRY+0x8a>
// 0000000000000086: R_X86_64_REX_GOTPCRELX PyExc_TypeError-0x4
// 8a: 48 8b 31 movq (%rcx), %rsi
// 8d: 48 8b 48 18 movq 0x18(%rax), %rcx
// 91: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0x98 <_JIT_ENTRY+0x98>
// 0000000000000094: R_X86_64_PC32 .L.str-0x4
// 98: 4c 89 ff movq %r15, %rdi
// 9b: 31 c0 xorl %eax, %eax
// 9d: ff 15 00 00 00 00 callq *(%rip) # 0xa3 <_JIT_ENTRY+0xa3>
// 000000000000009f: R_X86_64_GOTPCRELX _PyErr_Format-0x4
// a3: 49 8b 04 24 movq (%r12), %rax
// a7: 85 c0 testl %eax, %eax
// a9: 78 48 js 0xf3 <_JIT_ENTRY+0xf3>
// ab: 48 ff c8 decq %rax
// ae: 49 89 04 24 movq %rax, (%r12)
// b2: 75 3f jne 0xf3 <_JIT_ENTRY+0xf3>
// b4: eb 34 jmp 0xea <_JIT_ENTRY+0xea>
// b6: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xbd <_JIT_ENTRY+0xbd>
// 00000000000000b9: R_X86_64_REX_GOTPCRELX PyExc_TypeError-0x4
// bd: 48 8b 31 movq (%rcx), %rsi
// c0: 48 8b 48 18 movq 0x18(%rax), %rcx
// c4: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0xcb <_JIT_ENTRY+0xcb>
// 00000000000000c7: R_X86_64_PC32 .L.str.1-0x4
// cb: 4c 89 ff movq %r15, %rdi
// ce: 31 c0 xorl %eax, %eax
// d0: ff 15 00 00 00 00 callq *(%rip) # 0xd6 <_JIT_ENTRY+0xd6>
// 00000000000000d2: R_X86_64_GOTPCRELX _PyErr_Format-0x4
// d6: 49 8b 45 00 movq (%r13), %rax
// da: 85 c0 testl %eax, %eax
// dc: 78 15 js 0xf3 <_JIT_ENTRY+0xf3>
// de: 4d 89 ec movq %r13, %r12
// e1: 48 ff c8 decq %rax
// e4: 49 89 45 00 movq %rax, (%r13)
// e8: 75 09 jne 0xf3 <_JIT_ENTRY+0xf3>
// ea: 4c 89 e7 movq %r12, %rdi
// ed: ff 15 00 00 00 00 callq *(%rip) # 0xf3 <_JIT_ENTRY+0xf3>
// 00000000000000ef: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// f3: 48 83 c3 f8 addq $-0x8, %rbx
// f7: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xfe <_JIT_ENTRY+0xfe>
// 00000000000000fa: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// fe: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 105: 4c 29 f3 subq %r14, %rbx
// 108: 48 83 c3 b8 addq $-0x48, %rbx
// 10c: 48 c1 eb 03 shrq $0x3, %rbx
// 110: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 114: 31 c0 xorl %eax, %eax
// 116: 5b popq %rbx
// 117: 41 5c popq %r12
// 119: 41 5d popq %r13
// 11b: 41 5e popq %r14
// 11d: 41 5f popq %r15
// 11f: c3 retq
// 120: 4c 89 e7 movq %r12, %rdi
// 123: ff 15 00 00 00 00 callq *(%rip) # 0x129 <_JIT_ENTRY+0x129>
// 0000000000000125: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 129: 4d 85 ed testq %r13, %r13
// 12c: 0f 85 21 ff ff ff jne 0x53 <_JIT_ENTRY+0x53>
// 132: eb bf jmp 0xf3 <_JIT_ENTRY+0xf3>
// 134:
static const unsigned char _GET_AITER_code_body[309] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54,
0x53, 0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49,
0x89, 0xfe, 0x4c, 0x8b, 0x66, 0xf8, 0x49, 0x8b,
0x44, 0x24, 0x08, 0x48, 0x8b, 0x48, 0x50, 0x48,
0x85, 0xc9, 0x74, 0x5f, 0x48, 0x8b, 0x49, 0x08,
0x48, 0x85, 0xc9, 0x74, 0x56, 0x4c, 0x89, 0xe7,
0xff, 0xd1, 0x49, 0x89, 0xc5, 0x49, 0x8b, 0x04,
0x24, 0x85, 0xc0, 0x78, 0x0d, 0x48, 0xff, 0xc8,
0x49, 0x89, 0x04, 0x24, 0x0f, 0x84, 0xd6, 0x00,
0x00, 0x00, 0x4d, 0x85, 0xed, 0x0f, 0x84, 0xa0,
0x00, 0x00, 0x00, 0x49, 0x8b, 0x45, 0x08, 0x48,
0x8b, 0x48, 0x50, 0x48, 0x85, 0xc9, 0x74, 0x56,
0x48, 0x83, 0x79, 0x10, 0x00, 0x74, 0x4f, 0x4c,
0x89, 0x6b, 0xf8, 0x4c, 0x89, 0xf7, 0x48, 0x89,
0xde, 0x4c, 0x89, 0xfa, 0x5b, 0x41, 0x5c, 0x41,
0x5d, 0x41, 0x5e, 0x41, 0x5f, 0xff, 0x25, 0x00,
0x00, 0x00, 0x00, 0x48, 0x8b, 0x0d, 0x00, 0x00,
0x00, 0x00, 0x48, 0x8b, 0x31, 0x48, 0x8b, 0x48,
0x18, 0x48, 0x8d, 0x15, 0x00, 0x00, 0x00, 0x00,
0x4c, 0x89, 0xff, 0x31, 0xc0, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x49, 0x8b, 0x04, 0x24, 0x85,
0xc0, 0x78, 0x48, 0x48, 0xff, 0xc8, 0x49, 0x89,
0x04, 0x24, 0x75, 0x3f, 0xeb, 0x34, 0x48, 0x8b,
0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x31,
0x48, 0x8b, 0x48, 0x18, 0x48, 0x8d, 0x15, 0x00,
0x00, 0x00, 0x00, 0x4c, 0x89, 0xff, 0x31, 0xc0,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x49, 0x8b,
0x45, 0x00, 0x85, 0xc0, 0x78, 0x15, 0x4d, 0x89,
0xec, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x45, 0x00,
0x75, 0x09, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x48, 0x83, 0xc3, 0xf8, 0x48,
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89,
0x87, 0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, 0xf3,
0x48, 0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb, 0x03,
0x41, 0x89, 0x5e, 0x40, 0x31, 0xc0, 0x5b, 0x41,
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0xc3,
0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0x4d, 0x85, 0xed, 0x0f, 0x85, 0x21, 0xff,
0xff, 0xff, 0xeb, 0xbf,
};
static const Hole _GET_AITER_code_holes[11] = {
{0x7f, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x9c},
{0x86, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xa4},
{0x94, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4},
{0x9f, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xac},
{0xb9, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xa4},
{0xc7, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, 0x3d},
{0xd2, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xac},
{0xef, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xb4},
{0xfa, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xbc},
{0x125, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xb4},
};
// 0: "'async for' requires an object with __aiter__ method, got %.100s\x00'async for' received an object from __aiter__ that does not implement __anext__: %.100s\x00"
// 99: 00 00 00 00 00 00 00
// a0: CONTINUE
// a8: &PyExc_TypeError+0x0
// b0: &_PyErr_Format+0x0
// b8: &_Py_Dealloc+0x0
// c0: EXECUTOR
static const unsigned char _GET_AITER_data_body[201] = {
0x27, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x20, 0x66,
0x6f, 0x72, 0x27, 0x20, 0x72, 0x65, 0x71, 0x75,
0x69, 0x72, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20,
0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x77,
0x69, 0x74, 0x68, 0x20, 0x5f, 0x5f, 0x61, 0x69,
0x74, 0x65, 0x72, 0x5f, 0x5f, 0x20, 0x6d, 0x65,
0x74, 0x68, 0x6f, 0x64, 0x2c, 0x20, 0x67, 0x6f,
0x74, 0x20, 0x25, 0x2e, 0x31, 0x30, 0x30, 0x73,
0x00, 0x27, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x20,
0x66, 0x6f, 0x72, 0x27, 0x20, 0x72, 0x65, 0x63,
0x65, 0x69, 0x76, 0x65, 0x64, 0x20, 0x61, 0x6e,
0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20,
0x66, 0x72, 0x6f, 0x6d, 0x20, 0x5f, 0x5f, 0x61,
0x69, 0x74, 0x65, 0x72, 0x5f, 0x5f, 0x20, 0x74,
0x68, 0x61, 0x74, 0x20, 0x64, 0x6f, 0x65, 0x73,
0x20, 0x6e, 0x6f, 0x74, 0x20, 0x69, 0x6d, 0x70,
0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x5f,
0x5f, 0x61, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x5f,
0x3a, 0x20, 0x25, 0x2e, 0x31, 0x30, 0x30, 0x73,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _GET_AITER_data_holes[6] = {
{0xa0, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0xa8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_TypeError, 0x0},
{0xb0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_Format, 0x0},
{0xb8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0xc0, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _GET_ANEXT
//
// /tmp/tmp2mfmnab2/_GET_ANEXT.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 55 pushq %r13
// 6: 41 54 pushq %r12
// 8: 53 pushq %rbx
// 9: 49 89 d7 movq %rdx, %r15
// c: 48 89 f3 movq %rsi, %rbx
// f: 49 89 fe movq %rdi, %r14
// 12: 48 8b 7e f8 movq -0x8(%rsi), %rdi
// 16: 48 8b 47 08 movq 0x8(%rdi), %rax
// 1a: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x21 <_JIT_ENTRY+0x21>
// 000000000000001d: R_X86_64_REX_GOTPCRELX PyAsyncGen_Type-0x4
// 21: 74 6f je 0x92 <_JIT_ENTRY+0x92>
// 23: 48 8b 48 50 movq 0x50(%rax), %rcx
// 27: 48 85 c9 testq %rcx, %rcx
// 2a: 74 44 je 0x70 <_JIT_ENTRY+0x70>
// 2c: 48 8b 49 10 movq 0x10(%rcx), %rcx
// 30: 48 85 c9 testq %rcx, %rcx
// 33: 74 3b je 0x70 <_JIT_ENTRY+0x70>
// 35: ff d1 callq *%rcx
// 37: 48 85 c0 testq %rax, %rax
// 3a: 0f 84 c3 00 00 00 je 0x103 <_JIT_ENTRY+0x103>
// 40: 49 89 c4 movq %rax, %r12
// 43: 48 89 c7 movq %rax, %rdi
// 46: ff 15 00 00 00 00 callq *(%rip) # 0x4c <_JIT_ENTRY+0x4c>
// 0000000000000048: R_X86_64_GOTPCRELX _PyCoro_GetAwaitableIter-0x4
// 4c: 48 85 c0 testq %rax, %rax
// 4f: 74 76 je 0xc7 <_JIT_ENTRY+0xc7>
// 51: 49 89 c5 movq %rax, %r13
// 54: 49 8b 04 24 movq (%r12), %rax
// 58: 85 c0 testl %eax, %eax
// 5a: 78 4c js 0xa8 <_JIT_ENTRY+0xa8>
// 5c: 48 ff c8 decq %rax
// 5f: 49 89 04 24 movq %rax, (%r12)
// 63: 75 43 jne 0xa8 <_JIT_ENTRY+0xa8>
// 65: 4c 89 e7 movq %r12, %rdi
// 68: ff 15 00 00 00 00 callq *(%rip) # 0x6e <_JIT_ENTRY+0x6e>
// 000000000000006a: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 6e: eb 38 jmp 0xa8 <_JIT_ENTRY+0xa8>
// 70: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x77 <_JIT_ENTRY+0x77>
// 0000000000000073: R_X86_64_REX_GOTPCRELX PyExc_TypeError-0x4
// 77: 48 8b 31 movq (%rcx), %rsi
// 7a: 48 8b 48 18 movq 0x18(%rax), %rcx
// 7e: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0x85 <_JIT_ENTRY+0x85>
// 0000000000000081: R_X86_64_PC32 .L.str.2-0x4
// 85: 4c 89 ff movq %r15, %rdi
// 88: 31 c0 xorl %eax, %eax
// 8a: ff 15 00 00 00 00 callq *(%rip) # 0x90 <_JIT_ENTRY+0x90>
// 000000000000008c: R_X86_64_GOTPCRELX _PyErr_Format-0x4
// 90: eb 71 jmp 0x103 <_JIT_ENTRY+0x103>
// 92: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x99 <_JIT_ENTRY+0x99>
// 0000000000000095: R_X86_64_REX_GOTPCRELX PyAsyncGen_Type-0x4
// 99: 48 8b 40 50 movq 0x50(%rax), %rax
// 9d: ff 50 10 callq *0x10(%rax)
// a0: 49 89 c5 movq %rax, %r13
// a3: 48 85 c0 testq %rax, %rax
// a6: 74 5b je 0x103 <_JIT_ENTRY+0x103>
// a8: 4c 89 2b movq %r13, (%rbx)
// ab: 48 83 c3 08 addq $0x8, %rbx
// af: 4c 89 f7 movq %r14, %rdi
// b2: 48 89 de movq %rbx, %rsi
// b5: 4c 89 fa movq %r15, %rdx
// b8: 5b popq %rbx
// b9: 41 5c popq %r12
// bb: 41 5d popq %r13
// bd: 41 5e popq %r14
// bf: 41 5f popq %r15
// c1: ff 25 00 00 00 00 jmpq *(%rip) # 0xc7 <_JIT_ENTRY+0xc7>
// 00000000000000c3: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// c7: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xce <_JIT_ENTRY+0xce>
// 00000000000000ca: R_X86_64_REX_GOTPCRELX PyExc_TypeError-0x4
// ce: 48 8b 38 movq (%rax), %rdi
// d1: 49 8b 44 24 08 movq 0x8(%r12), %rax
// d6: 48 8b 50 18 movq 0x18(%rax), %rdx
// da: 48 8d 35 00 00 00 00 leaq (%rip), %rsi # 0xe1 <_JIT_ENTRY+0xe1>
// 00000000000000dd: R_X86_64_PC32 .L.str.3-0x4
// e1: 31 c0 xorl %eax, %eax
// e3: ff 15 00 00 00 00 callq *(%rip) # 0xe9 <_JIT_ENTRY+0xe9>
// 00000000000000e5: R_X86_64_GOTPCRELX _PyErr_FormatFromCause-0x4
// e9: 49 8b 04 24 movq (%r12), %rax
// ed: 85 c0 testl %eax, %eax
// ef: 78 12 js 0x103 <_JIT_ENTRY+0x103>
// f1: 48 ff c8 decq %rax
// f4: 49 89 04 24 movq %rax, (%r12)
// f8: 75 09 jne 0x103 <_JIT_ENTRY+0x103>
// fa: 4c 89 e7 movq %r12, %rdi
// fd: ff 15 00 00 00 00 callq *(%rip) # 0x103 <_JIT_ENTRY+0x103>
// 00000000000000ff: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 103: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x10a <_JIT_ENTRY+0x10a>
// 0000000000000106: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 10a: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 111: 4c 29 f3 subq %r14, %rbx
// 114: 48 83 c3 b8 addq $-0x48, %rbx
// 118: 48 c1 eb 03 shrq $0x3, %rbx
// 11c: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 120: 31 c0 xorl %eax, %eax
// 122: 5b popq %rbx
// 123: 41 5c popq %r12
// 125: 41 5d popq %r13
// 127: 41 5e popq %r14
// 129: 41 5f popq %r15
// 12b: c3 retq
// 12c:
static const unsigned char _GET_ANEXT_code_body[301] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54,
0x53, 0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49,
0x89, 0xfe, 0x48, 0x8b, 0x7e, 0xf8, 0x48, 0x8b,
0x47, 0x08, 0x48, 0x3b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x74, 0x6f, 0x48, 0x8b, 0x48, 0x50, 0x48,
0x85, 0xc9, 0x74, 0x44, 0x48, 0x8b, 0x49, 0x10,
0x48, 0x85, 0xc9, 0x74, 0x3b, 0xff, 0xd1, 0x48,
0x85, 0xc0, 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00,
0x49, 0x89, 0xc4, 0x48, 0x89, 0xc7, 0xff, 0x15,
0x00, 0x00, 0x00, 0x00, 0x48, 0x85, 0xc0, 0x74,
0x76, 0x49, 0x89, 0xc5, 0x49, 0x8b, 0x04, 0x24,
0x85, 0xc0, 0x78, 0x4c, 0x48, 0xff, 0xc8, 0x49,
0x89, 0x04, 0x24, 0x75, 0x43, 0x4c, 0x89, 0xe7,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x38,
0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48,
0x8b, 0x31, 0x48, 0x8b, 0x48, 0x18, 0x48, 0x8d,
0x15, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xff,
0x31, 0xc0, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0xeb, 0x71, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x48, 0x8b, 0x40, 0x50, 0xff, 0x50, 0x10,
0x49, 0x89, 0xc5, 0x48, 0x85, 0xc0, 0x74, 0x5b,
0x4c, 0x89, 0x2b, 0x48, 0x83, 0xc3, 0x08, 0x4c,
0x89, 0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa,
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41,
0x5f, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48,
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b,
0x38, 0x49, 0x8b, 0x44, 0x24, 0x08, 0x48, 0x8b,
0x50, 0x18, 0x48, 0x8d, 0x35, 0x00, 0x00, 0x00,
0x00, 0x31, 0xc0, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78,
0x12, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24,
0x75, 0x09, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00,
0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00,
0x00, 0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8,
0x48, 0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40,
0x31, 0xc0, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41,
0x5e, 0x41, 0x5f, 0xc3,
};
static const Hole _GET_ANEXT_code_holes[14] = {
{0x1d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x84},
{0x48, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x8c},
{0x6a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x94},
{0x73, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x9c},
{0x81, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4},
{0x8c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xa4},
{0x95, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x84},
{0xc3, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xac},
{0xca, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x9c},
{0xdd, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, 0x3f},
{0xe5, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xb4},
{0xff, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x94},
{0x106, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xbc},
};
// 0: "'async for' requires an iterator with __anext__ method, got %.100s\x00'async for' received an invalid object from __anext__: %.100s\x00"
// 81: 00 00 00 00 00 00 00
// 88: &PyAsyncGen_Type+0x0
// 90: &_PyCoro_GetAwaitableIter+0x0
// 98: &_Py_Dealloc+0x0
// a0: &PyExc_TypeError+0x0
// a8: &_PyErr_Format+0x0
// b0: CONTINUE
// b8: &_PyErr_FormatFromCause+0x0
// c0: EXECUTOR
static const unsigned char _GET_ANEXT_data_body[201] = {
0x27, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x20, 0x66,
0x6f, 0x72, 0x27, 0x20, 0x72, 0x65, 0x71, 0x75,
0x69, 0x72, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20,
0x69, 0x74, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72,
0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x5f, 0x5f,
0x61, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x5f, 0x20,
0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x2c, 0x20,
0x67, 0x6f, 0x74, 0x20, 0x25, 0x2e, 0x31, 0x30,
0x30, 0x73, 0x00, 0x27, 0x61, 0x73, 0x79, 0x6e,
0x63, 0x20, 0x66, 0x6f, 0x72, 0x27, 0x20, 0x72,
0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x20,
0x61, 0x6e, 0x20, 0x69, 0x6e, 0x76, 0x61, 0x6c,
0x69, 0x64, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63,
0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x5f,
0x5f, 0x61, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x5f,
0x3a, 0x20, 0x25, 0x2e, 0x31, 0x30, 0x30, 0x73,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _GET_ANEXT_data_holes[9] = {
{0x88, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyAsyncGen_Type, 0x0},
{0x90, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyCoro_GetAwaitableIter, 0x0},
{0x98, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0xa0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_TypeError, 0x0},
{0xa8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_Format, 0x0},
{0xb0, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0xb8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_FormatFromCause, 0x0},
{0xc0, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _GET_AWAITABLE
//
// /tmp/tmp2mfmnab2/_GET_AWAITABLE.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 55 pushq %r13
// 6: 41 54 pushq %r12
// 8: 53 pushq %rbx
// 9: 49 89 d7 movq %rdx, %r15
// c: 48 89 f3 movq %rsi, %rbx
// f: 49 89 fe movq %rdi, %r14
// 12: 4c 8b 6e f8 movq -0x8(%rsi), %r13
// 16: 4c 89 ef movq %r13, %rdi
// 19: ff 15 00 00 00 00 callq *(%rip) # 0x1f <_JIT_ENTRY+0x1f>
// 000000000000001b: R_X86_64_GOTPCRELX _PyCoro_GetAwaitableIter-0x4
// 1f: 49 89 c4 movq %rax, %r12
// 22: 48 85 c0 testq %rax, %rax
// 25: 74 0a je 0x31 <_JIT_ENTRY+0x31>
// 27: 49 8b 45 00 movq (%r13), %rax
// 2b: 85 c0 testl %eax, %eax
// 2d: 79 1e jns 0x4d <_JIT_ENTRY+0x4d>
// 2f: eb 29 jmp 0x5a <_JIT_ENTRY+0x5a>
// 31: 49 8b 75 08 movq 0x8(%r13), %rsi
// 35: 0f b7 15 00 00 00 00 movzwl (%rip), %edx # 0x3c <_JIT_ENTRY+0x3c>
// 0000000000000038: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 3c: 4c 89 ff movq %r15, %rdi
// 3f: ff 15 00 00 00 00 callq *(%rip) # 0x45 <_JIT_ENTRY+0x45>
// 0000000000000041: R_X86_64_GOTPCRELX _PyEval_FormatAwaitableError-0x4
// 45: 49 8b 45 00 movq (%r13), %rax
// 49: 85 c0 testl %eax, %eax
// 4b: 78 0d js 0x5a <_JIT_ENTRY+0x5a>
// 4d: 48 ff c8 decq %rax
// 50: 49 89 45 00 movq %rax, (%r13)
// 54: 0f 84 8f 00 00 00 je 0xe9 <_JIT_ENTRY+0xe9>
// 5a: 4d 85 e4 testq %r12, %r12
// 5d: 0f 84 98 00 00 00 je 0xfb <_JIT_ENTRY+0xfb>
// 63: 49 8b 44 24 08 movq 0x8(%r12), %rax
// 68: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x6f <_JIT_ENTRY+0x6f>
// 000000000000006b: R_X86_64_REX_GOTPCRELX PyCoro_Type-0x4
// 6f: 74 1c je 0x8d <_JIT_ENTRY+0x8d>
// 71: 4c 89 63 f8 movq %r12, -0x8(%rbx)
// 75: 4c 89 f7 movq %r14, %rdi
// 78: 48 89 de movq %rbx, %rsi
// 7b: 4c 89 fa movq %r15, %rdx
// 7e: 5b popq %rbx
// 7f: 41 5c popq %r12
// 81: 41 5d popq %r13
// 83: 41 5e popq %r14
// 85: 41 5f popq %r15
// 87: ff 25 00 00 00 00 jmpq *(%rip) # 0x8d <_JIT_ENTRY+0x8d>
// 0000000000000089: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 8d: 4c 89 e7 movq %r12, %rdi
// 90: ff 15 00 00 00 00 callq *(%rip) # 0x96 <_JIT_ENTRY+0x96>
// 0000000000000092: R_X86_64_GOTPCRELX _PyGen_yf-0x4
// 96: 48 85 c0 testq %rax, %rax
// 99: 74 d6 je 0x71 <_JIT_ENTRY+0x71>
// 9b: 48 8b 08 movq (%rax), %rcx
// 9e: 85 c9 testl %ecx, %ecx
// a0: 78 11 js 0xb3 <_JIT_ENTRY+0xb3>
// a2: 48 ff c9 decq %rcx
// a5: 48 89 08 movq %rcx, (%rax)
// a8: 75 09 jne 0xb3 <_JIT_ENTRY+0xb3>
// aa: 48 89 c7 movq %rax, %rdi
// ad: ff 15 00 00 00 00 callq *(%rip) # 0xb3 <_JIT_ENTRY+0xb3>
// 00000000000000af: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// b3: 49 8b 04 24 movq (%r12), %rax
// b7: 85 c0 testl %eax, %eax
// b9: 78 12 js 0xcd <_JIT_ENTRY+0xcd>
// bb: 48 ff c8 decq %rax
// be: 49 89 04 24 movq %rax, (%r12)
// c2: 75 09 jne 0xcd <_JIT_ENTRY+0xcd>
// c4: 4c 89 e7 movq %r12, %rdi
// c7: ff 15 00 00 00 00 callq *(%rip) # 0xcd <_JIT_ENTRY+0xcd>
// 00000000000000c9: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// cd: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xd4 <_JIT_ENTRY+0xd4>
// 00000000000000d0: R_X86_64_REX_GOTPCRELX PyExc_RuntimeError-0x4
// d4: 48 8b 30 movq (%rax), %rsi
// d7: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0xde <_JIT_ENTRY+0xde>
// 00000000000000da: R_X86_64_PC32 .L.str.4-0x4
// de: 4c 89 ff movq %r15, %rdi
// e1: ff 15 00 00 00 00 callq *(%rip) # 0xe7 <_JIT_ENTRY+0xe7>
// 00000000000000e3: R_X86_64_GOTPCRELX _PyErr_SetString-0x4
// e7: eb 12 jmp 0xfb <_JIT_ENTRY+0xfb>
// e9: 4c 89 ef movq %r13, %rdi
// ec: ff 15 00 00 00 00 callq *(%rip) # 0xf2 <_JIT_ENTRY+0xf2>
// 00000000000000ee: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// f2: 4d 85 e4 testq %r12, %r12
// f5: 0f 85 68 ff ff ff jne 0x63 <_JIT_ENTRY+0x63>
// fb: 48 83 c3 f8 addq $-0x8, %rbx
// ff: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x106 <_JIT_ENTRY+0x106>
// 0000000000000102: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 106: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 10d: 4c 29 f3 subq %r14, %rbx
// 110: 48 83 c3 b8 addq $-0x48, %rbx
// 114: 48 c1 eb 03 shrq $0x3, %rbx
// 118: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 11c: 31 c0 xorl %eax, %eax
// 11e: 5b popq %rbx
// 11f: 41 5c popq %r12
// 121: 41 5d popq %r13
// 123: 41 5e popq %r14
// 125: 41 5f popq %r15
// 127: c3 retq
// 128:
static const unsigned char _GET_AWAITABLE_code_body[297] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54,
0x53, 0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49,
0x89, 0xfe, 0x4c, 0x8b, 0x6e, 0xf8, 0x4c, 0x89,
0xef, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x49,
0x89, 0xc4, 0x48, 0x85, 0xc0, 0x74, 0x0a, 0x49,
0x8b, 0x45, 0x00, 0x85, 0xc0, 0x79, 0x1e, 0xeb,
0x29, 0x49, 0x8b, 0x75, 0x08, 0x0f, 0xb7, 0x15,
0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xff, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0x49, 0x8b, 0x45,
0x00, 0x85, 0xc0, 0x78, 0x0d, 0x48, 0xff, 0xc8,
0x49, 0x89, 0x45, 0x00, 0x0f, 0x84, 0x8f, 0x00,
0x00, 0x00, 0x4d, 0x85, 0xe4, 0x0f, 0x84, 0x98,
0x00, 0x00, 0x00, 0x49, 0x8b, 0x44, 0x24, 0x08,
0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x74,
0x1c, 0x4c, 0x89, 0x63, 0xf8, 0x4c, 0x89, 0xf7,
0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, 0x5b, 0x41,
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0xff,
0x25, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xe7,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x85,
0xc0, 0x74, 0xd6, 0x48, 0x8b, 0x08, 0x85, 0xc9,
0x78, 0x11, 0x48, 0xff, 0xc9, 0x48, 0x89, 0x08,
0x75, 0x09, 0x48, 0x89, 0xc7, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x49, 0x8b, 0x04, 0x24, 0x85,
0xc0, 0x78, 0x12, 0x48, 0xff, 0xc8, 0x49, 0x89,
0x04, 0x24, 0x75, 0x09, 0x4c, 0x89, 0xe7, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x05,
0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x30, 0x48,
0x8d, 0x15, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89,
0xff, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb,
0x12, 0x4c, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00,
0x00, 0x00, 0x4d, 0x85, 0xe4, 0x0f, 0x85, 0x68,
0xff, 0xff, 0xff, 0x48, 0x83, 0xc3, 0xf8, 0x48,
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89,
0x87, 0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, 0xf3,
0x48, 0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb, 0x03,
0x41, 0x89, 0x5e, 0x40, 0x31, 0xc0, 0x5b, 0x41,
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0xc3,
};
static const Hole _GET_AWAITABLE_code_holes[14] = {
{0x1b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
{0x38, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x2c},
{0x41, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x34},
{0x6b, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x3c},
{0x89, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x44},
{0x92, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4c},
{0xaf, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x54},
{0xc9, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x54},
{0xd0, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x5c},
{0xda, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4},
{0xe3, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x64},
{0xee, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x54},
{0x102, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x6c},
};
// 0: 'coroutine is being awaited already\x00'
// 23: 00 00 00 00 00
// 28: &_PyCoro_GetAwaitableIter+0x0
// 30: OPARG
// 38: &_PyEval_FormatAwaitableError+0x0
// 40: &PyCoro_Type+0x0
// 48: CONTINUE
// 50: &_PyGen_yf+0x0
// 58: &_Py_Dealloc+0x0
// 60: &PyExc_RuntimeError+0x0
// 68: &_PyErr_SetString+0x0
// 70: EXECUTOR
static const unsigned char _GET_AWAITABLE_data_body[121] = {
0x63, 0x6f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e,
0x65, 0x20, 0x69, 0x73, 0x20, 0x62, 0x65, 0x69,
0x6e, 0x67, 0x20, 0x61, 0x77, 0x61, 0x69, 0x74,
0x65, 0x64, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61,
0x64, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _GET_AWAITABLE_data_holes[11] = {
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyCoro_GetAwaitableIter, 0x0},
{0x30, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x38, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyEval_FormatAwaitableError, 0x0},
{0x40, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyCoro_Type, 0x0},
{0x48, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x50, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyGen_yf, 0x0},
{0x58, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x60, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_RuntimeError, 0x0},
{0x68, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_SetString, 0x0},
{0x70, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _GET_ITER
//
// /tmp/tmp2mfmnab2/_GET_ITER.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 55 pushq %r13
// 6: 41 54 pushq %r12
// 8: 53 pushq %rbx
// 9: 49 89 d7 movq %rdx, %r15
// c: 48 89 f3 movq %rsi, %rbx
// f: 49 89 fe movq %rdi, %r14
// 12: 4c 8b 6e f8 movq -0x8(%rsi), %r13
// 16: 4c 89 ef movq %r13, %rdi
// 19: ff 15 00 00 00 00 callq *(%rip) # 0x1f <_JIT_ENTRY+0x1f>
// 000000000000001b: R_X86_64_GOTPCRELX PyObject_GetIter-0x4
// 1f: 49 89 c4 movq %rax, %r12
// 22: 49 8b 45 00 movq (%r13), %rax
// 26: 85 c0 testl %eax, %eax
// 28: 78 09 js 0x33 <_JIT_ENTRY+0x33>
// 2a: 48 ff c8 decq %rax
// 2d: 49 89 45 00 movq %rax, (%r13)
// 31: 74 21 je 0x54 <_JIT_ENTRY+0x54>
// 33: 4d 85 e4 testq %r12, %r12
// 36: 74 2a je 0x62 <_JIT_ENTRY+0x62>
// 38: 4c 89 63 f8 movq %r12, -0x8(%rbx)
// 3c: 4c 89 f7 movq %r14, %rdi
// 3f: 48 89 de movq %rbx, %rsi
// 42: 4c 89 fa movq %r15, %rdx
// 45: 5b popq %rbx
// 46: 41 5c popq %r12
// 48: 41 5d popq %r13
// 4a: 41 5e popq %r14
// 4c: 41 5f popq %r15
// 4e: ff 25 00 00 00 00 jmpq *(%rip) # 0x54 <_JIT_ENTRY+0x54>
// 0000000000000050: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 54: 4c 89 ef movq %r13, %rdi
// 57: ff 15 00 00 00 00 callq *(%rip) # 0x5d <_JIT_ENTRY+0x5d>
// 0000000000000059: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 5d: 4d 85 e4 testq %r12, %r12
// 60: 75 d6 jne 0x38 <_JIT_ENTRY+0x38>
// 62: 48 83 c3 f8 addq $-0x8, %rbx
// 66: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x6d <_JIT_ENTRY+0x6d>
// 0000000000000069: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 6d: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 74: 4c 29 f3 subq %r14, %rbx
// 77: 48 83 c3 b8 addq $-0x48, %rbx
// 7b: 48 c1 eb 03 shrq $0x3, %rbx
// 7f: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 83: 31 c0 xorl %eax, %eax
// 85: 5b popq %rbx
// 86: 41 5c popq %r12
// 88: 41 5d popq %r13
// 8a: 41 5e popq %r14
// 8c: 41 5f popq %r15
// 8e: c3 retq
// 8f:
static const unsigned char _GET_ITER_code_body[144] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54,
0x53, 0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49,
0x89, 0xfe, 0x4c, 0x8b, 0x6e, 0xf8, 0x4c, 0x89,
0xef, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x49,
0x89, 0xc4, 0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0,
0x78, 0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x45,
0x00, 0x74, 0x21, 0x4d, 0x85, 0xe4, 0x74, 0x2a,
0x4c, 0x89, 0x63, 0xf8, 0x4c, 0x89, 0xf7, 0x48,
0x89, 0xde, 0x4c, 0x89, 0xfa, 0x5b, 0x41, 0x5c,
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0xff, 0x25,
0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xef, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x85, 0xe4,
0x75, 0xd6, 0x48, 0x83, 0xc3, 0xf8, 0x48, 0x8b,
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87,
0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, 0xf3, 0x48,
0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb, 0x03, 0x41,
0x89, 0x5e, 0x40, 0x31, 0xc0, 0x5b, 0x41, 0x5c,
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0xc3,
};
static const Hole _GET_ITER_code_holes[5] = {
{0x1b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x50, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x59, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x69, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
};
// 0:
// 0: &PyObject_GetIter+0x0
// 8: CONTINUE
// 10: &_Py_Dealloc+0x0
// 18: EXECUTOR
static const unsigned char _GET_ITER_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _GET_ITER_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_GetIter, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _GET_LEN
//
// /tmp/tmp2mfmnab2/_GET_LEN.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 53 pushq %rbx
// 5: 49 89 d7 movq %rdx, %r15
// 8: 48 89 f3 movq %rsi, %rbx
// b: 49 89 fe movq %rdi, %r14
// e: 48 8b 7e f8 movq -0x8(%rsi), %rdi
// 12: ff 15 00 00 00 00 callq *(%rip) # 0x18 <_JIT_ENTRY+0x18>
// 0000000000000014: R_X86_64_GOTPCRELX PyObject_Size-0x4
// 18: 48 85 c0 testq %rax, %rax
// 1b: 78 29 js 0x46 <_JIT_ENTRY+0x46>
// 1d: 48 89 c7 movq %rax, %rdi
// 20: ff 15 00 00 00 00 callq *(%rip) # 0x26 <_JIT_ENTRY+0x26>
// 0000000000000022: R_X86_64_GOTPCRELX PyLong_FromSsize_t-0x4
// 26: 48 85 c0 testq %rax, %rax
// 29: 74 1b je 0x46 <_JIT_ENTRY+0x46>
// 2b: 48 89 03 movq %rax, (%rbx)
// 2e: 48 83 c3 08 addq $0x8, %rbx
// 32: 4c 89 f7 movq %r14, %rdi
// 35: 48 89 de movq %rbx, %rsi
// 38: 4c 89 fa movq %r15, %rdx
// 3b: 5b popq %rbx
// 3c: 41 5e popq %r14
// 3e: 41 5f popq %r15
// 40: ff 25 00 00 00 00 jmpq *(%rip) # 0x46 <_JIT_ENTRY+0x46>
// 0000000000000042: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 46: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x4d <_JIT_ENTRY+0x4d>
// 0000000000000049: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 4d: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 54: 4c 29 f3 subq %r14, %rbx
// 57: 48 83 c3 b8 addq $-0x48, %rbx
// 5b: 48 c1 eb 03 shrq $0x3, %rbx
// 5f: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 63: 31 c0 xorl %eax, %eax
// 65: 5b popq %rbx
// 66: 41 5e popq %r14
// 68: 41 5f popq %r15
// 6a: c3 retq
// 6b:
static const unsigned char _GET_LEN_code_body[108] = {
0x41, 0x57, 0x41, 0x56, 0x53, 0x49, 0x89, 0xd7,
0x48, 0x89, 0xf3, 0x49, 0x89, 0xfe, 0x48, 0x8b,
0x7e, 0xf8, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x48, 0x85, 0xc0, 0x78, 0x29, 0x48, 0x89, 0xc7,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x85,
0xc0, 0x74, 0x1b, 0x48, 0x89, 0x03, 0x48, 0x83,
0xc3, 0x08, 0x4c, 0x89, 0xf7, 0x48, 0x89, 0xde,
0x4c, 0x89, 0xfa, 0x5b, 0x41, 0x5e, 0x41, 0x5f,
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b,
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87,
0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, 0xf3, 0x48,
0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb, 0x03, 0x41,
0x89, 0x5e, 0x40, 0x31, 0xc0, 0x5b, 0x41, 0x5e,
0x41, 0x5f, 0xc3,
};
static const Hole _GET_LEN_code_holes[5] = {
{0x14, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x22, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x42, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x49, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
};
// 0:
// 0: &PyObject_Size+0x0
// 8: &PyLong_FromSsize_t+0x0
// 10: CONTINUE
// 18: EXECUTOR
static const unsigned char _GET_LEN_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _GET_LEN_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_Size, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyLong_FromSsize_t, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _GET_YIELD_FROM_ITER
//
// /tmp/tmp2mfmnab2/_GET_YIELD_FROM_ITER.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 55 pushq %r13
// 6: 41 54 pushq %r12
// 8: 53 pushq %rbx
// 9: 49 89 d7 movq %rdx, %r15
// c: 48 89 f3 movq %rsi, %rbx
// f: 49 89 fe movq %rdi, %r14
// 12: 4c 8b 66 f8 movq -0x8(%rsi), %r12
// 16: 49 8b 44 24 08 movq 0x8(%r12), %rax
// 1b: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x22 <_JIT_ENTRY+0x22>
// 000000000000001e: R_X86_64_REX_GOTPCRELX PyCoro_Type-0x4
// 22: 74 39 je 0x5d <_JIT_ENTRY+0x5d>
// 24: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x2b <_JIT_ENTRY+0x2b>
// 0000000000000027: R_X86_64_REX_GOTPCRELX PyGen_Type-0x4
// 2b: 74 3e je 0x6b <_JIT_ENTRY+0x6b>
// 2d: 4c 89 e7 movq %r12, %rdi
// 30: ff 15 00 00 00 00 callq *(%rip) # 0x36 <_JIT_ENTRY+0x36>
// 0000000000000032: R_X86_64_GOTPCRELX PyObject_GetIter-0x4
// 36: 48 85 c0 testq %rax, %rax
// 39: 74 66 je 0xa1 <_JIT_ENTRY+0xa1>
// 3b: 49 89 c5 movq %rax, %r13
// 3e: 49 8b 04 24 movq (%r12), %rax
// 42: 85 c0 testl %eax, %eax
// 44: 78 12 js 0x58 <_JIT_ENTRY+0x58>
// 46: 48 ff c8 decq %rax
// 49: 49 89 04 24 movq %rax, (%r12)
// 4d: 75 09 jne 0x58 <_JIT_ENTRY+0x58>
// 4f: 4c 89 e7 movq %r12, %rdi
// 52: ff 15 00 00 00 00 callq *(%rip) # 0x58 <_JIT_ENTRY+0x58>
// 0000000000000054: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 58: 4d 89 ec movq %r13, %r12
// 5b: eb 0e jmp 0x6b <_JIT_ENTRY+0x6b>
// 5d: 49 8b 06 movq (%r14), %rax
// 60: 0f b7 40 30 movzwl 0x30(%rax), %eax
// 64: a9 80 01 00 00 testl $0x180, %eax # imm = 0x180
// 69: 74 1c je 0x87 <_JIT_ENTRY+0x87>
// 6b: 4c 89 63 f8 movq %r12, -0x8(%rbx)
// 6f: 4c 89 f7 movq %r14, %rdi
// 72: 48 89 de movq %rbx, %rsi
// 75: 4c 89 fa movq %r15, %rdx
// 78: 5b popq %rbx
// 79: 41 5c popq %r12
// 7b: 41 5d popq %r13
// 7d: 41 5e popq %r14
// 7f: 41 5f popq %r15
// 81: ff 25 00 00 00 00 jmpq *(%rip) # 0x87 <_JIT_ENTRY+0x87>
// 0000000000000083: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 87: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x8e <_JIT_ENTRY+0x8e>
// 000000000000008a: R_X86_64_REX_GOTPCRELX PyExc_TypeError-0x4
// 8e: 48 8b 30 movq (%rax), %rsi
// 91: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0x98 <_JIT_ENTRY+0x98>
// 0000000000000094: R_X86_64_PC32 .L.str.14-0x4
// 98: 4c 89 ff movq %r15, %rdi
// 9b: ff 15 00 00 00 00 callq *(%rip) # 0xa1 <_JIT_ENTRY+0xa1>
// 000000000000009d: R_X86_64_GOTPCRELX _PyErr_SetString-0x4
// a1: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xa8 <_JIT_ENTRY+0xa8>
// 00000000000000a4: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// a8: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// af: 4c 29 f3 subq %r14, %rbx
// b2: 48 83 c3 b8 addq $-0x48, %rbx
// b6: 48 c1 eb 03 shrq $0x3, %rbx
// ba: 41 89 5e 40 movl %ebx, 0x40(%r14)
// be: 31 c0 xorl %eax, %eax
// c0: 5b popq %rbx
// c1: 41 5c popq %r12
// c3: 41 5d popq %r13
// c5: 41 5e popq %r14
// c7: 41 5f popq %r15
// c9: c3 retq
// ca:
static const unsigned char _GET_YIELD_FROM_ITER_code_body[203] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54,
0x53, 0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49,
0x89, 0xfe, 0x4c, 0x8b, 0x66, 0xf8, 0x49, 0x8b,
0x44, 0x24, 0x08, 0x48, 0x3b, 0x05, 0x00, 0x00,
0x00, 0x00, 0x74, 0x39, 0x48, 0x3b, 0x05, 0x00,
0x00, 0x00, 0x00, 0x74, 0x3e, 0x4c, 0x89, 0xe7,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x85,
0xc0, 0x74, 0x66, 0x49, 0x89, 0xc5, 0x49, 0x8b,
0x04, 0x24, 0x85, 0xc0, 0x78, 0x12, 0x48, 0xff,
0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x09, 0x4c,
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x4d, 0x89, 0xec, 0xeb, 0x0e, 0x49, 0x8b, 0x06,
0x0f, 0xb7, 0x40, 0x30, 0xa9, 0x80, 0x01, 0x00,
0x00, 0x74, 0x1c, 0x4c, 0x89, 0x63, 0xf8, 0x4c,
0x89, 0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa,
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41,
0x5f, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48,
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b,
0x30, 0x48, 0x8d, 0x15, 0x00, 0x00, 0x00, 0x00,
0x4c, 0x89, 0xff, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x49, 0x89, 0x87, 0x28, 0x01, 0x00, 0x00, 0x4c,
0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8, 0x48, 0xc1,
0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, 0x31, 0xc0,
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41,
0x5f, 0xc3,
};
static const Hole _GET_YIELD_FROM_ITER_code_holes[10] = {
{0x1e, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x44},
{0x27, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4c},
{0x32, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x54},
{0x54, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x5c},
{0x83, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x64},
{0x8a, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x6c},
{0x94, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4},
{0x9d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x74},
{0xa4, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x7c},
};
// 0: "cannot 'yield from' a coroutine object in a non-coroutine generator\x00"
// 44: 00 00 00 00
// 48: &PyCoro_Type+0x0
// 50: &PyGen_Type+0x0
// 58: &PyObject_GetIter+0x0
// 60: &_Py_Dealloc+0x0
// 68: CONTINUE
// 70: &PyExc_TypeError+0x0
// 78: &_PyErr_SetString+0x0
// 80: EXECUTOR
static const unsigned char _GET_YIELD_FROM_ITER_data_body[137] = {
0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x20, 0x27,
0x79, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, 0x72,
0x6f, 0x6d, 0x27, 0x20, 0x61, 0x20, 0x63, 0x6f,
0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x65, 0x20,
0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x69,
0x6e, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d,
0x63, 0x6f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e,
0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61,
0x74, 0x6f, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _GET_YIELD_FROM_ITER_data_holes[9] = {
{0x48, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyCoro_Type, 0x0},
{0x50, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyGen_Type, 0x0},
{0x58, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_GetIter, 0x0},
{0x60, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x68, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x70, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_TypeError, 0x0},
{0x78, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_SetString, 0x0},
{0x80, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _GUARD_BOTH_FLOAT
//
// /tmp/tmp2mfmnab2/_GUARD_BOTH_FLOAT.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 46 f0 movq -0x10(%rsi), %rax
// 4: 48 8b 40 08 movq 0x8(%rax), %rax
// 8: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0xf <_JIT_ENTRY+0xf>
// 000000000000000b: R_X86_64_REX_GOTPCRELX PyFloat_Type-0x4
// f: 75 11 jne 0x22 <_JIT_ENTRY+0x22>
// 11: 48 8b 46 f8 movq -0x8(%rsi), %rax
// 15: 48 8b 40 08 movq 0x8(%rax), %rax
// 19: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x20 <_JIT_ENTRY+0x20>
// 000000000000001c: R_X86_64_REX_GOTPCRELX PyFloat_Type-0x4
// 20: 74 43 je 0x65 <_JIT_ENTRY+0x65>
// 22: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x28 <_JIT_ENTRY+0x28>
// 0000000000000024: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 28: 48 c1 e1 04 shlq $0x4, %rcx
// 2c: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x33 <_JIT_ENTRY+0x33>
// 000000000000002f: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 33: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx
// 3b: 44 8b 01 movl (%rcx), %r8d
// 3e: 41 ff c0 incl %r8d
// 41: 74 15 je 0x58 <_JIT_ENTRY+0x58>
// 43: 44 89 01 movl %r8d, (%rcx)
// 46: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4c <_JIT_ENTRY+0x4c>
// 0000000000000048: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 4c: 48 c1 e1 04 shlq $0x4, %rcx
// 50: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx
// 58: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 5f: 48 8b 41 70 movq 0x70(%rcx), %rax
// 63: ff e0 jmpq *%rax
// 65: ff 25 00 00 00 00 jmpq *(%rip) # 0x6b <_JIT_ENTRY+0x6b>
// 0000000000000067: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 65:
static const unsigned char _GUARD_BOTH_FLOAT_code_body[102] = {
0x48, 0x8b, 0x46, 0xf0, 0x48, 0x8b, 0x40, 0x08,
0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x75,
0x11, 0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x40,
0x08, 0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x74, 0x43, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00,
0x48, 0xc1, 0xe1, 0x04, 0x48, 0x8b, 0x05, 0x00,
0x00, 0x00, 0x00, 0x48, 0x8b, 0x8c, 0x08, 0x80,
0x00, 0x00, 0x00, 0x44, 0x8b, 0x01, 0x41, 0xff,
0xc0, 0x74, 0x15, 0x44, 0x89, 0x01, 0x8b, 0x0d,
0x00, 0x00, 0x00, 0x00, 0x48, 0xc1, 0xe1, 0x04,
0x48, 0x8b, 0x8c, 0x08, 0x80, 0x00, 0x00, 0x00,
0x48, 0x89, 0x82, 0x28, 0x01, 0x00, 0x00, 0x48,
0x8b, 0x41, 0x70, 0xff, 0xe0,
};
static const Hole _GUARD_BOTH_FLOAT_code_holes[6] = {
{0xb, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x1c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x24, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x2f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x48, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
};
// 0:
// 0: &PyFloat_Type+0x0
// 8: TARGET
// 10: EXECUTOR
static const unsigned char _GUARD_BOTH_FLOAT_data_body[25] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _GUARD_BOTH_FLOAT_data_holes[4] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyFloat_Type, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _GUARD_BOTH_INT
//
// /tmp/tmp2mfmnab2/_GUARD_BOTH_INT.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 46 f0 movq -0x10(%rsi), %rax
// 4: 48 8b 40 08 movq 0x8(%rax), %rax
// 8: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0xf <_JIT_ENTRY+0xf>
// 000000000000000b: R_X86_64_REX_GOTPCRELX PyLong_Type-0x4
// f: 75 11 jne 0x22 <_JIT_ENTRY+0x22>
// 11: 48 8b 46 f8 movq -0x8(%rsi), %rax
// 15: 48 8b 40 08 movq 0x8(%rax), %rax
// 19: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x20 <_JIT_ENTRY+0x20>
// 000000000000001c: R_X86_64_REX_GOTPCRELX PyLong_Type-0x4
// 20: 74 43 je 0x65 <_JIT_ENTRY+0x65>
// 22: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x28 <_JIT_ENTRY+0x28>
// 0000000000000024: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 28: 48 c1 e1 04 shlq $0x4, %rcx
// 2c: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x33 <_JIT_ENTRY+0x33>
// 000000000000002f: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 33: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx
// 3b: 44 8b 01 movl (%rcx), %r8d
// 3e: 41 ff c0 incl %r8d
// 41: 74 15 je 0x58 <_JIT_ENTRY+0x58>
// 43: 44 89 01 movl %r8d, (%rcx)
// 46: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4c <_JIT_ENTRY+0x4c>
// 0000000000000048: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 4c: 48 c1 e1 04 shlq $0x4, %rcx
// 50: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx
// 58: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 5f: 48 8b 41 70 movq 0x70(%rcx), %rax
// 63: ff e0 jmpq *%rax
// 65: ff 25 00 00 00 00 jmpq *(%rip) # 0x6b <_JIT_ENTRY+0x6b>
// 0000000000000067: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 65:
static const unsigned char _GUARD_BOTH_INT_code_body[102] = {
0x48, 0x8b, 0x46, 0xf0, 0x48, 0x8b, 0x40, 0x08,
0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x75,
0x11, 0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x40,
0x08, 0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x74, 0x43, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00,
0x48, 0xc1, 0xe1, 0x04, 0x48, 0x8b, 0x05, 0x00,
0x00, 0x00, 0x00, 0x48, 0x8b, 0x8c, 0x08, 0x80,
0x00, 0x00, 0x00, 0x44, 0x8b, 0x01, 0x41, 0xff,
0xc0, 0x74, 0x15, 0x44, 0x89, 0x01, 0x8b, 0x0d,
0x00, 0x00, 0x00, 0x00, 0x48, 0xc1, 0xe1, 0x04,
0x48, 0x8b, 0x8c, 0x08, 0x80, 0x00, 0x00, 0x00,
0x48, 0x89, 0x82, 0x28, 0x01, 0x00, 0x00, 0x48,
0x8b, 0x41, 0x70, 0xff, 0xe0,
};
static const Hole _GUARD_BOTH_INT_code_holes[6] = {
{0xb, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x1c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x24, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x2f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x48, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
};
// 0:
// 0: &PyLong_Type+0x0
// 8: TARGET
// 10: EXECUTOR
static const unsigned char _GUARD_BOTH_INT_data_body[25] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _GUARD_BOTH_INT_data_holes[4] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyLong_Type, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _GUARD_BOTH_UNICODE
//
// /tmp/tmp2mfmnab2/_GUARD_BOTH_UNICODE.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 46 f0 movq -0x10(%rsi), %rax
// 4: 48 8b 40 08 movq 0x8(%rax), %rax
// 8: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0xf <_JIT_ENTRY+0xf>
// 000000000000000b: R_X86_64_REX_GOTPCRELX PyUnicode_Type-0x4
// f: 75 11 jne 0x22 <_JIT_ENTRY+0x22>
// 11: 48 8b 46 f8 movq -0x8(%rsi), %rax
// 15: 48 8b 40 08 movq 0x8(%rax), %rax
// 19: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x20 <_JIT_ENTRY+0x20>
// 000000000000001c: R_X86_64_REX_GOTPCRELX PyUnicode_Type-0x4
// 20: 74 43 je 0x65 <_JIT_ENTRY+0x65>
// 22: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x28 <_JIT_ENTRY+0x28>
// 0000000000000024: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 28: 48 c1 e1 04 shlq $0x4, %rcx
// 2c: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x33 <_JIT_ENTRY+0x33>
// 000000000000002f: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 33: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx
// 3b: 44 8b 01 movl (%rcx), %r8d
// 3e: 41 ff c0 incl %r8d
// 41: 74 15 je 0x58 <_JIT_ENTRY+0x58>
// 43: 44 89 01 movl %r8d, (%rcx)
// 46: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4c <_JIT_ENTRY+0x4c>
// 0000000000000048: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 4c: 48 c1 e1 04 shlq $0x4, %rcx
// 50: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx
// 58: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 5f: 48 8b 41 70 movq 0x70(%rcx), %rax
// 63: ff e0 jmpq *%rax
// 65: ff 25 00 00 00 00 jmpq *(%rip) # 0x6b <_JIT_ENTRY+0x6b>
// 0000000000000067: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 65:
static const unsigned char _GUARD_BOTH_UNICODE_code_body[102] = {
0x48, 0x8b, 0x46, 0xf0, 0x48, 0x8b, 0x40, 0x08,
0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x75,
0x11, 0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x40,
0x08, 0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x74, 0x43, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00,
0x48, 0xc1, 0xe1, 0x04, 0x48, 0x8b, 0x05, 0x00,
0x00, 0x00, 0x00, 0x48, 0x8b, 0x8c, 0x08, 0x80,
0x00, 0x00, 0x00, 0x44, 0x8b, 0x01, 0x41, 0xff,
0xc0, 0x74, 0x15, 0x44, 0x89, 0x01, 0x8b, 0x0d,
0x00, 0x00, 0x00, 0x00, 0x48, 0xc1, 0xe1, 0x04,
0x48, 0x8b, 0x8c, 0x08, 0x80, 0x00, 0x00, 0x00,
0x48, 0x89, 0x82, 0x28, 0x01, 0x00, 0x00, 0x48,
0x8b, 0x41, 0x70, 0xff, 0xe0,
};
static const Hole _GUARD_BOTH_UNICODE_code_holes[6] = {
{0xb, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x1c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x24, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x2f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x48, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
};
// 0:
// 0: &PyUnicode_Type+0x0
// 8: TARGET
// 10: EXECUTOR
static const unsigned char _GUARD_BOTH_UNICODE_data_body[25] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _GUARD_BOTH_UNICODE_data_holes[4] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyUnicode_Type, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _GUARD_BUILTINS_VERSION
//
// /tmp/tmp2mfmnab2/_GUARD_BUILTINS_VERSION.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 47 20 movq 0x20(%rdi), %rax
// 4: 48 8b 48 08 movq 0x8(%rax), %rcx
// 8: 48 3b 0d 00 00 00 00 cmpq (%rip), %rcx # 0xf <_JIT_ENTRY+0xf>
// 000000000000000b: R_X86_64_REX_GOTPCRELX PyDict_Type-0x4
// f: 75 16 jne 0x27 <_JIT_ENTRY+0x27>
// 11: 48 8b 40 20 movq 0x20(%rax), %rax
// 15: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0x1c <_JIT_ENTRY+0x1c>
// 0000000000000018: R_X86_64_GOTPCREL _JIT_OPERAND-0x4
// 1c: 39 48 0c cmpl %ecx, 0xc(%rax)
// 1f: 75 06 jne 0x27 <_JIT_ENTRY+0x27>
// 21: ff 25 00 00 00 00 jmpq *(%rip) # 0x27 <_JIT_ENTRY+0x27>
// 0000000000000023: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 27: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x2e <_JIT_ENTRY+0x2e>
// 000000000000002a: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 2e: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 35: 48 29 fe subq %rdi, %rsi
// 38: 48 83 c6 b8 addq $-0x48, %rsi
// 3c: 48 c1 ee 03 shrq $0x3, %rsi
// 40: 89 77 40 movl %esi, 0x40(%rdi)
// 43: 48 8b 07 movq (%rdi), %rax
// 46: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4c <_JIT_ENTRY+0x4c>
// 0000000000000048: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 4c: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 50: 48 05 c8 00 00 00 addq $0xc8, %rax
// 56: c3 retq
// 57:
static const unsigned char _GUARD_BUILTINS_VERSION_code_body[88] = {
0x48, 0x8b, 0x47, 0x20, 0x48, 0x8b, 0x48, 0x08,
0x48, 0x3b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x75,
0x16, 0x48, 0x8b, 0x40, 0x20, 0x0f, 0xb7, 0x0d,
0x00, 0x00, 0x00, 0x00, 0x39, 0x48, 0x0c, 0x75,
0x06, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48,
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x89,
0x82, 0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xfe,
0x48, 0x83, 0xc6, 0xb8, 0x48, 0xc1, 0xee, 0x03,
0x89, 0x77, 0x40, 0x48, 0x8b, 0x07, 0x8b, 0x0d,
0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48,
0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0xc3,
};
static const Hole _GUARD_BUILTINS_VERSION_code_holes[6] = {
{0xb, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x18, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x4},
{0x23, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x2a, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x48, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
};
// 0:
// 0: &PyDict_Type+0x0
// 8: OPERAND
// 10: CONTINUE
// 18: EXECUTOR
// 20: TARGET
static const unsigned char _GUARD_BUILTINS_VERSION_data_body[41] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _GUARD_BUILTINS_VERSION_data_holes[6] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyDict_Type, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_OPERAND, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _GUARD_DORV_VALUES
//
// /tmp/tmp2mfmnab2/_GUARD_DORV_VALUES.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax
// 4: f6 40 e8 01 testb $0x1, -0x18(%rax)
// 8: 75 30 jne 0x3a <_JIT_ENTRY+0x3a>
// a: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x11 <_JIT_ENTRY+0x11>
// 000000000000000d: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 11: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 18: 48 29 fe subq %rdi, %rsi
// 1b: 48 83 c6 b8 addq $-0x48, %rsi
// 1f: 48 c1 ee 03 shrq $0x3, %rsi
// 23: 89 77 40 movl %esi, 0x40(%rdi)
// 26: 48 8b 07 movq (%rdi), %rax
// 29: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x2f <_JIT_ENTRY+0x2f>
// 000000000000002b: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 2f: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 33: 48 05 c8 00 00 00 addq $0xc8, %rax
// 39: c3 retq
// 3a: ff 25 00 00 00 00 jmpq *(%rip) # 0x40 <_JIT_ENTRY+0x40>
// 000000000000003c: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 3a:
static const unsigned char _GUARD_DORV_VALUES_code_body[59] = {
0x48, 0x8b, 0x46, 0xf8, 0xf6, 0x40, 0xe8, 0x01,
0x75, 0x30, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x48, 0x89, 0x82, 0x28, 0x01, 0x00, 0x00,
0x48, 0x29, 0xfe, 0x48, 0x83, 0xc6, 0xb8, 0x48,
0xc1, 0xee, 0x03, 0x89, 0x77, 0x40, 0x48, 0x8b,
0x07, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48,
0x8d, 0x04, 0x48, 0x48, 0x05, 0xc8, 0x00, 0x00,
0x00, 0xc3,
};
static const Hole _GUARD_DORV_VALUES_code_holes[3] = {
{0xd, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x2b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
};
// 0:
// 0: EXECUTOR
// 8: TARGET
static const unsigned char _GUARD_DORV_VALUES_data_body[17] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _GUARD_DORV_VALUES_data_holes[3] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT
//
// /tmp/tmp2mfmnab2/_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 53 pushq %rbx
// 5: 49 89 d7 movq %rdx, %r15
// 8: 48 89 f3 movq %rsi, %rbx
// b: 49 89 fe movq %rdi, %r14
// e: 48 8b 7e f8 movq -0x8(%rsi), %rdi
// 12: f6 47 e8 01 testb $0x1, -0x18(%rdi)
// 16: 75 0e jne 0x26 <_JIT_ENTRY+0x26>
// 18: 48 8d 77 e8 leaq -0x18(%rdi), %rsi
// 1c: ff 15 00 00 00 00 callq *(%rip) # 0x22 <_JIT_ENTRY+0x22>
// 000000000000001e: R_X86_64_GOTPCRELX _PyObject_MakeInstanceAttributesFromDict-0x4
// 22: 84 c0 testb %al, %al
// 24: 74 14 je 0x3a <_JIT_ENTRY+0x3a>
// 26: 4c 89 f7 movq %r14, %rdi
// 29: 48 89 de movq %rbx, %rsi
// 2c: 4c 89 fa movq %r15, %rdx
// 2f: 5b popq %rbx
// 30: 41 5e popq %r14
// 32: 41 5f popq %r15
// 34: ff 25 00 00 00 00 jmpq *(%rip) # 0x3a <_JIT_ENTRY+0x3a>
// 0000000000000036: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 3a: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x41 <_JIT_ENTRY+0x41>
// 000000000000003d: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 41: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 48: 4c 29 f3 subq %r14, %rbx
// 4b: 48 83 c3 b8 addq $-0x48, %rbx
// 4f: 48 c1 eb 03 shrq $0x3, %rbx
// 53: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 57: 49 8b 06 movq (%r14), %rax
// 5a: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x60 <_JIT_ENTRY+0x60>
// 000000000000005c: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 60: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 64: 48 05 c8 00 00 00 addq $0xc8, %rax
// 6a: 5b popq %rbx
// 6b: 41 5e popq %r14
// 6d: 41 5f popq %r15
// 6f: c3 retq
// 70:
static const unsigned char _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_code_body[113] = {
0x41, 0x57, 0x41, 0x56, 0x53, 0x49, 0x89, 0xd7,
0x48, 0x89, 0xf3, 0x49, 0x89, 0xfe, 0x48, 0x8b,
0x7e, 0xf8, 0xf6, 0x47, 0xe8, 0x01, 0x75, 0x0e,
0x48, 0x8d, 0x77, 0xe8, 0xff, 0x15, 0x00, 0x00,
0x00, 0x00, 0x84, 0xc0, 0x74, 0x14, 0x4c, 0x89,
0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, 0x5b,
0x41, 0x5e, 0x41, 0x5f, 0xff, 0x25, 0x00, 0x00,
0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00, 0x00,
0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8, 0x48,
0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, 0x49,
0x8b, 0x06, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00,
0x48, 0x8d, 0x04, 0x48, 0x48, 0x05, 0xc8, 0x00,
0x00, 0x00, 0x5b, 0x41, 0x5e, 0x41, 0x5f, 0xc3,
};
static const Hole _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_code_holes[5] = {
{0x1e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x36, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x3d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x5c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
};
// 0:
// 0: &_PyObject_MakeInstanceAttributesFromDict+0x0
// 8: CONTINUE
// 10: EXECUTOR
// 18: TARGET
static const unsigned char _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyObject_MakeInstanceAttributesFromDict, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _GUARD_GLOBALS_VERSION
//
// /tmp/tmp2mfmnab2/_GUARD_GLOBALS_VERSION.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 47 18 movq 0x18(%rdi), %rax
// 4: 48 8b 48 08 movq 0x8(%rax), %rcx
// 8: 48 3b 0d 00 00 00 00 cmpq (%rip), %rcx # 0xf <_JIT_ENTRY+0xf>
// 000000000000000b: R_X86_64_REX_GOTPCRELX PyDict_Type-0x4
// f: 75 16 jne 0x27 <_JIT_ENTRY+0x27>
// 11: 48 8b 40 20 movq 0x20(%rax), %rax
// 15: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0x1c <_JIT_ENTRY+0x1c>
// 0000000000000018: R_X86_64_GOTPCREL _JIT_OPERAND-0x4
// 1c: 39 48 0c cmpl %ecx, 0xc(%rax)
// 1f: 75 06 jne 0x27 <_JIT_ENTRY+0x27>
// 21: ff 25 00 00 00 00 jmpq *(%rip) # 0x27 <_JIT_ENTRY+0x27>
// 0000000000000023: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 27: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x2e <_JIT_ENTRY+0x2e>
// 000000000000002a: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 2e: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 35: 48 29 fe subq %rdi, %rsi
// 38: 48 83 c6 b8 addq $-0x48, %rsi
// 3c: 48 c1 ee 03 shrq $0x3, %rsi
// 40: 89 77 40 movl %esi, 0x40(%rdi)
// 43: 48 8b 07 movq (%rdi), %rax
// 46: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4c <_JIT_ENTRY+0x4c>
// 0000000000000048: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 4c: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 50: 48 05 c8 00 00 00 addq $0xc8, %rax
// 56: c3 retq
// 57:
static const unsigned char _GUARD_GLOBALS_VERSION_code_body[88] = {
0x48, 0x8b, 0x47, 0x18, 0x48, 0x8b, 0x48, 0x08,
0x48, 0x3b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x75,
0x16, 0x48, 0x8b, 0x40, 0x20, 0x0f, 0xb7, 0x0d,
0x00, 0x00, 0x00, 0x00, 0x39, 0x48, 0x0c, 0x75,
0x06, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48,
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x89,
0x82, 0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xfe,
0x48, 0x83, 0xc6, 0xb8, 0x48, 0xc1, 0xee, 0x03,
0x89, 0x77, 0x40, 0x48, 0x8b, 0x07, 0x8b, 0x0d,
0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48,
0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0xc3,
};
static const Hole _GUARD_GLOBALS_VERSION_code_holes[6] = {
{0xb, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x18, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x4},
{0x23, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x2a, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x48, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
};
// 0:
// 0: &PyDict_Type+0x0
// 8: OPERAND
// 10: CONTINUE
// 18: EXECUTOR
// 20: TARGET
static const unsigned char _GUARD_GLOBALS_VERSION_data_body[41] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _GUARD_GLOBALS_VERSION_data_holes[6] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyDict_Type, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_OPERAND, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _GUARD_IS_FALSE_POP
//
// /tmp/tmp2mfmnab2/_GUARD_IS_FALSE_POP.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax
// 4: 48 83 c6 f8 addq $-0x8, %rsi
// 8: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0xf <_JIT_ENTRY+0xf>
// 000000000000000b: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4
// f: 74 43 je 0x54 <_JIT_ENTRY+0x54>
// 11: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x17 <_JIT_ENTRY+0x17>
// 0000000000000013: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 17: 48 c1 e1 04 shlq $0x4, %rcx
// 1b: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x22 <_JIT_ENTRY+0x22>
// 000000000000001e: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 22: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx
// 2a: 44 8b 01 movl (%rcx), %r8d
// 2d: 41 ff c0 incl %r8d
// 30: 74 15 je 0x47 <_JIT_ENTRY+0x47>
// 32: 44 89 01 movl %r8d, (%rcx)
// 35: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x3b <_JIT_ENTRY+0x3b>
// 0000000000000037: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 3b: 48 c1 e1 04 shlq $0x4, %rcx
// 3f: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx
// 47: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 4e: 48 8b 41 70 movq 0x70(%rcx), %rax
// 52: ff e0 jmpq *%rax
// 54: ff 25 00 00 00 00 jmpq *(%rip) # 0x5a <_JIT_ENTRY+0x5a>
// 0000000000000056: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 54:
static const unsigned char _GUARD_IS_FALSE_POP_code_body[85] = {
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x83, 0xc6, 0xf8,
0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x74,
0x43, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48,
0xc1, 0xe1, 0x04, 0x48, 0x8b, 0x05, 0x00, 0x00,
0x00, 0x00, 0x48, 0x8b, 0x8c, 0x08, 0x80, 0x00,
0x00, 0x00, 0x44, 0x8b, 0x01, 0x41, 0xff, 0xc0,
0x74, 0x15, 0x44, 0x89, 0x01, 0x8b, 0x0d, 0x00,
0x00, 0x00, 0x00, 0x48, 0xc1, 0xe1, 0x04, 0x48,
0x8b, 0x8c, 0x08, 0x80, 0x00, 0x00, 0x00, 0x48,
0x89, 0x82, 0x28, 0x01, 0x00, 0x00, 0x48, 0x8b,
0x41, 0x70, 0xff, 0xe0,
};
static const Hole _GUARD_IS_FALSE_POP_code_holes[5] = {
{0xb, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x13, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x1e, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x37, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
};
// 0:
// 0: &_Py_FalseStruct+0x0
// 8: TARGET
// 10: EXECUTOR
static const unsigned char _GUARD_IS_FALSE_POP_data_body[25] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _GUARD_IS_FALSE_POP_data_holes[4] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _GUARD_IS_NONE_POP
//
// /tmp/tmp2mfmnab2/_GUARD_IS_NONE_POP.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 53 pushq %rbx
// 5: 48 89 d3 movq %rdx, %rbx
// 8: 49 89 f6 movq %rsi, %r14
// b: 49 89 ff movq %rdi, %r15
// e: 48 8b 7e f8 movq -0x8(%rsi), %rdi
// 12: 49 83 c6 f8 addq $-0x8, %r14
// 16: 48 3b 3d 00 00 00 00 cmpq (%rip), %rdi # 0x1d <_JIT_ENTRY+0x1d>
// 0000000000000019: R_X86_64_REX_GOTPCRELX _Py_NoneStruct-0x4
// 1d: 74 63 je 0x82 <_JIT_ENTRY+0x82>
// 1f: 48 8b 07 movq (%rdi), %rax
// 22: 85 c0 testl %eax, %eax
// 24: 78 0e js 0x34 <_JIT_ENTRY+0x34>
// 26: 48 ff c8 decq %rax
// 29: 48 89 07 movq %rax, (%rdi)
// 2c: 75 06 jne 0x34 <_JIT_ENTRY+0x34>
// 2e: ff 15 00 00 00 00 callq *(%rip) # 0x34 <_JIT_ENTRY+0x34>
// 0000000000000030: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 34: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x3a <_JIT_ENTRY+0x3a>
// 0000000000000036: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 3a: 48 c1 e1 04 shlq $0x4, %rcx
// 3e: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x45 <_JIT_ENTRY+0x45>
// 0000000000000041: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 45: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx
// 4d: 8b 11 movl (%rcx), %edx
// 4f: ff c2 incl %edx
// 51: 74 14 je 0x67 <_JIT_ENTRY+0x67>
// 53: 89 11 movl %edx, (%rcx)
// 55: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x5b <_JIT_ENTRY+0x5b>
// 0000000000000057: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 5b: 48 c1 e1 04 shlq $0x4, %rcx
// 5f: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx
// 67: 48 89 83 28 01 00 00 movq %rax, 0x128(%rbx)
// 6e: 48 8b 41 70 movq 0x70(%rcx), %rax
// 72: 4c 89 ff movq %r15, %rdi
// 75: 4c 89 f6 movq %r14, %rsi
// 78: 48 89 da movq %rbx, %rdx
// 7b: 5b popq %rbx
// 7c: 41 5e popq %r14
// 7e: 41 5f popq %r15
// 80: ff e0 jmpq *%rax
// 82: 4c 89 ff movq %r15, %rdi
// 85: 4c 89 f6 movq %r14, %rsi
// 88: 48 89 da movq %rbx, %rdx
// 8b: 5b popq %rbx
// 8c: 41 5e popq %r14
// 8e: 41 5f popq %r15
// 90: ff 25 00 00 00 00 jmpq *(%rip) # 0x96 <_JIT_ENTRY+0x96>
// 0000000000000092: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 90:
static const unsigned char _GUARD_IS_NONE_POP_code_body[145] = {
0x41, 0x57, 0x41, 0x56, 0x53, 0x48, 0x89, 0xd3,
0x49, 0x89, 0xf6, 0x49, 0x89, 0xff, 0x48, 0x8b,
0x7e, 0xf8, 0x49, 0x83, 0xc6, 0xf8, 0x48, 0x3b,
0x3d, 0x00, 0x00, 0x00, 0x00, 0x74, 0x63, 0x48,
0x8b, 0x07, 0x85, 0xc0, 0x78, 0x0e, 0x48, 0xff,
0xc8, 0x48, 0x89, 0x07, 0x75, 0x06, 0xff, 0x15,
0x00, 0x00, 0x00, 0x00, 0x8b, 0x0d, 0x00, 0x00,
0x00, 0x00, 0x48, 0xc1, 0xe1, 0x04, 0x48, 0x8b,
0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x8c,
0x08, 0x80, 0x00, 0x00, 0x00, 0x8b, 0x11, 0xff,
0xc2, 0x74, 0x14, 0x89, 0x11, 0x8b, 0x0d, 0x00,
0x00, 0x00, 0x00, 0x48, 0xc1, 0xe1, 0x04, 0x48,
0x8b, 0x8c, 0x08, 0x80, 0x00, 0x00, 0x00, 0x48,
0x89, 0x83, 0x28, 0x01, 0x00, 0x00, 0x48, 0x8b,
0x41, 0x70, 0x4c, 0x89, 0xff, 0x4c, 0x89, 0xf6,
0x48, 0x89, 0xda, 0x5b, 0x41, 0x5e, 0x41, 0x5f,
0xff, 0xe0, 0x4c, 0x89, 0xff, 0x4c, 0x89, 0xf6,
0x48, 0x89, 0xda, 0x5b, 0x41, 0x5e, 0x41, 0x5f,
};
static const Hole _GUARD_IS_NONE_POP_code_holes[6] = {
{0x19, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x30, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x36, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x41, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x57, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
};
// 0:
// 0: &_Py_NoneStruct+0x0
// 8: &_Py_Dealloc+0x0
// 10: TARGET
// 18: EXECUTOR
static const unsigned char _GUARD_IS_NONE_POP_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _GUARD_IS_NONE_POP_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_NoneStruct, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _GUARD_IS_NOT_NONE_POP
//
// /tmp/tmp2mfmnab2/_GUARD_IS_NOT_NONE_POP.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 53 pushq %rbx
// 5: 48 89 d3 movq %rdx, %rbx
// 8: 49 89 f6 movq %rsi, %r14
// b: 49 89 ff movq %rdi, %r15
// e: 48 8b 7e f8 movq -0x8(%rsi), %rdi
// 12: 49 83 c6 f8 addq $-0x8, %r14
// 16: 48 3b 3d 00 00 00 00 cmpq (%rip), %rdi # 0x1d <_JIT_ENTRY+0x1d>
// 0000000000000019: R_X86_64_REX_GOTPCRELX _Py_NoneStruct-0x4
// 1d: 74 29 je 0x48 <_JIT_ENTRY+0x48>
// 1f: 48 8b 07 movq (%rdi), %rax
// 22: 85 c0 testl %eax, %eax
// 24: 78 0e js 0x34 <_JIT_ENTRY+0x34>
// 26: 48 ff c8 decq %rax
// 29: 48 89 07 movq %rax, (%rdi)
// 2c: 75 06 jne 0x34 <_JIT_ENTRY+0x34>
// 2e: ff 15 00 00 00 00 callq *(%rip) # 0x34 <_JIT_ENTRY+0x34>
// 0000000000000030: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 34: 4c 89 ff movq %r15, %rdi
// 37: 4c 89 f6 movq %r14, %rsi
// 3a: 48 89 da movq %rbx, %rdx
// 3d: 5b popq %rbx
// 3e: 41 5e popq %r14
// 40: 41 5f popq %r15
// 42: ff 25 00 00 00 00 jmpq *(%rip) # 0x48 <_JIT_ENTRY+0x48>
// 0000000000000044: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 48: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4e <_JIT_ENTRY+0x4e>
// 000000000000004a: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 4e: 48 c1 e1 04 shlq $0x4, %rcx
// 52: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x59 <_JIT_ENTRY+0x59>
// 0000000000000055: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 59: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx
// 61: 8b 11 movl (%rcx), %edx
// 63: ff c2 incl %edx
// 65: 74 14 je 0x7b <_JIT_ENTRY+0x7b>
// 67: 89 11 movl %edx, (%rcx)
// 69: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x6f <_JIT_ENTRY+0x6f>
// 000000000000006b: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 6f: 48 c1 e1 04 shlq $0x4, %rcx
// 73: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx
// 7b: 48 89 83 28 01 00 00 movq %rax, 0x128(%rbx)
// 82: 48 8b 41 70 movq 0x70(%rcx), %rax
// 86: 4c 89 ff movq %r15, %rdi
// 89: 4c 89 f6 movq %r14, %rsi
// 8c: 48 89 da movq %rbx, %rdx
// 8f: 5b popq %rbx
// 90: 41 5e popq %r14
// 92: 41 5f popq %r15
// 94: ff e0 jmpq *%rax
// 96:
static const unsigned char _GUARD_IS_NOT_NONE_POP_code_body[151] = {
0x41, 0x57, 0x41, 0x56, 0x53, 0x48, 0x89, 0xd3,
0x49, 0x89, 0xf6, 0x49, 0x89, 0xff, 0x48, 0x8b,
0x7e, 0xf8, 0x49, 0x83, 0xc6, 0xf8, 0x48, 0x3b,
0x3d, 0x00, 0x00, 0x00, 0x00, 0x74, 0x29, 0x48,
0x8b, 0x07, 0x85, 0xc0, 0x78, 0x0e, 0x48, 0xff,
0xc8, 0x48, 0x89, 0x07, 0x75, 0x06, 0xff, 0x15,
0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xff, 0x4c,
0x89, 0xf6, 0x48, 0x89, 0xda, 0x5b, 0x41, 0x5e,
0x41, 0x5f, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00,
0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0xc1,
0xe1, 0x04, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00,
0x00, 0x48, 0x8b, 0x8c, 0x08, 0x80, 0x00, 0x00,
0x00, 0x8b, 0x11, 0xff, 0xc2, 0x74, 0x14, 0x89,
0x11, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48,
0xc1, 0xe1, 0x04, 0x48, 0x8b, 0x8c, 0x08, 0x80,
0x00, 0x00, 0x00, 0x48, 0x89, 0x83, 0x28, 0x01,
0x00, 0x00, 0x48, 0x8b, 0x41, 0x70, 0x4c, 0x89,
0xff, 0x4c, 0x89, 0xf6, 0x48, 0x89, 0xda, 0x5b,
0x41, 0x5e, 0x41, 0x5f, 0xff, 0xe0,
};
static const Hole _GUARD_IS_NOT_NONE_POP_code_holes[7] = {
{0x19, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x30, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x44, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x4a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x55, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0x6b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
};
// 0:
// 0: &_Py_NoneStruct+0x0
// 8: &_Py_Dealloc+0x0
// 10: CONTINUE
// 18: TARGET
// 20: EXECUTOR
static const unsigned char _GUARD_IS_NOT_NONE_POP_data_body[41] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _GUARD_IS_NOT_NONE_POP_data_holes[6] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_NoneStruct, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _GUARD_IS_TRUE_POP
//
// /tmp/tmp2mfmnab2/_GUARD_IS_TRUE_POP.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax
// 4: 48 83 c6 f8 addq $-0x8, %rsi
// 8: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0xf <_JIT_ENTRY+0xf>
// 000000000000000b: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4
// f: 74 43 je 0x54 <_JIT_ENTRY+0x54>
// 11: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x17 <_JIT_ENTRY+0x17>
// 0000000000000013: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 17: 48 c1 e1 04 shlq $0x4, %rcx
// 1b: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x22 <_JIT_ENTRY+0x22>
// 000000000000001e: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 22: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx
// 2a: 44 8b 01 movl (%rcx), %r8d
// 2d: 41 ff c0 incl %r8d
// 30: 74 15 je 0x47 <_JIT_ENTRY+0x47>
// 32: 44 89 01 movl %r8d, (%rcx)
// 35: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x3b <_JIT_ENTRY+0x3b>
// 0000000000000037: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 3b: 48 c1 e1 04 shlq $0x4, %rcx
// 3f: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx
// 47: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 4e: 48 8b 41 70 movq 0x70(%rcx), %rax
// 52: ff e0 jmpq *%rax
// 54: ff 25 00 00 00 00 jmpq *(%rip) # 0x5a <_JIT_ENTRY+0x5a>
// 0000000000000056: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 54:
static const unsigned char _GUARD_IS_TRUE_POP_code_body[85] = {
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x83, 0xc6, 0xf8,
0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x74,
0x43, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48,
0xc1, 0xe1, 0x04, 0x48, 0x8b, 0x05, 0x00, 0x00,
0x00, 0x00, 0x48, 0x8b, 0x8c, 0x08, 0x80, 0x00,
0x00, 0x00, 0x44, 0x8b, 0x01, 0x41, 0xff, 0xc0,
0x74, 0x15, 0x44, 0x89, 0x01, 0x8b, 0x0d, 0x00,
0x00, 0x00, 0x00, 0x48, 0xc1, 0xe1, 0x04, 0x48,
0x8b, 0x8c, 0x08, 0x80, 0x00, 0x00, 0x00, 0x48,
0x89, 0x82, 0x28, 0x01, 0x00, 0x00, 0x48, 0x8b,
0x41, 0x70, 0xff, 0xe0,
};
static const Hole _GUARD_IS_TRUE_POP_code_holes[5] = {
{0xb, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x13, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x1e, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x37, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
};
// 0:
// 0: &_Py_TrueStruct+0x0
// 8: TARGET
// 10: EXECUTOR
static const unsigned char _GUARD_IS_TRUE_POP_data_body[25] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _GUARD_IS_TRUE_POP_data_holes[4] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _GUARD_KEYS_VERSION
//
// /tmp/tmp2mfmnab2/_GUARD_KEYS_VERSION.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax
// 4: 48 8b 40 08 movq 0x8(%rax), %rax
// 8: 48 8b 80 70 03 00 00 movq 0x370(%rax), %rax
// f: 8b 40 0c movl 0xc(%rax), %eax
// 12: 3b 05 00 00 00 00 cmpl (%rip), %eax # 0x18 <_JIT_ENTRY+0x18>
// 0000000000000014: R_X86_64_GOTPCRELX _JIT_OPERAND-0x4
// 18: 75 06 jne 0x20 <_JIT_ENTRY+0x20>
// 1a: ff 25 00 00 00 00 jmpq *(%rip) # 0x20 <_JIT_ENTRY+0x20>
// 000000000000001c: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 20: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x27 <_JIT_ENTRY+0x27>
// 0000000000000023: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 27: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 2e: 48 29 fe subq %rdi, %rsi
// 31: 48 83 c6 b8 addq $-0x48, %rsi
// 35: 48 c1 ee 03 shrq $0x3, %rsi
// 39: 89 77 40 movl %esi, 0x40(%rdi)
// 3c: 48 8b 07 movq (%rdi), %rax
// 3f: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x45 <_JIT_ENTRY+0x45>
// 0000000000000041: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 45: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 49: 48 05 c8 00 00 00 addq $0xc8, %rax
// 4f: c3 retq
// 50:
static const unsigned char _GUARD_KEYS_VERSION_code_body[81] = {
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x40, 0x08,
0x48, 0x8b, 0x80, 0x70, 0x03, 0x00, 0x00, 0x8b,
0x40, 0x0c, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x75, 0x06, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00,
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48,
0x89, 0x82, 0x28, 0x01, 0x00, 0x00, 0x48, 0x29,
0xfe, 0x48, 0x83, 0xc6, 0xb8, 0x48, 0xc1, 0xee,
0x03, 0x89, 0x77, 0x40, 0x48, 0x8b, 0x07, 0x8b,
0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04,
0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0xc3,
};
static const Hole _GUARD_KEYS_VERSION_code_holes[5] = {
{0x14, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x1c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x23, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x41, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
};
// 0:
// 0: OPERAND
// 8: CONTINUE
// 10: EXECUTOR
// 18: TARGET
static const unsigned char _GUARD_KEYS_VERSION_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _GUARD_KEYS_VERSION_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPERAND, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _GUARD_NOT_EXHAUSTED_LIST
//
// /tmp/tmp2mfmnab2/_GUARD_NOT_EXHAUSTED_LIST.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax
// 4: 48 8b 48 18 movq 0x18(%rax), %rcx
// 8: 48 85 c9 testq %rcx, %rcx
// b: 74 10 je 0x1d <_JIT_ENTRY+0x1d>
// d: 48 8b 40 10 movq 0x10(%rax), %rax
// 11: 48 3b 41 10 cmpq 0x10(%rcx), %rax
// 15: 73 06 jae 0x1d <_JIT_ENTRY+0x1d>
// 17: ff 25 00 00 00 00 jmpq *(%rip) # 0x1d <_JIT_ENTRY+0x1d>
// 0000000000000019: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 1d: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x24 <_JIT_ENTRY+0x24>
// 0000000000000020: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 24: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 2b: 48 29 fe subq %rdi, %rsi
// 2e: 48 83 c6 b8 addq $-0x48, %rsi
// 32: 48 c1 ee 03 shrq $0x3, %rsi
// 36: 89 77 40 movl %esi, 0x40(%rdi)
// 39: 48 8b 07 movq (%rdi), %rax
// 3c: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x42 <_JIT_ENTRY+0x42>
// 000000000000003e: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 42: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 46: 48 05 c8 00 00 00 addq $0xc8, %rax
// 4c: c3 retq
// 4d:
static const unsigned char _GUARD_NOT_EXHAUSTED_LIST_code_body[78] = {
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x48, 0x18,
0x48, 0x85, 0xc9, 0x74, 0x10, 0x48, 0x8b, 0x40,
0x10, 0x48, 0x3b, 0x41, 0x10, 0x73, 0x06, 0xff,
0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x05,
0x00, 0x00, 0x00, 0x00, 0x48, 0x89, 0x82, 0x28,
0x01, 0x00, 0x00, 0x48, 0x29, 0xfe, 0x48, 0x83,
0xc6, 0xb8, 0x48, 0xc1, 0xee, 0x03, 0x89, 0x77,
0x40, 0x48, 0x8b, 0x07, 0x8b, 0x0d, 0x00, 0x00,
0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05,
0xc8, 0x00, 0x00, 0x00, 0xc3,
};
static const Hole _GUARD_NOT_EXHAUSTED_LIST_code_holes[4] = {
{0x19, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x20, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x3e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
};
// 0:
// 0: CONTINUE
// 8: EXECUTOR
// 10: TARGET
static const unsigned char _GUARD_NOT_EXHAUSTED_LIST_data_body[25] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _GUARD_NOT_EXHAUSTED_LIST_data_holes[4] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _GUARD_NOT_EXHAUSTED_RANGE
//
// /tmp/tmp2mfmnab2/_GUARD_NOT_EXHAUSTED_RANGE.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax
// 4: 48 83 78 20 00 cmpq $0x0, 0x20(%rax)
// 9: 7e 06 jle 0x11 <_JIT_ENTRY+0x11>
// b: ff 25 00 00 00 00 jmpq *(%rip) # 0x11 <_JIT_ENTRY+0x11>
// 000000000000000d: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 11: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x18 <_JIT_ENTRY+0x18>
// 0000000000000014: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 18: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 1f: 48 29 fe subq %rdi, %rsi
// 22: 48 83 c6 b8 addq $-0x48, %rsi
// 26: 48 c1 ee 03 shrq $0x3, %rsi
// 2a: 89 77 40 movl %esi, 0x40(%rdi)
// 2d: 48 8b 07 movq (%rdi), %rax
// 30: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x36 <_JIT_ENTRY+0x36>
// 0000000000000032: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 36: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 3a: 48 05 c8 00 00 00 addq $0xc8, %rax
// 40: c3 retq
// 41:
static const unsigned char _GUARD_NOT_EXHAUSTED_RANGE_code_body[66] = {
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x83, 0x78, 0x20,
0x00, 0x7e, 0x06, 0xff, 0x25, 0x00, 0x00, 0x00,
0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x48, 0x89, 0x82, 0x28, 0x01, 0x00, 0x00, 0x48,
0x29, 0xfe, 0x48, 0x83, 0xc6, 0xb8, 0x48, 0xc1,
0xee, 0x03, 0x89, 0x77, 0x40, 0x48, 0x8b, 0x07,
0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d,
0x04, 0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, 0x00,
0xc3,
};
static const Hole _GUARD_NOT_EXHAUSTED_RANGE_code_holes[4] = {
{0xd, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x14, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x32, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
};
// 0:
// 0: CONTINUE
// 8: EXECUTOR
// 10: TARGET
static const unsigned char _GUARD_NOT_EXHAUSTED_RANGE_data_body[25] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _GUARD_NOT_EXHAUSTED_RANGE_data_holes[4] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _GUARD_NOT_EXHAUSTED_TUPLE
//
// /tmp/tmp2mfmnab2/_GUARD_NOT_EXHAUSTED_TUPLE.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax
// 4: 48 8b 48 18 movq 0x18(%rax), %rcx
// 8: 48 85 c9 testq %rcx, %rcx
// b: 74 10 je 0x1d <_JIT_ENTRY+0x1d>
// d: 48 8b 40 10 movq 0x10(%rax), %rax
// 11: 48 3b 41 10 cmpq 0x10(%rcx), %rax
// 15: 7d 06 jge 0x1d <_JIT_ENTRY+0x1d>
// 17: ff 25 00 00 00 00 jmpq *(%rip) # 0x1d <_JIT_ENTRY+0x1d>
// 0000000000000019: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 1d: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x24 <_JIT_ENTRY+0x24>
// 0000000000000020: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 24: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 2b: 48 29 fe subq %rdi, %rsi
// 2e: 48 83 c6 b8 addq $-0x48, %rsi
// 32: 48 c1 ee 03 shrq $0x3, %rsi
// 36: 89 77 40 movl %esi, 0x40(%rdi)
// 39: 48 8b 07 movq (%rdi), %rax
// 3c: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x42 <_JIT_ENTRY+0x42>
// 000000000000003e: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 42: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 46: 48 05 c8 00 00 00 addq $0xc8, %rax
// 4c: c3 retq
// 4d:
static const unsigned char _GUARD_NOT_EXHAUSTED_TUPLE_code_body[78] = {
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x48, 0x18,
0x48, 0x85, 0xc9, 0x74, 0x10, 0x48, 0x8b, 0x40,
0x10, 0x48, 0x3b, 0x41, 0x10, 0x7d, 0x06, 0xff,
0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x05,
0x00, 0x00, 0x00, 0x00, 0x48, 0x89, 0x82, 0x28,
0x01, 0x00, 0x00, 0x48, 0x29, 0xfe, 0x48, 0x83,
0xc6, 0xb8, 0x48, 0xc1, 0xee, 0x03, 0x89, 0x77,
0x40, 0x48, 0x8b, 0x07, 0x8b, 0x0d, 0x00, 0x00,
0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05,
0xc8, 0x00, 0x00, 0x00, 0xc3,
};
static const Hole _GUARD_NOT_EXHAUSTED_TUPLE_code_holes[4] = {
{0x19, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x20, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x3e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
};
// 0:
// 0: CONTINUE
// 8: EXECUTOR
// 10: TARGET
static const unsigned char _GUARD_NOT_EXHAUSTED_TUPLE_data_body[25] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _GUARD_NOT_EXHAUSTED_TUPLE_data_holes[4] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _GUARD_TYPE_VERSION
//
// /tmp/tmp2mfmnab2/_GUARD_TYPE_VERSION.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax
// 4: 48 8b 40 08 movq 0x8(%rax), %rax
// 8: 8b 80 80 01 00 00 movl 0x180(%rax), %eax
// e: 3b 05 00 00 00 00 cmpl (%rip), %eax # 0x14 <_JIT_ENTRY+0x14>
// 0000000000000010: R_X86_64_GOTPCRELX _JIT_OPERAND-0x4
// 14: 75 06 jne 0x1c <_JIT_ENTRY+0x1c>
// 16: ff 25 00 00 00 00 jmpq *(%rip) # 0x1c <_JIT_ENTRY+0x1c>
// 0000000000000018: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 1c: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x22 <_JIT_ENTRY+0x22>
// 000000000000001e: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 22: 48 c1 e1 04 shlq $0x4, %rcx
// 26: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x2d <_JIT_ENTRY+0x2d>
// 0000000000000029: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 2d: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx
// 35: 44 8b 01 movl (%rcx), %r8d
// 38: 41 ff c0 incl %r8d
// 3b: 74 15 je 0x52 <_JIT_ENTRY+0x52>
// 3d: 44 89 01 movl %r8d, (%rcx)
// 40: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x46 <_JIT_ENTRY+0x46>
// 0000000000000042: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 46: 48 c1 e1 04 shlq $0x4, %rcx
// 4a: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx
// 52: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 59: 48 8b 41 70 movq 0x70(%rcx), %rax
// 5d: ff e0 jmpq *%rax
// 5f:
static const unsigned char _GUARD_TYPE_VERSION_code_body[96] = {
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x40, 0x08,
0x8b, 0x80, 0x80, 0x01, 0x00, 0x00, 0x3b, 0x05,
0x00, 0x00, 0x00, 0x00, 0x75, 0x06, 0xff, 0x25,
0x00, 0x00, 0x00, 0x00, 0x8b, 0x0d, 0x00, 0x00,
0x00, 0x00, 0x48, 0xc1, 0xe1, 0x04, 0x48, 0x8b,
0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x8c,
0x08, 0x80, 0x00, 0x00, 0x00, 0x44, 0x8b, 0x01,
0x41, 0xff, 0xc0, 0x74, 0x15, 0x44, 0x89, 0x01,
0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0xc1,
0xe1, 0x04, 0x48, 0x8b, 0x8c, 0x08, 0x80, 0x00,
0x00, 0x00, 0x48, 0x89, 0x82, 0x28, 0x01, 0x00,
0x00, 0x48, 0x8b, 0x41, 0x70, 0xff, 0xe0,
};
static const Hole _GUARD_TYPE_VERSION_code_holes[6] = {
{0x10, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x18, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x1e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x29, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x42, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
};
// 0:
// 0: OPERAND
// 8: CONTINUE
// 10: TARGET
// 18: EXECUTOR
static const unsigned char _GUARD_TYPE_VERSION_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _GUARD_TYPE_VERSION_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPERAND, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _INIT_CALL_BOUND_METHOD_EXACT_ARGS
//
// /tmp/tmp2mfmnab2/_INIT_CALL_BOUND_METHOD_EXACT_ARGS.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 f6 movq %rsi, %r14
// e: 49 89 ff movq %rdi, %r15
// 11: 0f b7 2d 00 00 00 00 movzwl (%rip), %ebp # 0x18 <_JIT_ENTRY+0x18>
// 0000000000000014: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 18: b8 fe ff ff ff movl $0xfffffffe, %eax # imm = 0xFFFFFFFE
// 1d: 29 e8 subl %ebp, %eax
// 1f: 48 98 cltq
// 21: 48 8b 3c c6 movq (%rsi,%rax,8), %rdi
// 25: 4c 8b 67 18 movq 0x18(%rdi), %r12
// 29: 41 8b 04 24 movl (%r12), %eax
// 2d: ff c0 incl %eax
// 2f: 74 04 je 0x35 <_JIT_ENTRY+0x35>
// 31: 41 89 04 24 movl %eax, (%r12)
// 35: 8b 05 00 00 00 00 movl (%rip), %eax # 0x3b <_JIT_ENTRY+0x3b>
// 0000000000000037: R_X86_64_GOTPCRELX _JIT_OPARG-0x4
// 3b: f7 d0 notl %eax
// 3d: 0d 00 00 ff ff orl $0xffff0000, %eax # imm = 0xFFFF0000
// 42: 48 98 cltq
// 44: 4d 89 24 c6 movq %r12, (%r14,%rax,8)
// 48: 4c 8b 6f 10 movq 0x10(%rdi), %r13
// 4c: 41 8b 45 00 movl (%r13), %eax
// 50: ff c0 incl %eax
// 52: 74 04 je 0x58 <_JIT_ENTRY+0x58>
// 54: 41 89 45 00 movl %eax, (%r13)
// 58: b8 fe ff ff ff movl $0xfffffffe, %eax # imm = 0xFFFFFFFE
// 5d: 29 e8 subl %ebp, %eax
// 5f: 48 63 d8 movslq %eax, %rbx
// 62: 4d 89 2c de movq %r13, (%r14,%rbx,8)
// 66: 48 8b 07 movq (%rdi), %rax
// 69: 85 c0 testl %eax, %eax
// 6b: 78 16 js 0x83 <_JIT_ENTRY+0x83>
// 6d: 48 ff c8 decq %rax
// 70: 48 89 07 movq %rax, (%rdi)
// 73: 75 0e jne 0x83 <_JIT_ENTRY+0x83>
// 75: 48 89 14 24 movq %rdx, (%rsp)
// 79: ff 15 00 00 00 00 callq *(%rip) # 0x7f <_JIT_ENTRY+0x7f>
// 000000000000007b: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 7f: 48 8b 14 24 movq (%rsp), %rdx
// 83: 4d 89 2c de movq %r13, (%r14,%rbx,8)
// 87: f7 d5 notl %ebp
// 89: 48 63 c5 movslq %ebp, %rax
// 8c: 4d 89 24 c6 movq %r12, (%r14,%rax,8)
// 90: 4c 89 ff movq %r15, %rdi
// 93: 4c 89 f6 movq %r14, %rsi
// 96: 48 83 c4 08 addq $0x8, %rsp
// 9a: 5b popq %rbx
// 9b: 41 5c popq %r12
// 9d: 41 5d popq %r13
// 9f: 41 5e popq %r14
// a1: 41 5f popq %r15
// a3: 5d popq %rbp
// a4: ff 25 00 00 00 00 jmpq *(%rip) # 0xaa <_JIT_ENTRY+0xaa>
// 00000000000000a6: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// a4:
static const unsigned char _INIT_CALL_BOUND_METHOD_EXACT_ARGS_code_body[165] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xf6, 0x49, 0x89,
0xff, 0x0f, 0xb7, 0x2d, 0x00, 0x00, 0x00, 0x00,
0xb8, 0xfe, 0xff, 0xff, 0xff, 0x29, 0xe8, 0x48,
0x98, 0x48, 0x8b, 0x3c, 0xc6, 0x4c, 0x8b, 0x67,
0x18, 0x41, 0x8b, 0x04, 0x24, 0xff, 0xc0, 0x74,
0x04, 0x41, 0x89, 0x04, 0x24, 0x8b, 0x05, 0x00,
0x00, 0x00, 0x00, 0xf7, 0xd0, 0x0d, 0x00, 0x00,
0xff, 0xff, 0x48, 0x98, 0x4d, 0x89, 0x24, 0xc6,
0x4c, 0x8b, 0x6f, 0x10, 0x41, 0x8b, 0x45, 0x00,
0xff, 0xc0, 0x74, 0x04, 0x41, 0x89, 0x45, 0x00,
0xb8, 0xfe, 0xff, 0xff, 0xff, 0x29, 0xe8, 0x48,
0x63, 0xd8, 0x4d, 0x89, 0x2c, 0xde, 0x48, 0x8b,
0x07, 0x85, 0xc0, 0x78, 0x16, 0x48, 0xff, 0xc8,
0x48, 0x89, 0x07, 0x75, 0x0e, 0x48, 0x89, 0x14,
0x24, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48,
0x8b, 0x14, 0x24, 0x4d, 0x89, 0x2c, 0xde, 0xf7,
0xd5, 0x48, 0x63, 0xc5, 0x4d, 0x89, 0x24, 0xc6,
0x4c, 0x89, 0xff, 0x4c, 0x89, 0xf6, 0x48, 0x83,
0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41,
0x5e, 0x41, 0x5f, 0x5d,
};
static const Hole _INIT_CALL_BOUND_METHOD_EXACT_ARGS_code_holes[4] = {
{0x14, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x37, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x7b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
};
// 0:
// 0: OPARG
// 8: &_Py_Dealloc+0x0
static const unsigned char _INIT_CALL_BOUND_METHOD_EXACT_ARGS_data_body[17] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _INIT_CALL_BOUND_METHOD_EXACT_ARGS_data_holes[3] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
};
// _INIT_CALL_PY_EXACT_ARGS
//
// /tmp/tmp2mfmnab2/_INIT_CALL_PY_EXACT_ARGS.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0x11 <_JIT_ENTRY+0x11>
// 000000000000000d: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 11: 89 c8 movl %ecx, %eax
// 13: f7 d0 notl %eax
// 15: 48 98 cltq
// 17: 41 b8 fe ff ff ff movl $0xfffffffe, %r8d # imm = 0xFFFFFFFE
// 1d: 41 29 c8 subl %ecx, %r8d
// 20: 4d 63 c0 movslq %r8d, %r8
// 23: 4e 8b 0c c6 movq (%rsi,%r8,8), %r9
// 27: 48 8b 1c c6 movq (%rsi,%rax,8), %rbx
// 2b: 4d 8b 59 30 movq 0x30(%r9), %r11
// 2f: 4c 8b 82 08 01 00 00 movq 0x108(%rdx), %r8
// 36: 4d 63 53 4c movslq 0x4c(%r11), %r10
// 3a: 4f 8d 14 d0 leaq (%r8,%r10,8), %r10
// 3e: 4c 89 92 08 01 00 00 movq %r10, 0x108(%rdx)
// 45: 4d 89 48 10 movq %r9, 0x10(%r8)
// 49: 45 8b 13 movl (%r11), %r10d
// 4c: 41 ff c2 incl %r10d
// 4f: 48 85 db testq %rbx, %rbx
// 52: 0f 84 8a 00 00 00 je 0xe2 <_JIT_ENTRY+0xe2>
// 58: 45 85 d2 testl %r10d, %r10d
// 5b: 74 03 je 0x60 <_JIT_ENTRY+0x60>
// 5d: 45 89 13 movl %r10d, (%r11)
// 60: 4d 89 18 movq %r11, (%r8)
// 63: 41 0f 10 41 10 movups 0x10(%r9), %xmm0
// 68: 41 0f 11 40 18 movups %xmm0, 0x18(%r8)
// 6d: 49 c7 40 28 00 00 00 00 movq $0x0, 0x28(%r8)
// 75: 4d 63 53 48 movslq 0x48(%r11), %r10
// 79: 45 89 50 40 movl %r10d, 0x40(%r8)
// 7d: 49 c7 40 30 00 00 00 00 movq $0x0, 0x30(%r8)
// 85: 49 81 c3 c8 00 00 00 addq $0xc8, %r11
// 8c: 4d 89 58 38 movq %r11, 0x38(%r8)
// 90: 66 41 c7 40 44 00 00 movw $0x0, 0x44(%r8)
// 97: 41 c6 40 46 00 movb $0x0, 0x46(%r8)
// 9c: 8b 1d 00 00 00 00 movl (%rip), %ebx # 0xa2 <_JIT_ENTRY+0xa2>
// 000000000000009e: R_X86_64_GOTPCRELX _JIT_OPARG-0x4
// a2: 41 89 d9 movl %ebx, %r9d
// a5: 41 f7 d1 notl %r9d
// a8: 44 0f b7 db movzwl %bx, %r11d
// ac: 41 ff c3 incl %r11d
// af: 45 85 db testl %r11d, %r11d
// b2: 40 0f 9f c5 setg %bpl
// b6: 45 39 da cmpl %r11d, %r10d
// b9: 0f 8e 78 01 00 00 jle 0x237 <_JIT_ENTRY+0x237>
// bf: 4d 89 cf movq %r9, %r15
// c2: 49 81 cf 00 00 ff ff orq $-0x10000, %r15 # imm = 0xFFFF0000
// c9: 4d 01 d7 addq %r10, %r15
// cc: 49 83 ff 04 cmpq $0x4, %r15
// d0: 0f 83 0d 01 00 00 jae 0x1e3 <_JIT_ENTRY+0x1e3>
// d6: 44 0f b7 f3 movzwl %bx, %r14d
// da: 41 ff c6 incl %r14d
// dd: e9 6c 01 00 00 jmp 0x24e <_JIT_ENTRY+0x24e>
// e2: 45 85 d2 testl %r10d, %r10d
// e5: 74 03 je 0xea <_JIT_ENTRY+0xea>
// e7: 45 89 13 movl %r10d, (%r11)
// ea: 4d 89 18 movq %r11, (%r8)
// ed: 41 0f 10 41 10 movups 0x10(%r9), %xmm0
// f2: 41 0f 11 40 18 movups %xmm0, 0x18(%r8)
// f7: 49 c7 40 28 00 00 00 00 movq $0x0, 0x28(%r8)
// ff: 4d 63 4b 48 movslq 0x48(%r11), %r9
// 103: 45 89 48 40 movl %r9d, 0x40(%r8)
// 107: 49 c7 40 30 00 00 00 00 movq $0x0, 0x30(%r8)
// 10f: 49 81 c3 c8 00 00 00 addq $0xc8, %r11
// 116: 4d 89 58 38 movq %r11, 0x38(%r8)
// 11a: 66 41 c7 40 44 00 00 movw $0x0, 0x44(%r8)
// 121: 41 c6 40 46 00 movb $0x0, 0x46(%r8)
// 126: 4c 8b 15 00 00 00 00 movq (%rip), %r10 # 0x12d <_JIT_ENTRY+0x12d>
// 0000000000000129: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 12d: 45 0f b7 da movzwl %r10w, %r11d
// 131: 45 85 db testl %r11d, %r11d
// 134: 40 0f 9f c5 setg %bpl
// 138: 45 39 d9 cmpl %r11d, %r9d
// 13b: 0f 8e 88 00 00 00 jle 0x1c9 <_JIT_ENTRY+0x1c9>
// 141: 44 0f b7 15 00 00 00 00 movzwl (%rip), %r10d # 0x149 <_JIT_ENTRY+0x149>
// 0000000000000145: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 149: 4c 89 cb movq %r9, %rbx
// 14c: 4c 29 d3 subq %r10, %rbx
// 14f: 48 83 fb 04 cmpq $0x4, %rbx
// 153: 0f 82 dc 01 00 00 jb 0x335 <_JIT_ENTRY+0x335>
// 159: 49 89 de movq %rbx, %r14
// 15c: 49 83 e6 fc andq $-0x4, %r14
// 160: 44 0f b7 1d 00 00 00 00 movzwl (%rip), %r11d # 0x168 <_JIT_ENTRY+0x168>
// 0000000000000164: R_X86_64_GOTPCREL _JIT_OPARG-0x4
// 168: 4f 8d 14 1e leaq (%r14,%r11), %r10
// 16c: 4f 8d 1c d8 leaq (%r8,%r11,8), %r11
// 170: 49 83 c3 58 addq $0x58, %r11
// 174: 45 31 ff xorl %r15d, %r15d
// 177: 0f 57 c0 xorps %xmm0, %xmm0
// 17a: 66 0f 1f 44 00 00 nopw (%rax,%rax)
// 180: 43 0f 11 44 fb f0 movups %xmm0, -0x10(%r11,%r15,8)
// 186: 43 0f 11 04 fb movups %xmm0, (%r11,%r15,8)
// 18b: 49 83 c7 04 addq $0x4, %r15
// 18f: 4d 39 fe cmpq %r15, %r14
// 192: 75 ec jne 0x180 <_JIT_ENTRY+0x180>
// 194: 4c 8b 3d 00 00 00 00 movq (%rip), %r15 # 0x19b <_JIT_ENTRY+0x19b>
// 0000000000000197: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 19b: 45 0f b7 df movzwl %r15w, %r11d
// 19f: 45 85 db testl %r11d, %r11d
// 1a2: 40 0f 9f c5 setg %bpl
// 1a6: 4c 39 f3 cmpq %r14, %rbx
// 1a9: 0f 85 86 01 00 00 jne 0x335 <_JIT_ENTRY+0x335>
// 1af: 45 0f b7 cf movzwl %r15w, %r9d
// 1b3: 49 f7 d9 negq %r9
// 1b6: 48 8d 04 c6 leaq (%rsi,%rax,8), %rax
// 1ba: 40 f6 c5 01 testb $0x1, %bpl
// 1be: 0f 85 c9 00 00 00 jne 0x28d <_JIT_ENTRY+0x28d>
// 1c4: e9 f0 01 00 00 jmp 0x3b9 <_JIT_ENTRY+0x3b9>
// 1c9: 45 0f b7 ca movzwl %r10w, %r9d
// 1cd: 49 f7 d9 negq %r9
// 1d0: 48 8d 04 c6 leaq (%rsi,%rax,8), %rax
// 1d4: 40 f6 c5 01 testb $0x1, %bpl
// 1d8: 0f 85 af 00 00 00 jne 0x28d <_JIT_ENTRY+0x28d>
// 1de: e9 d6 01 00 00 jmp 0x3b9 <_JIT_ENTRY+0x3b9>
// 1e3: 4d 89 fc movq %r15, %r12
// 1e6: 49 83 e4 fc andq $-0x4, %r12
// 1ea: 4c 8b 1d 00 00 00 00 movq (%rip), %r11 # 0x1f1 <_JIT_ENTRY+0x1f1>
// 00000000000001ed: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 1f1: 45 0f b7 f3 movzwl %r11w, %r14d
// 1f5: 41 ff c6 incl %r14d
// 1f8: 4d 01 e6 addq %r12, %r14
// 1fb: 45 0f b7 db movzwl %r11w, %r11d
// 1ff: 4f 8d 1c d8 leaq (%r8,%r11,8), %r11
// 203: 49 83 c3 60 addq $0x60, %r11
// 207: 45 31 ed xorl %r13d, %r13d
// 20a: 0f 57 c0 xorps %xmm0, %xmm0
// 20d: 0f 1f 00 nopl (%rax)
// 210: 43 0f 11 44 eb f0 movups %xmm0, -0x10(%r11,%r13,8)
// 216: 43 0f 11 04 eb movups %xmm0, (%r11,%r13,8)
// 21b: 49 83 c5 04 addq $0x4, %r13
// 21f: 4d 39 ec cmpq %r13, %r12
// 222: 75 ec jne 0x210 <_JIT_ENTRY+0x210>
// 224: 44 0f b7 db movzwl %bx, %r11d
// 228: 41 ff c3 incl %r11d
// 22b: 45 85 db testl %r11d, %r11d
// 22e: 40 0f 9f c5 setg %bpl
// 232: 4d 39 e7 cmpq %r12, %r15
// 235: 75 17 jne 0x24e <_JIT_ENTRY+0x24e>
// 237: 49 81 c9 00 00 ff ff orq $-0x10000, %r9 # imm = 0xFFFF0000
// 23e: 48 8d 04 c6 leaq (%rsi,%rax,8), %rax
// 242: 40 f6 c5 01 testb $0x1, %bpl
// 246: 0f 84 6d 01 00 00 je 0x3b9 <_JIT_ENTRY+0x3b9>
// 24c: eb 3f jmp 0x28d <_JIT_ENTRY+0x28d>
// 24e: 49 81 c9 00 00 ff ff orq $-0x10000, %r9 # imm = 0xFFFF0000
// 255: 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax)
// 260: 4b c7 44 f0 48 00 00 00 00 movq $0x0, 0x48(%r8,%r14,8)
// 269: 49 ff c6 incq %r14
// 26c: 44 0f b7 db movzwl %bx, %r11d
// 270: 41 ff c3 incl %r11d
// 273: 45 85 db testl %r11d, %r11d
// 276: 40 0f 9f c5 setg %bpl
// 27a: 4d 39 f2 cmpq %r14, %r10
// 27d: 75 e1 jne 0x260 <_JIT_ENTRY+0x260>
// 27f: 48 8d 04 c6 leaq (%rsi,%rax,8), %rax
// 283: 40 f6 c5 01 testb $0x1, %bpl
// 287: 0f 84 2c 01 00 00 je 0x3b9 <_JIT_ENTRY+0x3b9>
// 28d: 4a 8d 1c ce leaq (%rsi,%r9,8), %rbx
// 291: 41 83 fb 02 cmpl $0x2, %r11d
// 295: 41 ba 01 00 00 00 movl $0x1, %r10d
// 29b: 45 0f 4d d3 cmovgel %r11d, %r10d
// 29f: 41 83 fa 0e cmpl $0xe, %r10d
// 2a3: 72 14 jb 0x2b9 <_JIT_ENTRY+0x2b9>
// 2a5: 4d 89 c3 movq %r8, %r11
// 2a8: 49 29 db subq %rbx, %r11
// 2ab: 49 83 c3 48 addq $0x48, %r11
// 2af: 49 83 fb 20 cmpq $0x20, %r11
// 2b3: 0f 83 ba 00 00 00 jae 0x373 <_JIT_ENTRY+0x373>
// 2b9: 45 31 db xorl %r11d, %r11d
// 2bc: 4d 89 de movq %r11, %r14
// 2bf: 49 f7 d6 notq %r14
// 2c2: 4d 01 d6 addq %r10, %r14
// 2c5: 4d 89 d7 movq %r10, %r15
// 2c8: 49 83 e7 03 andq $0x3, %r15
// 2cc: 74 13 je 0x2e1 <_JIT_ENTRY+0x2e1>
// 2ce: 66 90 nop
// 2d0: 4e 8b 24 db movq (%rbx,%r11,8), %r12
// 2d4: 4f 89 64 d8 48 movq %r12, 0x48(%r8,%r11,8)
// 2d9: 49 ff c3 incq %r11
// 2dc: 49 ff cf decq %r15
// 2df: 75 ef jne 0x2d0 <_JIT_ENTRY+0x2d0>
// 2e1: 49 83 fe 03 cmpq $0x3, %r14
// 2e5: 0f 82 ce 00 00 00 jb 0x3b9 <_JIT_ENTRY+0x3b9>
// 2eb: 4e 8d 0c ce leaq (%rsi,%r9,8), %r9
// 2ef: 49 83 c1 18 addq $0x18, %r9
// 2f3: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax)
// 300: 4b 8b 5c d9 e8 movq -0x18(%r9,%r11,8), %rbx
// 305: 4b 89 5c d8 48 movq %rbx, 0x48(%r8,%r11,8)
// 30a: 4b 8b 5c d9 f0 movq -0x10(%r9,%r11,8), %rbx
// 30f: 4b 89 5c d8 50 movq %rbx, 0x50(%r8,%r11,8)
// 314: 4b 8b 5c d9 f8 movq -0x8(%r9,%r11,8), %rbx
// 319: 4b 89 5c d8 58 movq %rbx, 0x58(%r8,%r11,8)
// 31e: 4b 8b 1c d9 movq (%r9,%r11,8), %rbx
// 322: 4b 89 5c d8 60 movq %rbx, 0x60(%r8,%r11,8)
// 327: 49 83 c3 04 addq $0x4, %r11
// 32b: 4d 39 da cmpq %r11, %r10
// 32e: 75 d0 jne 0x300 <_JIT_ENTRY+0x300>
// 330: e9 84 00 00 00 jmp 0x3b9 <_JIT_ENTRY+0x3b9>
// 335: 48 8b 1d 00 00 00 00 movq (%rip), %rbx # 0x33c <_JIT_ENTRY+0x33c>
// 0000000000000338: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 33c: 0f 1f 40 00 nopl (%rax)
// 340: 4b c7 44 d0 48 00 00 00 00 movq $0x0, 0x48(%r8,%r10,8)
// 349: 49 ff c2 incq %r10
// 34c: 44 0f b7 db movzwl %bx, %r11d
// 350: 45 85 db testl %r11d, %r11d
// 353: 40 0f 9f c5 setg %bpl
// 357: 4d 39 d1 cmpq %r10, %r9
// 35a: 75 e4 jne 0x340 <_JIT_ENTRY+0x340>
// 35c: 44 0f b7 cb movzwl %bx, %r9d
// 360: 49 f7 d9 negq %r9
// 363: 48 8d 04 c6 leaq (%rsi,%rax,8), %rax
// 367: 40 f6 c5 01 testb $0x1, %bpl
// 36b: 0f 85 1c ff ff ff jne 0x28d <_JIT_ENTRY+0x28d>
// 371: eb 46 jmp 0x3b9 <_JIT_ENTRY+0x3b9>
// 373: 4e 8d 34 cd 00 00 00 00 leaq (,%r9,8), %r14
// 37b: 45 89 d3 movl %r10d, %r11d
// 37e: 41 81 e3 fc ff ff 7f andl $0x7ffffffc, %r11d # imm = 0x7FFFFFFC
// 385: 49 01 f6 addq %rsi, %r14
// 388: 49 83 c6 10 addq $0x10, %r14
// 38c: 45 31 ff xorl %r15d, %r15d
// 38f: 90 nop
// 390: 43 0f 10 44 fe f0 movups -0x10(%r14,%r15,8), %xmm0
// 396: 43 0f 10 0c fe movups (%r14,%r15,8), %xmm1
// 39b: 43 0f 11 44 f8 48 movups %xmm0, 0x48(%r8,%r15,8)
// 3a1: 43 0f 11 4c f8 58 movups %xmm1, 0x58(%r8,%r15,8)
// 3a7: 49 83 c7 04 addq $0x4, %r15
// 3ab: 4d 39 fb cmpq %r15, %r11
// 3ae: 75 e0 jne 0x390 <_JIT_ENTRY+0x390>
// 3b0: 4d 39 d3 cmpq %r10, %r11
// 3b3: 0f 85 03 ff ff ff jne 0x2bc <_JIT_ENTRY+0x2bc>
// 3b9: 41 b9 fe ff ff ff movl $0xfffffffe, %r9d # imm = 0xFFFFFFFE
// 3bf: 41 29 c9 subl %ecx, %r9d
// 3c2: 49 63 c9 movslq %r9d, %rcx
// 3c5: 4c 89 04 ce movq %r8, (%rsi,%rcx,8)
// 3c9: 48 89 c6 movq %rax, %rsi
// 3cc: 5b popq %rbx
// 3cd: 41 5c popq %r12
// 3cf: 41 5d popq %r13
// 3d1: 41 5e popq %r14
// 3d3: 41 5f popq %r15
// 3d5: 5d popq %rbp
// 3d6: ff 25 00 00 00 00 jmpq *(%rip) # 0x3dc <_JIT_ENTRY+0x3dc>
// 00000000000003d8: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 3d6:
static const unsigned char _INIT_CALL_PY_EXACT_ARGS_code_body[983] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x0f, 0xb7, 0x0d, 0x00, 0x00, 0x00,
0x00, 0x89, 0xc8, 0xf7, 0xd0, 0x48, 0x98, 0x41,
0xb8, 0xfe, 0xff, 0xff, 0xff, 0x41, 0x29, 0xc8,
0x4d, 0x63, 0xc0, 0x4e, 0x8b, 0x0c, 0xc6, 0x48,
0x8b, 0x1c, 0xc6, 0x4d, 0x8b, 0x59, 0x30, 0x4c,
0x8b, 0x82, 0x08, 0x01, 0x00, 0x00, 0x4d, 0x63,
0x53, 0x4c, 0x4f, 0x8d, 0x14, 0xd0, 0x4c, 0x89,
0x92, 0x08, 0x01, 0x00, 0x00, 0x4d, 0x89, 0x48,
0x10, 0x45, 0x8b, 0x13, 0x41, 0xff, 0xc2, 0x48,
0x85, 0xdb, 0x0f, 0x84, 0x8a, 0x00, 0x00, 0x00,
0x45, 0x85, 0xd2, 0x74, 0x03, 0x45, 0x89, 0x13,
0x4d, 0x89, 0x18, 0x41, 0x0f, 0x10, 0x41, 0x10,
0x41, 0x0f, 0x11, 0x40, 0x18, 0x49, 0xc7, 0x40,
0x28, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x63, 0x53,
0x48, 0x45, 0x89, 0x50, 0x40, 0x49, 0xc7, 0x40,
0x30, 0x00, 0x00, 0x00, 0x00, 0x49, 0x81, 0xc3,
0xc8, 0x00, 0x00, 0x00, 0x4d, 0x89, 0x58, 0x38,
0x66, 0x41, 0xc7, 0x40, 0x44, 0x00, 0x00, 0x41,
0xc6, 0x40, 0x46, 0x00, 0x8b, 0x1d, 0x00, 0x00,
0x00, 0x00, 0x41, 0x89, 0xd9, 0x41, 0xf7, 0xd1,
0x44, 0x0f, 0xb7, 0xdb, 0x41, 0xff, 0xc3, 0x45,
0x85, 0xdb, 0x40, 0x0f, 0x9f, 0xc5, 0x45, 0x39,
0xda, 0x0f, 0x8e, 0x78, 0x01, 0x00, 0x00, 0x4d,
0x89, 0xcf, 0x49, 0x81, 0xcf, 0x00, 0x00, 0xff,
0xff, 0x4d, 0x01, 0xd7, 0x49, 0x83, 0xff, 0x04,
0x0f, 0x83, 0x0d, 0x01, 0x00, 0x00, 0x44, 0x0f,
0xb7, 0xf3, 0x41, 0xff, 0xc6, 0xe9, 0x6c, 0x01,
0x00, 0x00, 0x45, 0x85, 0xd2, 0x74, 0x03, 0x45,
0x89, 0x13, 0x4d, 0x89, 0x18, 0x41, 0x0f, 0x10,
0x41, 0x10, 0x41, 0x0f, 0x11, 0x40, 0x18, 0x49,
0xc7, 0x40, 0x28, 0x00, 0x00, 0x00, 0x00, 0x4d,
0x63, 0x4b, 0x48, 0x45, 0x89, 0x48, 0x40, 0x49,
0xc7, 0x40, 0x30, 0x00, 0x00, 0x00, 0x00, 0x49,
0x81, 0xc3, 0xc8, 0x00, 0x00, 0x00, 0x4d, 0x89,
0x58, 0x38, 0x66, 0x41, 0xc7, 0x40, 0x44, 0x00,
0x00, 0x41, 0xc6, 0x40, 0x46, 0x00, 0x4c, 0x8b,
0x15, 0x00, 0x00, 0x00, 0x00, 0x45, 0x0f, 0xb7,
0xda, 0x45, 0x85, 0xdb, 0x40, 0x0f, 0x9f, 0xc5,
0x45, 0x39, 0xd9, 0x0f, 0x8e, 0x88, 0x00, 0x00,
0x00, 0x44, 0x0f, 0xb7, 0x15, 0x00, 0x00, 0x00,
0x00, 0x4c, 0x89, 0xcb, 0x4c, 0x29, 0xd3, 0x48,
0x83, 0xfb, 0x04, 0x0f, 0x82, 0xdc, 0x01, 0x00,
0x00, 0x49, 0x89, 0xde, 0x49, 0x83, 0xe6, 0xfc,
0x44, 0x0f, 0xb7, 0x1d, 0x00, 0x00, 0x00, 0x00,
0x4f, 0x8d, 0x14, 0x1e, 0x4f, 0x8d, 0x1c, 0xd8,
0x49, 0x83, 0xc3, 0x58, 0x45, 0x31, 0xff, 0x0f,
0x57, 0xc0, 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00,
0x43, 0x0f, 0x11, 0x44, 0xfb, 0xf0, 0x43, 0x0f,
0x11, 0x04, 0xfb, 0x49, 0x83, 0xc7, 0x04, 0x4d,
0x39, 0xfe, 0x75, 0xec, 0x4c, 0x8b, 0x3d, 0x00,
0x00, 0x00, 0x00, 0x45, 0x0f, 0xb7, 0xdf, 0x45,
0x85, 0xdb, 0x40, 0x0f, 0x9f, 0xc5, 0x4c, 0x39,
0xf3, 0x0f, 0x85, 0x86, 0x01, 0x00, 0x00, 0x45,
0x0f, 0xb7, 0xcf, 0x49, 0xf7, 0xd9, 0x48, 0x8d,
0x04, 0xc6, 0x40, 0xf6, 0xc5, 0x01, 0x0f, 0x85,
0xc9, 0x00, 0x00, 0x00, 0xe9, 0xf0, 0x01, 0x00,
0x00, 0x45, 0x0f, 0xb7, 0xca, 0x49, 0xf7, 0xd9,
0x48, 0x8d, 0x04, 0xc6, 0x40, 0xf6, 0xc5, 0x01,
0x0f, 0x85, 0xaf, 0x00, 0x00, 0x00, 0xe9, 0xd6,
0x01, 0x00, 0x00, 0x4d, 0x89, 0xfc, 0x49, 0x83,
0xe4, 0xfc, 0x4c, 0x8b, 0x1d, 0x00, 0x00, 0x00,
0x00, 0x45, 0x0f, 0xb7, 0xf3, 0x41, 0xff, 0xc6,
0x4d, 0x01, 0xe6, 0x45, 0x0f, 0xb7, 0xdb, 0x4f,
0x8d, 0x1c, 0xd8, 0x49, 0x83, 0xc3, 0x60, 0x45,
0x31, 0xed, 0x0f, 0x57, 0xc0, 0x0f, 0x1f, 0x00,
0x43, 0x0f, 0x11, 0x44, 0xeb, 0xf0, 0x43, 0x0f,
0x11, 0x04, 0xeb, 0x49, 0x83, 0xc5, 0x04, 0x4d,
0x39, 0xec, 0x75, 0xec, 0x44, 0x0f, 0xb7, 0xdb,
0x41, 0xff, 0xc3, 0x45, 0x85, 0xdb, 0x40, 0x0f,
0x9f, 0xc5, 0x4d, 0x39, 0xe7, 0x75, 0x17, 0x49,
0x81, 0xc9, 0x00, 0x00, 0xff, 0xff, 0x48, 0x8d,
0x04, 0xc6, 0x40, 0xf6, 0xc5, 0x01, 0x0f, 0x84,
0x6d, 0x01, 0x00, 0x00, 0xeb, 0x3f, 0x49, 0x81,
0xc9, 0x00, 0x00, 0xff, 0xff, 0x66, 0x66, 0x2e,
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00,
0x4b, 0xc7, 0x44, 0xf0, 0x48, 0x00, 0x00, 0x00,
0x00, 0x49, 0xff, 0xc6, 0x44, 0x0f, 0xb7, 0xdb,
0x41, 0xff, 0xc3, 0x45, 0x85, 0xdb, 0x40, 0x0f,
0x9f, 0xc5, 0x4d, 0x39, 0xf2, 0x75, 0xe1, 0x48,
0x8d, 0x04, 0xc6, 0x40, 0xf6, 0xc5, 0x01, 0x0f,
0x84, 0x2c, 0x01, 0x00, 0x00, 0x4a, 0x8d, 0x1c,
0xce, 0x41, 0x83, 0xfb, 0x02, 0x41, 0xba, 0x01,
0x00, 0x00, 0x00, 0x45, 0x0f, 0x4d, 0xd3, 0x41,
0x83, 0xfa, 0x0e, 0x72, 0x14, 0x4d, 0x89, 0xc3,
0x49, 0x29, 0xdb, 0x49, 0x83, 0xc3, 0x48, 0x49,
0x83, 0xfb, 0x20, 0x0f, 0x83, 0xba, 0x00, 0x00,
0x00, 0x45, 0x31, 0xdb, 0x4d, 0x89, 0xde, 0x49,
0xf7, 0xd6, 0x4d, 0x01, 0xd6, 0x4d, 0x89, 0xd7,
0x49, 0x83, 0xe7, 0x03, 0x74, 0x13, 0x66, 0x90,
0x4e, 0x8b, 0x24, 0xdb, 0x4f, 0x89, 0x64, 0xd8,
0x48, 0x49, 0xff, 0xc3, 0x49, 0xff, 0xcf, 0x75,
0xef, 0x49, 0x83, 0xfe, 0x03, 0x0f, 0x82, 0xce,
0x00, 0x00, 0x00, 0x4e, 0x8d, 0x0c, 0xce, 0x49,
0x83, 0xc1, 0x18, 0x66, 0x66, 0x66, 0x66, 0x2e,
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00,
0x4b, 0x8b, 0x5c, 0xd9, 0xe8, 0x4b, 0x89, 0x5c,
0xd8, 0x48, 0x4b, 0x8b, 0x5c, 0xd9, 0xf0, 0x4b,
0x89, 0x5c, 0xd8, 0x50, 0x4b, 0x8b, 0x5c, 0xd9,
0xf8, 0x4b, 0x89, 0x5c, 0xd8, 0x58, 0x4b, 0x8b,
0x1c, 0xd9, 0x4b, 0x89, 0x5c, 0xd8, 0x60, 0x49,
0x83, 0xc3, 0x04, 0x4d, 0x39, 0xda, 0x75, 0xd0,
0xe9, 0x84, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x1d,
0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x40, 0x00,
0x4b, 0xc7, 0x44, 0xd0, 0x48, 0x00, 0x00, 0x00,
0x00, 0x49, 0xff, 0xc2, 0x44, 0x0f, 0xb7, 0xdb,
0x45, 0x85, 0xdb, 0x40, 0x0f, 0x9f, 0xc5, 0x4d,
0x39, 0xd1, 0x75, 0xe4, 0x44, 0x0f, 0xb7, 0xcb,
0x49, 0xf7, 0xd9, 0x48, 0x8d, 0x04, 0xc6, 0x40,
0xf6, 0xc5, 0x01, 0x0f, 0x85, 0x1c, 0xff, 0xff,
0xff, 0xeb, 0x46, 0x4e, 0x8d, 0x34, 0xcd, 0x00,
0x00, 0x00, 0x00, 0x45, 0x89, 0xd3, 0x41, 0x81,
0xe3, 0xfc, 0xff, 0xff, 0x7f, 0x49, 0x01, 0xf6,
0x49, 0x83, 0xc6, 0x10, 0x45, 0x31, 0xff, 0x90,
0x43, 0x0f, 0x10, 0x44, 0xfe, 0xf0, 0x43, 0x0f,
0x10, 0x0c, 0xfe, 0x43, 0x0f, 0x11, 0x44, 0xf8,
0x48, 0x43, 0x0f, 0x11, 0x4c, 0xf8, 0x58, 0x49,
0x83, 0xc7, 0x04, 0x4d, 0x39, 0xfb, 0x75, 0xe0,
0x4d, 0x39, 0xd3, 0x0f, 0x85, 0x03, 0xff, 0xff,
0xff, 0x41, 0xb9, 0xfe, 0xff, 0xff, 0xff, 0x41,
0x29, 0xc9, 0x49, 0x63, 0xc9, 0x4c, 0x89, 0x04,
0xce, 0x48, 0x89, 0xc6, 0x5b, 0x41, 0x5c, 0x41,
0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d,
};
static const Hole _INIT_CALL_PY_EXACT_ARGS_code_holes[9] = {
{0xd, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x9e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x129, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x145, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x164, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x197, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x1ed, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x338, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
};
// 0:
// 0: OPARG
static const unsigned char _INIT_CALL_PY_EXACT_ARGS_data_body[9] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _INIT_CALL_PY_EXACT_ARGS_data_holes[2] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
};
// _INIT_CALL_PY_EXACT_ARGS_0
//
// /tmp/tmp2mfmnab2/_INIT_CALL_PY_EXACT_ARGS_0.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 56 pushq %r14
// 2: 53 pushq %rbx
// 3: 48 89 f0 movq %rsi, %rax
// 6: 48 83 c6 f8 addq $-0x8, %rsi
// a: 4c 8b 48 f0 movq -0x10(%rax), %r9
// e: 4c 8b 40 f8 movq -0x8(%rax), %r8
// 12: 4d 8b 51 30 movq 0x30(%r9), %r10
// 16: 48 8b 8a 08 01 00 00 movq 0x108(%rdx), %rcx
// 1d: 4d 63 5a 4c movslq 0x4c(%r10), %r11
// 21: 4e 8d 1c d9 leaq (%rcx,%r11,8), %r11
// 25: 4c 89 9a 08 01 00 00 movq %r11, 0x108(%rdx)
// 2c: 4c 89 49 10 movq %r9, 0x10(%rcx)
// 30: 45 8b 1a movl (%r10), %r11d
// 33: 41 ff c3 incl %r11d
// 36: 4d 85 c0 testq %r8, %r8
// 39: 0f 84 ba 00 00 00 je 0xf9 <_JIT_ENTRY+0xf9>
// 3f: 45 85 db testl %r11d, %r11d
// 42: 74 03 je 0x47 <_JIT_ENTRY+0x47>
// 44: 45 89 1a movl %r11d, (%r10)
// 47: 4c 89 11 movq %r10, (%rcx)
// 4a: 41 0f 10 41 10 movups 0x10(%r9), %xmm0
// 4f: 0f 11 41 18 movups %xmm0, 0x18(%rcx)
// 53: 48 c7 41 28 00 00 00 00 movq $0x0, 0x28(%rcx)
// 5b: 45 8b 4a 48 movl 0x48(%r10), %r9d
// 5f: 44 89 49 40 movl %r9d, 0x40(%rcx)
// 63: 48 c7 41 30 00 00 00 00 movq $0x0, 0x30(%rcx)
// 6b: 49 81 c2 c8 00 00 00 addq $0xc8, %r10
// 72: 4c 89 51 38 movq %r10, 0x38(%rcx)
// 76: 66 c7 41 44 00 00 movw $0x0, 0x44(%rcx)
// 7c: c6 41 46 00 movb $0x0, 0x46(%rcx)
// 80: 49 89 f6 movq %rsi, %r14
// 83: 41 83 f9 02 cmpl $0x2, %r9d
// 87: 0f 8c 1c 01 00 00 jl 0x1a9 <_JIT_ENTRY+0x1a9>
// 8d: 41 ba 01 00 00 00 movl $0x1, %r10d
// 93: 41 83 f9 05 cmpl $0x5, %r9d
// 97: 72 47 jb 0xe0 <_JIT_ENTRY+0xe0>
// 99: 4d 8d 59 ff leaq -0x1(%r9), %r11
// 9d: 4c 89 db movq %r11, %rbx
// a0: 48 83 e3 fc andq $-0x4, %rbx
// a4: 4c 8d 53 01 leaq 0x1(%rbx), %r10
// a8: 45 31 f6 xorl %r14d, %r14d
// ab: 0f 57 c0 xorps %xmm0, %xmm0
// ae: 66 90 nop
// b0: 42 0f 11 44 f1 50 movups %xmm0, 0x50(%rcx,%r14,8)
// b6: 42 0f 11 44 f1 60 movups %xmm0, 0x60(%rcx,%r14,8)
// bc: 49 83 c6 04 addq $0x4, %r14
// c0: 4c 39 f3 cmpq %r14, %rbx
// c3: 75 eb jne 0xb0 <_JIT_ENTRY+0xb0>
// c5: 49 89 f6 movq %rsi, %r14
// c8: 49 39 db cmpq %rbx, %r11
// cb: 0f 84 d3 00 00 00 je 0x1a4 <_JIT_ENTRY+0x1a4>
// d1: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax)
// e0: 4a c7 44 d1 48 00 00 00 00 movq $0x0, 0x48(%rcx,%r10,8)
// e9: 49 ff c2 incq %r10
// ec: 4d 39 d1 cmpq %r10, %r9
// ef: 75 ef jne 0xe0 <_JIT_ENTRY+0xe0>
// f1: 49 89 f6 movq %rsi, %r14
// f4: e9 ab 00 00 00 jmp 0x1a4 <_JIT_ENTRY+0x1a4>
// f9: 45 85 db testl %r11d, %r11d
// fc: 74 03 je 0x101 <_JIT_ENTRY+0x101>
// fe: 45 89 1a movl %r11d, (%r10)
// 101: 4c 89 11 movq %r10, (%rcx)
// 104: 41 0f 10 41 10 movups 0x10(%r9), %xmm0
// 109: 0f 11 41 18 movups %xmm0, 0x18(%rcx)
// 10d: 48 c7 41 28 00 00 00 00 movq $0x0, 0x28(%rcx)
// 115: 45 8b 4a 48 movl 0x48(%r10), %r9d
// 119: 44 89 49 40 movl %r9d, 0x40(%rcx)
// 11d: 48 c7 41 30 00 00 00 00 movq $0x0, 0x30(%rcx)
// 125: 49 81 c2 c8 00 00 00 addq $0xc8, %r10
// 12c: 4c 89 51 38 movq %r10, 0x38(%rcx)
// 130: 66 c7 41 44 00 00 movw $0x0, 0x44(%rcx)
// 136: c6 41 46 00 movb $0x0, 0x46(%rcx)
// 13a: 45 85 c9 testl %r9d, %r9d
// 13d: 7e 71 jle 0x1b0 <_JIT_ENTRY+0x1b0>
// 13f: 41 83 f9 04 cmpl $0x4, %r9d
// 143: 73 05 jae 0x14a <_JIT_ENTRY+0x14a>
// 145: 45 31 d2 xorl %r10d, %r10d
// 148: eb 46 jmp 0x190 <_JIT_ENTRY+0x190>
// 14a: 45 89 ca movl %r9d, %r10d
// 14d: 41 83 e2 fc andl $-0x4, %r10d
// 151: 4e 8d 1c cd 00 00 00 00 leaq (,%r9,8), %r11
// 159: 49 83 e3 e0 andq $-0x20, %r11
// 15d: 31 db xorl %ebx, %ebx
// 15f: 0f 57 c0 xorps %xmm0, %xmm0
// 162: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax)
// 170: 0f 11 44 19 48 movups %xmm0, 0x48(%rcx,%rbx)
// 175: 0f 11 44 19 58 movups %xmm0, 0x58(%rcx,%rbx)
// 17a: 48 83 c3 20 addq $0x20, %rbx
// 17e: 49 39 db cmpq %rbx, %r11
// 181: 75 ed jne 0x170 <_JIT_ENTRY+0x170>
// 183: 49 89 c6 movq %rax, %r14
// 186: 4d 39 ca cmpq %r9, %r10
// 189: 74 19 je 0x1a4 <_JIT_ENTRY+0x1a4>
// 18b: 0f 1f 44 00 00 nopl (%rax,%rax)
// 190: 4a c7 44 d1 48 00 00 00 00 movq $0x0, 0x48(%rcx,%r10,8)
// 199: 49 ff c2 incq %r10
// 19c: 4d 39 d1 cmpq %r10, %r9
// 19f: 75 ef jne 0x190 <_JIT_ENTRY+0x190>
// 1a1: 49 89 c6 movq %rax, %r14
// 1a4: 4d 85 c0 testq %r8, %r8
// 1a7: 74 07 je 0x1b0 <_JIT_ENTRY+0x1b0>
// 1a9: 4d 8b 06 movq (%r14), %r8
// 1ac: 4c 89 41 48 movq %r8, 0x48(%rcx)
// 1b0: 48 89 48 f0 movq %rcx, -0x10(%rax)
// 1b4: 5b popq %rbx
// 1b5: 41 5e popq %r14
// 1b7: ff 25 00 00 00 00 jmpq *(%rip) # 0x1bd <_JIT_ENTRY+0x1bd>
// 00000000000001b9: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 1b7:
static const unsigned char _INIT_CALL_PY_EXACT_ARGS_0_code_body[440] = {
0x41, 0x56, 0x53, 0x48, 0x89, 0xf0, 0x48, 0x83,
0xc6, 0xf8, 0x4c, 0x8b, 0x48, 0xf0, 0x4c, 0x8b,
0x40, 0xf8, 0x4d, 0x8b, 0x51, 0x30, 0x48, 0x8b,
0x8a, 0x08, 0x01, 0x00, 0x00, 0x4d, 0x63, 0x5a,
0x4c, 0x4e, 0x8d, 0x1c, 0xd9, 0x4c, 0x89, 0x9a,
0x08, 0x01, 0x00, 0x00, 0x4c, 0x89, 0x49, 0x10,
0x45, 0x8b, 0x1a, 0x41, 0xff, 0xc3, 0x4d, 0x85,
0xc0, 0x0f, 0x84, 0xba, 0x00, 0x00, 0x00, 0x45,
0x85, 0xdb, 0x74, 0x03, 0x45, 0x89, 0x1a, 0x4c,
0x89, 0x11, 0x41, 0x0f, 0x10, 0x41, 0x10, 0x0f,
0x11, 0x41, 0x18, 0x48, 0xc7, 0x41, 0x28, 0x00,
0x00, 0x00, 0x00, 0x45, 0x8b, 0x4a, 0x48, 0x44,
0x89, 0x49, 0x40, 0x48, 0xc7, 0x41, 0x30, 0x00,
0x00, 0x00, 0x00, 0x49, 0x81, 0xc2, 0xc8, 0x00,
0x00, 0x00, 0x4c, 0x89, 0x51, 0x38, 0x66, 0xc7,
0x41, 0x44, 0x00, 0x00, 0xc6, 0x41, 0x46, 0x00,
0x49, 0x89, 0xf6, 0x41, 0x83, 0xf9, 0x02, 0x0f,
0x8c, 0x1c, 0x01, 0x00, 0x00, 0x41, 0xba, 0x01,
0x00, 0x00, 0x00, 0x41, 0x83, 0xf9, 0x05, 0x72,
0x47, 0x4d, 0x8d, 0x59, 0xff, 0x4c, 0x89, 0xdb,
0x48, 0x83, 0xe3, 0xfc, 0x4c, 0x8d, 0x53, 0x01,
0x45, 0x31, 0xf6, 0x0f, 0x57, 0xc0, 0x66, 0x90,
0x42, 0x0f, 0x11, 0x44, 0xf1, 0x50, 0x42, 0x0f,
0x11, 0x44, 0xf1, 0x60, 0x49, 0x83, 0xc6, 0x04,
0x4c, 0x39, 0xf3, 0x75, 0xeb, 0x49, 0x89, 0xf6,
0x49, 0x39, 0xdb, 0x0f, 0x84, 0xd3, 0x00, 0x00,
0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x2e,
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00,
0x4a, 0xc7, 0x44, 0xd1, 0x48, 0x00, 0x00, 0x00,
0x00, 0x49, 0xff, 0xc2, 0x4d, 0x39, 0xd1, 0x75,
0xef, 0x49, 0x89, 0xf6, 0xe9, 0xab, 0x00, 0x00,
0x00, 0x45, 0x85, 0xdb, 0x74, 0x03, 0x45, 0x89,
0x1a, 0x4c, 0x89, 0x11, 0x41, 0x0f, 0x10, 0x41,
0x10, 0x0f, 0x11, 0x41, 0x18, 0x48, 0xc7, 0x41,
0x28, 0x00, 0x00, 0x00, 0x00, 0x45, 0x8b, 0x4a,
0x48, 0x44, 0x89, 0x49, 0x40, 0x48, 0xc7, 0x41,
0x30, 0x00, 0x00, 0x00, 0x00, 0x49, 0x81, 0xc2,
0xc8, 0x00, 0x00, 0x00, 0x4c, 0x89, 0x51, 0x38,
0x66, 0xc7, 0x41, 0x44, 0x00, 0x00, 0xc6, 0x41,
0x46, 0x00, 0x45, 0x85, 0xc9, 0x7e, 0x71, 0x41,
0x83, 0xf9, 0x04, 0x73, 0x05, 0x45, 0x31, 0xd2,
0xeb, 0x46, 0x45, 0x89, 0xca, 0x41, 0x83, 0xe2,
0xfc, 0x4e, 0x8d, 0x1c, 0xcd, 0x00, 0x00, 0x00,
0x00, 0x49, 0x83, 0xe3, 0xe0, 0x31, 0xdb, 0x0f,
0x57, 0xc0, 0x66, 0x66, 0x66, 0x66, 0x66, 0x2e,
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0f, 0x11, 0x44, 0x19, 0x48, 0x0f, 0x11, 0x44,
0x19, 0x58, 0x48, 0x83, 0xc3, 0x20, 0x49, 0x39,
0xdb, 0x75, 0xed, 0x49, 0x89, 0xc6, 0x4d, 0x39,
0xca, 0x74, 0x19, 0x0f, 0x1f, 0x44, 0x00, 0x00,
0x4a, 0xc7, 0x44, 0xd1, 0x48, 0x00, 0x00, 0x00,
0x00, 0x49, 0xff, 0xc2, 0x4d, 0x39, 0xd1, 0x75,
0xef, 0x49, 0x89, 0xc6, 0x4d, 0x85, 0xc0, 0x74,
0x07, 0x4d, 0x8b, 0x06, 0x4c, 0x89, 0x41, 0x48,
0x48, 0x89, 0x48, 0xf0, 0x5b, 0x41, 0x5e,
};
static const Hole _INIT_CALL_PY_EXACT_ARGS_0_code_holes[1];
// 0:
static const unsigned char _INIT_CALL_PY_EXACT_ARGS_0_data_body[1];
static const Hole _INIT_CALL_PY_EXACT_ARGS_0_data_holes[1];
// _INIT_CALL_PY_EXACT_ARGS_1
//
// /tmp/tmp2mfmnab2/_INIT_CALL_PY_EXACT_ARGS_1.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 56 pushq %r14
// 2: 53 pushq %rbx
// 3: 48 8b 46 e8 movq -0x18(%rsi), %rax
// 7: 4c 8b 46 f0 movq -0x10(%rsi), %r8
// b: 4c 8b 48 30 movq 0x30(%rax), %r9
// f: 48 8b 8a 08 01 00 00 movq 0x108(%rdx), %rcx
// 16: 4d 63 51 4c movslq 0x4c(%r9), %r10
// 1a: 4e 8d 14 d1 leaq (%rcx,%r10,8), %r10
// 1e: 4c 89 92 08 01 00 00 movq %r10, 0x108(%rdx)
// 25: 48 89 41 10 movq %rax, 0x10(%rcx)
// 29: 45 8b 11 movl (%r9), %r10d
// 2c: 41 ff c2 incl %r10d
// 2f: 4d 85 c0 testq %r8, %r8
// 32: 0f 84 ae 00 00 00 je 0xe6 <_JIT_ENTRY+0xe6>
// 38: 45 85 d2 testl %r10d, %r10d
// 3b: 74 03 je 0x40 <_JIT_ENTRY+0x40>
// 3d: 45 89 11 movl %r10d, (%r9)
// 40: 4c 89 09 movq %r9, (%rcx)
// 43: 0f 10 40 10 movups 0x10(%rax), %xmm0
// 47: 0f 11 41 18 movups %xmm0, 0x18(%rcx)
// 4b: 48 c7 41 28 00 00 00 00 movq $0x0, 0x28(%rcx)
// 53: 41 8b 41 48 movl 0x48(%r9), %eax
// 57: 89 41 40 movl %eax, 0x40(%rcx)
// 5a: 48 c7 41 30 00 00 00 00 movq $0x0, 0x30(%rcx)
// 62: 49 81 c1 c8 00 00 00 addq $0xc8, %r9
// 69: 4c 89 49 38 movq %r9, 0x38(%rcx)
// 6d: 66 c7 41 44 00 00 movw $0x0, 0x44(%rcx)
// 73: c6 41 46 00 movb $0x0, 0x46(%rcx)
// 77: 49 c7 c1 fe ff ff ff movq $-0x2, %r9
// 7e: 83 f8 03 cmpl $0x3, %eax
// 81: 0f 8c 0a 01 00 00 jl 0x191 <_JIT_ENTRY+0x191>
// 87: 4c 8d 58 fe leaq -0x2(%rax), %r11
// 8b: 41 ba 02 00 00 00 movl $0x2, %r10d
// 91: 49 83 fb 04 cmpq $0x4, %r11
// 95: 72 39 jb 0xd0 <_JIT_ENTRY+0xd0>
// 97: 4c 89 db movq %r11, %rbx
// 9a: 48 83 e3 fc andq $-0x4, %rbx
// 9e: 4c 8d 53 02 leaq 0x2(%rbx), %r10
// a2: 45 31 f6 xorl %r14d, %r14d
// a5: 0f 57 c0 xorps %xmm0, %xmm0
// a8: 0f 1f 84 00 00 00 00 00 nopl (%rax,%rax)
// b0: 42 0f 11 44 f1 58 movups %xmm0, 0x58(%rcx,%r14,8)
// b6: 42 0f 11 44 f1 68 movups %xmm0, 0x68(%rcx,%r14,8)
// bc: 49 83 c6 04 addq $0x4, %r14
// c0: 4c 39 f3 cmpq %r14, %rbx
// c3: 75 eb jne 0xb0 <_JIT_ENTRY+0xb0>
// c5: 49 39 db cmpq %rbx, %r11
// c8: 0f 84 c3 00 00 00 je 0x191 <_JIT_ENTRY+0x191>
// ce: 66 90 nop
// d0: 4a c7 44 d1 48 00 00 00 00 movq $0x0, 0x48(%rcx,%r10,8)
// d9: 49 ff c2 incq %r10
// dc: 4c 39 d0 cmpq %r10, %rax
// df: 75 ef jne 0xd0 <_JIT_ENTRY+0xd0>
// e1: e9 ab 00 00 00 jmp 0x191 <_JIT_ENTRY+0x191>
// e6: 45 85 d2 testl %r10d, %r10d
// e9: 74 03 je 0xee <_JIT_ENTRY+0xee>
// eb: 45 89 11 movl %r10d, (%r9)
// ee: 4c 89 09 movq %r9, (%rcx)
// f1: 0f 10 40 10 movups 0x10(%rax), %xmm0
// f5: 0f 11 41 18 movups %xmm0, 0x18(%rcx)
// f9: 48 c7 41 28 00 00 00 00 movq $0x0, 0x28(%rcx)
// 101: 41 8b 41 48 movl 0x48(%r9), %eax
// 105: 89 41 40 movl %eax, 0x40(%rcx)
// 108: 48 c7 41 30 00 00 00 00 movq $0x0, 0x30(%rcx)
// 110: 49 81 c1 c8 00 00 00 addq $0xc8, %r9
// 117: 4c 89 49 38 movq %r9, 0x38(%rcx)
// 11b: 66 c7 41 44 00 00 movw $0x0, 0x44(%rcx)
// 121: c6 41 46 00 movb $0x0, 0x46(%rcx)
// 125: 49 c7 c1 ff ff ff ff movq $-0x1, %r9
// 12c: 83 f8 02 cmpl $0x2, %eax
// 12f: 7c 60 jl 0x191 <_JIT_ENTRY+0x191>
// 131: 41 ba 01 00 00 00 movl $0x1, %r10d
// 137: 83 f8 05 cmpl $0x5, %eax
// 13a: 72 44 jb 0x180 <_JIT_ENTRY+0x180>
// 13c: 4c 8d 58 ff leaq -0x1(%rax), %r11
// 140: 4c 89 db movq %r11, %rbx
// 143: 48 83 e3 fc andq $-0x4, %rbx
// 147: 4c 8d 53 01 leaq 0x1(%rbx), %r10
// 14b: 45 31 f6 xorl %r14d, %r14d
// 14e: 0f 57 c0 xorps %xmm0, %xmm0
// 151: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax)
// 160: 42 0f 11 44 f1 50 movups %xmm0, 0x50(%rcx,%r14,8)
// 166: 42 0f 11 44 f1 60 movups %xmm0, 0x60(%rcx,%r14,8)
// 16c: 49 83 c6 04 addq $0x4, %r14
// 170: 4c 39 f3 cmpq %r14, %rbx
// 173: 75 eb jne 0x160 <_JIT_ENTRY+0x160>
// 175: 49 39 db cmpq %rbx, %r11
// 178: 74 17 je 0x191 <_JIT_ENTRY+0x191>
// 17a: 66 0f 1f 44 00 00 nopw (%rax,%rax)
// 180: 4a c7 44 d1 48 00 00 00 00 movq $0x0, 0x48(%rcx,%r10,8)
// 189: 49 ff c2 incq %r10
// 18c: 4c 39 d0 cmpq %r10, %rax
// 18f: 75 ef jne 0x180 <_JIT_ENTRY+0x180>
// 191: 48 8d 46 f0 leaq -0x10(%rsi), %rax
// 195: 4e 8b 14 ce movq (%rsi,%r9,8), %r10
// 199: 4c 89 51 48 movq %r10, 0x48(%rcx)
// 19d: 4d 85 c0 testq %r8, %r8
// 1a0: 74 09 je 0x1ab <_JIT_ENTRY+0x1ab>
// 1a2: 4e 8b 44 ce 08 movq 0x8(%rsi,%r9,8), %r8
// 1a7: 4c 89 41 50 movq %r8, 0x50(%rcx)
// 1ab: 48 89 4e e8 movq %rcx, -0x18(%rsi)
// 1af: 48 89 c6 movq %rax, %rsi
// 1b2: 5b popq %rbx
// 1b3: 41 5e popq %r14
// 1b5: ff 25 00 00 00 00 jmpq *(%rip) # 0x1bb <_JIT_ENTRY+0x1bb>
// 00000000000001b7: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 1b5:
static const unsigned char _INIT_CALL_PY_EXACT_ARGS_1_code_body[438] = {
0x41, 0x56, 0x53, 0x48, 0x8b, 0x46, 0xe8, 0x4c,
0x8b, 0x46, 0xf0, 0x4c, 0x8b, 0x48, 0x30, 0x48,
0x8b, 0x8a, 0x08, 0x01, 0x00, 0x00, 0x4d, 0x63,
0x51, 0x4c, 0x4e, 0x8d, 0x14, 0xd1, 0x4c, 0x89,
0x92, 0x08, 0x01, 0x00, 0x00, 0x48, 0x89, 0x41,
0x10, 0x45, 0x8b, 0x11, 0x41, 0xff, 0xc2, 0x4d,
0x85, 0xc0, 0x0f, 0x84, 0xae, 0x00, 0x00, 0x00,
0x45, 0x85, 0xd2, 0x74, 0x03, 0x45, 0x89, 0x11,
0x4c, 0x89, 0x09, 0x0f, 0x10, 0x40, 0x10, 0x0f,
0x11, 0x41, 0x18, 0x48, 0xc7, 0x41, 0x28, 0x00,
0x00, 0x00, 0x00, 0x41, 0x8b, 0x41, 0x48, 0x89,
0x41, 0x40, 0x48, 0xc7, 0x41, 0x30, 0x00, 0x00,
0x00, 0x00, 0x49, 0x81, 0xc1, 0xc8, 0x00, 0x00,
0x00, 0x4c, 0x89, 0x49, 0x38, 0x66, 0xc7, 0x41,
0x44, 0x00, 0x00, 0xc6, 0x41, 0x46, 0x00, 0x49,
0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, 0x83, 0xf8,
0x03, 0x0f, 0x8c, 0x0a, 0x01, 0x00, 0x00, 0x4c,
0x8d, 0x58, 0xfe, 0x41, 0xba, 0x02, 0x00, 0x00,
0x00, 0x49, 0x83, 0xfb, 0x04, 0x72, 0x39, 0x4c,
0x89, 0xdb, 0x48, 0x83, 0xe3, 0xfc, 0x4c, 0x8d,
0x53, 0x02, 0x45, 0x31, 0xf6, 0x0f, 0x57, 0xc0,
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00,
0x42, 0x0f, 0x11, 0x44, 0xf1, 0x58, 0x42, 0x0f,
0x11, 0x44, 0xf1, 0x68, 0x49, 0x83, 0xc6, 0x04,
0x4c, 0x39, 0xf3, 0x75, 0xeb, 0x49, 0x39, 0xdb,
0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, 0x66, 0x90,
0x4a, 0xc7, 0x44, 0xd1, 0x48, 0x00, 0x00, 0x00,
0x00, 0x49, 0xff, 0xc2, 0x4c, 0x39, 0xd0, 0x75,
0xef, 0xe9, 0xab, 0x00, 0x00, 0x00, 0x45, 0x85,
0xd2, 0x74, 0x03, 0x45, 0x89, 0x11, 0x4c, 0x89,
0x09, 0x0f, 0x10, 0x40, 0x10, 0x0f, 0x11, 0x41,
0x18, 0x48, 0xc7, 0x41, 0x28, 0x00, 0x00, 0x00,
0x00, 0x41, 0x8b, 0x41, 0x48, 0x89, 0x41, 0x40,
0x48, 0xc7, 0x41, 0x30, 0x00, 0x00, 0x00, 0x00,
0x49, 0x81, 0xc1, 0xc8, 0x00, 0x00, 0x00, 0x4c,
0x89, 0x49, 0x38, 0x66, 0xc7, 0x41, 0x44, 0x00,
0x00, 0xc6, 0x41, 0x46, 0x00, 0x49, 0xc7, 0xc1,
0xff, 0xff, 0xff, 0xff, 0x83, 0xf8, 0x02, 0x7c,
0x60, 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, 0x83,
0xf8, 0x05, 0x72, 0x44, 0x4c, 0x8d, 0x58, 0xff,
0x4c, 0x89, 0xdb, 0x48, 0x83, 0xe3, 0xfc, 0x4c,
0x8d, 0x53, 0x01, 0x45, 0x31, 0xf6, 0x0f, 0x57,
0xc0, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x2e,
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00,
0x42, 0x0f, 0x11, 0x44, 0xf1, 0x50, 0x42, 0x0f,
0x11, 0x44, 0xf1, 0x60, 0x49, 0x83, 0xc6, 0x04,
0x4c, 0x39, 0xf3, 0x75, 0xeb, 0x49, 0x39, 0xdb,
0x74, 0x17, 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00,
0x4a, 0xc7, 0x44, 0xd1, 0x48, 0x00, 0x00, 0x00,
0x00, 0x49, 0xff, 0xc2, 0x4c, 0x39, 0xd0, 0x75,
0xef, 0x48, 0x8d, 0x46, 0xf0, 0x4e, 0x8b, 0x14,
0xce, 0x4c, 0x89, 0x51, 0x48, 0x4d, 0x85, 0xc0,
0x74, 0x09, 0x4e, 0x8b, 0x44, 0xce, 0x08, 0x4c,
0x89, 0x41, 0x50, 0x48, 0x89, 0x4e, 0xe8, 0x48,
0x89, 0xc6, 0x5b, 0x41, 0x5e,
};
static const Hole _INIT_CALL_PY_EXACT_ARGS_1_code_holes[1];
// 0:
static const unsigned char _INIT_CALL_PY_EXACT_ARGS_1_data_body[1];
static const Hole _INIT_CALL_PY_EXACT_ARGS_1_data_holes[1];
// _INIT_CALL_PY_EXACT_ARGS_2
//
// /tmp/tmp2mfmnab2/_INIT_CALL_PY_EXACT_ARGS_2.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 56 pushq %r14
// 2: 53 pushq %rbx
// 3: 48 8b 46 e0 movq -0x20(%rsi), %rax
// 7: 4c 8b 46 e8 movq -0x18(%rsi), %r8
// b: 4c 8b 48 30 movq 0x30(%rax), %r9
// f: 48 8b 8a 08 01 00 00 movq 0x108(%rdx), %rcx
// 16: 4d 63 51 4c movslq 0x4c(%r9), %r10
// 1a: 4e 8d 14 d1 leaq (%rcx,%r10,8), %r10
// 1e: 4c 89 92 08 01 00 00 movq %r10, 0x108(%rdx)
// 25: 48 89 41 10 movq %rax, 0x10(%rcx)
// 29: 45 8b 11 movl (%r9), %r10d
// 2c: 41 ff c2 incl %r10d
// 2f: 4d 85 c0 testq %r8, %r8
// 32: 0f 84 ae 00 00 00 je 0xe6 <_JIT_ENTRY+0xe6>
// 38: 45 85 d2 testl %r10d, %r10d
// 3b: 74 03 je 0x40 <_JIT_ENTRY+0x40>
// 3d: 45 89 11 movl %r10d, (%r9)
// 40: 4c 89 09 movq %r9, (%rcx)
// 43: 0f 10 40 10 movups 0x10(%rax), %xmm0
// 47: 0f 11 41 18 movups %xmm0, 0x18(%rcx)
// 4b: 48 c7 41 28 00 00 00 00 movq $0x0, 0x28(%rcx)
// 53: 41 8b 41 48 movl 0x48(%r9), %eax
// 57: 89 41 40 movl %eax, 0x40(%rcx)
// 5a: 48 c7 41 30 00 00 00 00 movq $0x0, 0x30(%rcx)
// 62: 49 81 c1 c8 00 00 00 addq $0xc8, %r9
// 69: 4c 89 49 38 movq %r9, 0x38(%rcx)
// 6d: 66 c7 41 44 00 00 movw $0x0, 0x44(%rcx)
// 73: c6 41 46 00 movb $0x0, 0x46(%rcx)
// 77: 49 c7 c1 fd ff ff ff movq $-0x3, %r9
// 7e: 83 f8 04 cmpl $0x4, %eax
// 81: 0f 8c 0a 01 00 00 jl 0x191 <_JIT_ENTRY+0x191>
// 87: 4c 8d 58 fd leaq -0x3(%rax), %r11
// 8b: 41 ba 03 00 00 00 movl $0x3, %r10d
// 91: 49 83 fb 04 cmpq $0x4, %r11
// 95: 72 39 jb 0xd0 <_JIT_ENTRY+0xd0>
// 97: 4c 89 db movq %r11, %rbx
// 9a: 48 83 e3 fc andq $-0x4, %rbx
// 9e: 4d 89 da movq %r11, %r10
// a1: 49 83 ca 03 orq $0x3, %r10
// a5: 45 31 f6 xorl %r14d, %r14d
// a8: 0f 57 c0 xorps %xmm0, %xmm0
// ab: 0f 1f 44 00 00 nopl (%rax,%rax)
// b0: 42 0f 11 44 f1 60 movups %xmm0, 0x60(%rcx,%r14,8)
// b6: 42 0f 11 44 f1 70 movups %xmm0, 0x70(%rcx,%r14,8)
// bc: 49 83 c6 04 addq $0x4, %r14
// c0: 4c 39 f3 cmpq %r14, %rbx
// c3: 75 eb jne 0xb0 <_JIT_ENTRY+0xb0>
// c5: 49 39 db cmpq %rbx, %r11
// c8: 0f 84 c3 00 00 00 je 0x191 <_JIT_ENTRY+0x191>
// ce: 66 90 nop
// d0: 4a c7 44 d1 48 00 00 00 00 movq $0x0, 0x48(%rcx,%r10,8)
// d9: 49 ff c2 incq %r10
// dc: 4c 39 d0 cmpq %r10, %rax
// df: 75 ef jne 0xd0 <_JIT_ENTRY+0xd0>
// e1: e9 ab 00 00 00 jmp 0x191 <_JIT_ENTRY+0x191>
// e6: 45 85 d2 testl %r10d, %r10d
// e9: 74 03 je 0xee <_JIT_ENTRY+0xee>
// eb: 45 89 11 movl %r10d, (%r9)
// ee: 4c 89 09 movq %r9, (%rcx)
// f1: 0f 10 40 10 movups 0x10(%rax), %xmm0
// f5: 0f 11 41 18 movups %xmm0, 0x18(%rcx)
// f9: 48 c7 41 28 00 00 00 00 movq $0x0, 0x28(%rcx)
// 101: 41 8b 41 48 movl 0x48(%r9), %eax
// 105: 89 41 40 movl %eax, 0x40(%rcx)
// 108: 48 c7 41 30 00 00 00 00 movq $0x0, 0x30(%rcx)
// 110: 49 81 c1 c8 00 00 00 addq $0xc8, %r9
// 117: 4c 89 49 38 movq %r9, 0x38(%rcx)
// 11b: 66 c7 41 44 00 00 movw $0x0, 0x44(%rcx)
// 121: c6 41 46 00 movb $0x0, 0x46(%rcx)
// 125: 49 c7 c1 fe ff ff ff movq $-0x2, %r9
// 12c: 83 f8 03 cmpl $0x3, %eax
// 12f: 7c 60 jl 0x191 <_JIT_ENTRY+0x191>
// 131: 4c 8d 58 fe leaq -0x2(%rax), %r11
// 135: 41 ba 02 00 00 00 movl $0x2, %r10d
// 13b: 49 83 fb 04 cmpq $0x4, %r11
// 13f: 72 3f jb 0x180 <_JIT_ENTRY+0x180>
// 141: 4c 89 db movq %r11, %rbx
// 144: 48 83 e3 fc andq $-0x4, %rbx
// 148: 4c 8d 53 02 leaq 0x2(%rbx), %r10
// 14c: 45 31 f6 xorl %r14d, %r14d
// 14f: 0f 57 c0 xorps %xmm0, %xmm0
// 152: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax)
// 160: 42 0f 11 44 f1 58 movups %xmm0, 0x58(%rcx,%r14,8)
// 166: 42 0f 11 44 f1 68 movups %xmm0, 0x68(%rcx,%r14,8)
// 16c: 49 83 c6 04 addq $0x4, %r14
// 170: 4c 39 f3 cmpq %r14, %rbx
// 173: 75 eb jne 0x160 <_JIT_ENTRY+0x160>
// 175: 49 39 db cmpq %rbx, %r11
// 178: 74 17 je 0x191 <_JIT_ENTRY+0x191>
// 17a: 66 0f 1f 44 00 00 nopw (%rax,%rax)
// 180: 4a c7 44 d1 48 00 00 00 00 movq $0x0, 0x48(%rcx,%r10,8)
// 189: 49 ff c2 incq %r10
// 18c: 4c 39 d0 cmpq %r10, %rax
// 18f: 75 ef jne 0x180 <_JIT_ENTRY+0x180>
// 191: 48 8d 46 e8 leaq -0x18(%rsi), %rax
// 195: 4e 8b 14 ce movq (%rsi,%r9,8), %r10
// 199: 4c 89 51 48 movq %r10, 0x48(%rcx)
// 19d: 4e 8b 54 ce 08 movq 0x8(%rsi,%r9,8), %r10
// 1a2: 4c 89 51 50 movq %r10, 0x50(%rcx)
// 1a6: 4d 85 c0 testq %r8, %r8
// 1a9: 74 09 je 0x1b4 <_JIT_ENTRY+0x1b4>
// 1ab: 4e 8b 44 ce 10 movq 0x10(%rsi,%r9,8), %r8
// 1b0: 4c 89 41 58 movq %r8, 0x58(%rcx)
// 1b4: 48 89 4e e0 movq %rcx, -0x20(%rsi)
// 1b8: 48 89 c6 movq %rax, %rsi
// 1bb: 5b popq %rbx
// 1bc: 41 5e popq %r14
// 1be: ff 25 00 00 00 00 jmpq *(%rip) # 0x1c4 <_JIT_ENTRY+0x1c4>
// 00000000000001c0: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 1be:
static const unsigned char _INIT_CALL_PY_EXACT_ARGS_2_code_body[447] = {
0x41, 0x56, 0x53, 0x48, 0x8b, 0x46, 0xe0, 0x4c,
0x8b, 0x46, 0xe8, 0x4c, 0x8b, 0x48, 0x30, 0x48,
0x8b, 0x8a, 0x08, 0x01, 0x00, 0x00, 0x4d, 0x63,
0x51, 0x4c, 0x4e, 0x8d, 0x14, 0xd1, 0x4c, 0x89,
0x92, 0x08, 0x01, 0x00, 0x00, 0x48, 0x89, 0x41,
0x10, 0x45, 0x8b, 0x11, 0x41, 0xff, 0xc2, 0x4d,
0x85, 0xc0, 0x0f, 0x84, 0xae, 0x00, 0x00, 0x00,
0x45, 0x85, 0xd2, 0x74, 0x03, 0x45, 0x89, 0x11,
0x4c, 0x89, 0x09, 0x0f, 0x10, 0x40, 0x10, 0x0f,
0x11, 0x41, 0x18, 0x48, 0xc7, 0x41, 0x28, 0x00,
0x00, 0x00, 0x00, 0x41, 0x8b, 0x41, 0x48, 0x89,
0x41, 0x40, 0x48, 0xc7, 0x41, 0x30, 0x00, 0x00,
0x00, 0x00, 0x49, 0x81, 0xc1, 0xc8, 0x00, 0x00,
0x00, 0x4c, 0x89, 0x49, 0x38, 0x66, 0xc7, 0x41,
0x44, 0x00, 0x00, 0xc6, 0x41, 0x46, 0x00, 0x49,
0xc7, 0xc1, 0xfd, 0xff, 0xff, 0xff, 0x83, 0xf8,
0x04, 0x0f, 0x8c, 0x0a, 0x01, 0x00, 0x00, 0x4c,
0x8d, 0x58, 0xfd, 0x41, 0xba, 0x03, 0x00, 0x00,
0x00, 0x49, 0x83, 0xfb, 0x04, 0x72, 0x39, 0x4c,
0x89, 0xdb, 0x48, 0x83, 0xe3, 0xfc, 0x4d, 0x89,
0xda, 0x49, 0x83, 0xca, 0x03, 0x45, 0x31, 0xf6,
0x0f, 0x57, 0xc0, 0x0f, 0x1f, 0x44, 0x00, 0x00,
0x42, 0x0f, 0x11, 0x44, 0xf1, 0x60, 0x42, 0x0f,
0x11, 0x44, 0xf1, 0x70, 0x49, 0x83, 0xc6, 0x04,
0x4c, 0x39, 0xf3, 0x75, 0xeb, 0x49, 0x39, 0xdb,
0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, 0x66, 0x90,
0x4a, 0xc7, 0x44, 0xd1, 0x48, 0x00, 0x00, 0x00,
0x00, 0x49, 0xff, 0xc2, 0x4c, 0x39, 0xd0, 0x75,
0xef, 0xe9, 0xab, 0x00, 0x00, 0x00, 0x45, 0x85,
0xd2, 0x74, 0x03, 0x45, 0x89, 0x11, 0x4c, 0x89,
0x09, 0x0f, 0x10, 0x40, 0x10, 0x0f, 0x11, 0x41,
0x18, 0x48, 0xc7, 0x41, 0x28, 0x00, 0x00, 0x00,
0x00, 0x41, 0x8b, 0x41, 0x48, 0x89, 0x41, 0x40,
0x48, 0xc7, 0x41, 0x30, 0x00, 0x00, 0x00, 0x00,
0x49, 0x81, 0xc1, 0xc8, 0x00, 0x00, 0x00, 0x4c,
0x89, 0x49, 0x38, 0x66, 0xc7, 0x41, 0x44, 0x00,
0x00, 0xc6, 0x41, 0x46, 0x00, 0x49, 0xc7, 0xc1,
0xfe, 0xff, 0xff, 0xff, 0x83, 0xf8, 0x03, 0x7c,
0x60, 0x4c, 0x8d, 0x58, 0xfe, 0x41, 0xba, 0x02,
0x00, 0x00, 0x00, 0x49, 0x83, 0xfb, 0x04, 0x72,
0x3f, 0x4c, 0x89, 0xdb, 0x48, 0x83, 0xe3, 0xfc,
0x4c, 0x8d, 0x53, 0x02, 0x45, 0x31, 0xf6, 0x0f,
0x57, 0xc0, 0x66, 0x66, 0x66, 0x66, 0x66, 0x2e,
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00,
0x42, 0x0f, 0x11, 0x44, 0xf1, 0x58, 0x42, 0x0f,
0x11, 0x44, 0xf1, 0x68, 0x49, 0x83, 0xc6, 0x04,
0x4c, 0x39, 0xf3, 0x75, 0xeb, 0x49, 0x39, 0xdb,
0x74, 0x17, 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00,
0x4a, 0xc7, 0x44, 0xd1, 0x48, 0x00, 0x00, 0x00,
0x00, 0x49, 0xff, 0xc2, 0x4c, 0x39, 0xd0, 0x75,
0xef, 0x48, 0x8d, 0x46, 0xe8, 0x4e, 0x8b, 0x14,
0xce, 0x4c, 0x89, 0x51, 0x48, 0x4e, 0x8b, 0x54,
0xce, 0x08, 0x4c, 0x89, 0x51, 0x50, 0x4d, 0x85,
0xc0, 0x74, 0x09, 0x4e, 0x8b, 0x44, 0xce, 0x10,
0x4c, 0x89, 0x41, 0x58, 0x48, 0x89, 0x4e, 0xe0,
0x48, 0x89, 0xc6, 0x5b, 0x41, 0x5e,
};
static const Hole _INIT_CALL_PY_EXACT_ARGS_2_code_holes[1];
// 0:
static const unsigned char _INIT_CALL_PY_EXACT_ARGS_2_data_body[1];
static const Hole _INIT_CALL_PY_EXACT_ARGS_2_data_holes[1];
// _INIT_CALL_PY_EXACT_ARGS_3
//
// /tmp/tmp2mfmnab2/_INIT_CALL_PY_EXACT_ARGS_3.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 56 pushq %r14
// 2: 53 pushq %rbx
// 3: 48 8b 46 d8 movq -0x28(%rsi), %rax
// 7: 4c 8b 46 e0 movq -0x20(%rsi), %r8
// b: 4c 8b 48 30 movq 0x30(%rax), %r9
// f: 48 8b 8a 08 01 00 00 movq 0x108(%rdx), %rcx
// 16: 4d 63 51 4c movslq 0x4c(%r9), %r10
// 1a: 4e 8d 14 d1 leaq (%rcx,%r10,8), %r10
// 1e: 4c 89 92 08 01 00 00 movq %r10, 0x108(%rdx)
// 25: 48 89 41 10 movq %rax, 0x10(%rcx)
// 29: 45 8b 11 movl (%r9), %r10d
// 2c: 41 ff c2 incl %r10d
// 2f: 4d 85 c0 testq %r8, %r8
// 32: 0f 84 ae 00 00 00 je 0xe6 <_JIT_ENTRY+0xe6>
// 38: 45 85 d2 testl %r10d, %r10d
// 3b: 74 03 je 0x40 <_JIT_ENTRY+0x40>
// 3d: 45 89 11 movl %r10d, (%r9)
// 40: 4c 89 09 movq %r9, (%rcx)
// 43: 0f 10 40 10 movups 0x10(%rax), %xmm0
// 47: 0f 11 41 18 movups %xmm0, 0x18(%rcx)
// 4b: 48 c7 41 28 00 00 00 00 movq $0x0, 0x28(%rcx)
// 53: 41 8b 41 48 movl 0x48(%r9), %eax
// 57: 89 41 40 movl %eax, 0x40(%rcx)
// 5a: 48 c7 41 30 00 00 00 00 movq $0x0, 0x30(%rcx)
// 62: 49 81 c1 c8 00 00 00 addq $0xc8, %r9
// 69: 4c 89 49 38 movq %r9, 0x38(%rcx)
// 6d: 66 c7 41 44 00 00 movw $0x0, 0x44(%rcx)
// 73: c6 41 46 00 movb $0x0, 0x46(%rcx)
// 77: 49 c7 c1 fc ff ff ff movq $-0x4, %r9
// 7e: 83 f8 05 cmpl $0x5, %eax
// 81: 0f 8c 0a 01 00 00 jl 0x191 <_JIT_ENTRY+0x191>
// 87: 4c 8d 58 fc leaq -0x4(%rax), %r11
// 8b: 41 ba 04 00 00 00 movl $0x4, %r10d
// 91: 49 83 fb 04 cmpq $0x4, %r11
// 95: 72 39 jb 0xd0 <_JIT_ENTRY+0xd0>
// 97: 4c 89 db movq %r11, %rbx
// 9a: 48 83 e3 fc andq $-0x4, %rbx
// 9e: 4c 8d 53 04 leaq 0x4(%rbx), %r10
// a2: 45 31 f6 xorl %r14d, %r14d
// a5: 0f 57 c0 xorps %xmm0, %xmm0
// a8: 0f 1f 84 00 00 00 00 00 nopl (%rax,%rax)
// b0: 42 0f 11 44 f1 68 movups %xmm0, 0x68(%rcx,%r14,8)
// b6: 42 0f 11 44 f1 78 movups %xmm0, 0x78(%rcx,%r14,8)
// bc: 49 83 c6 04 addq $0x4, %r14
// c0: 4c 39 f3 cmpq %r14, %rbx
// c3: 75 eb jne 0xb0 <_JIT_ENTRY+0xb0>
// c5: 49 39 db cmpq %rbx, %r11
// c8: 0f 84 c3 00 00 00 je 0x191 <_JIT_ENTRY+0x191>
// ce: 66 90 nop
// d0: 4a c7 44 d1 48 00 00 00 00 movq $0x0, 0x48(%rcx,%r10,8)
// d9: 49 ff c2 incq %r10
// dc: 4c 39 d0 cmpq %r10, %rax
// df: 75 ef jne 0xd0 <_JIT_ENTRY+0xd0>
// e1: e9 ab 00 00 00 jmp 0x191 <_JIT_ENTRY+0x191>
// e6: 45 85 d2 testl %r10d, %r10d
// e9: 74 03 je 0xee <_JIT_ENTRY+0xee>
// eb: 45 89 11 movl %r10d, (%r9)
// ee: 4c 89 09 movq %r9, (%rcx)
// f1: 0f 10 40 10 movups 0x10(%rax), %xmm0
// f5: 0f 11 41 18 movups %xmm0, 0x18(%rcx)
// f9: 48 c7 41 28 00 00 00 00 movq $0x0, 0x28(%rcx)
// 101: 41 8b 41 48 movl 0x48(%r9), %eax
// 105: 89 41 40 movl %eax, 0x40(%rcx)
// 108: 48 c7 41 30 00 00 00 00 movq $0x0, 0x30(%rcx)
// 110: 49 81 c1 c8 00 00 00 addq $0xc8, %r9
// 117: 4c 89 49 38 movq %r9, 0x38(%rcx)
// 11b: 66 c7 41 44 00 00 movw $0x0, 0x44(%rcx)
// 121: c6 41 46 00 movb $0x0, 0x46(%rcx)
// 125: 49 c7 c1 fd ff ff ff movq $-0x3, %r9
// 12c: 83 f8 04 cmpl $0x4, %eax
// 12f: 7c 60 jl 0x191 <_JIT_ENTRY+0x191>
// 131: 4c 8d 58 fd leaq -0x3(%rax), %r11
// 135: 41 ba 03 00 00 00 movl $0x3, %r10d
// 13b: 49 83 fb 04 cmpq $0x4, %r11
// 13f: 72 3f jb 0x180 <_JIT_ENTRY+0x180>
// 141: 4c 89 db movq %r11, %rbx
// 144: 48 83 e3 fc andq $-0x4, %rbx
// 148: 4d 89 da movq %r11, %r10
// 14b: 49 83 ca 03 orq $0x3, %r10
// 14f: 45 31 f6 xorl %r14d, %r14d
// 152: 0f 57 c0 xorps %xmm0, %xmm0
// 155: 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax)
// 160: 42 0f 11 44 f1 60 movups %xmm0, 0x60(%rcx,%r14,8)
// 166: 42 0f 11 44 f1 70 movups %xmm0, 0x70(%rcx,%r14,8)
// 16c: 49 83 c6 04 addq $0x4, %r14
// 170: 4c 39 f3 cmpq %r14, %rbx
// 173: 75 eb jne 0x160 <_JIT_ENTRY+0x160>
// 175: 49 39 db cmpq %rbx, %r11
// 178: 74 17 je 0x191 <_JIT_ENTRY+0x191>
// 17a: 66 0f 1f 44 00 00 nopw (%rax,%rax)
// 180: 4a c7 44 d1 48 00 00 00 00 movq $0x0, 0x48(%rcx,%r10,8)
// 189: 49 ff c2 incq %r10
// 18c: 4c 39 d0 cmpq %r10, %rax
// 18f: 75 ef jne 0x180 <_JIT_ENTRY+0x180>
// 191: 4a 8b 04 ce movq (%rsi,%r9,8), %rax
// 195: 48 89 41 48 movq %rax, 0x48(%rcx)
// 199: 4a 8b 44 ce 08 movq 0x8(%rsi,%r9,8), %rax
// 19e: 48 89 41 50 movq %rax, 0x50(%rcx)
// 1a2: 4a 8b 44 ce 10 movq 0x10(%rsi,%r9,8), %rax
// 1a7: 48 89 41 58 movq %rax, 0x58(%rcx)
// 1ab: 48 8d 46 e0 leaq -0x20(%rsi), %rax
// 1af: 4d 85 c0 testq %r8, %r8
// 1b2: 74 09 je 0x1bd <_JIT_ENTRY+0x1bd>
// 1b4: 4e 8b 44 ce 18 movq 0x18(%rsi,%r9,8), %r8
// 1b9: 4c 89 41 60 movq %r8, 0x60(%rcx)
// 1bd: 48 89 4e d8 movq %rcx, -0x28(%rsi)
// 1c1: 48 89 c6 movq %rax, %rsi
// 1c4: 5b popq %rbx
// 1c5: 41 5e popq %r14
// 1c7: ff 25 00 00 00 00 jmpq *(%rip) # 0x1cd <_JIT_ENTRY+0x1cd>
// 00000000000001c9: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 1c7:
static const unsigned char _INIT_CALL_PY_EXACT_ARGS_3_code_body[456] = {
0x41, 0x56, 0x53, 0x48, 0x8b, 0x46, 0xd8, 0x4c,
0x8b, 0x46, 0xe0, 0x4c, 0x8b, 0x48, 0x30, 0x48,
0x8b, 0x8a, 0x08, 0x01, 0x00, 0x00, 0x4d, 0x63,
0x51, 0x4c, 0x4e, 0x8d, 0x14, 0xd1, 0x4c, 0x89,
0x92, 0x08, 0x01, 0x00, 0x00, 0x48, 0x89, 0x41,
0x10, 0x45, 0x8b, 0x11, 0x41, 0xff, 0xc2, 0x4d,
0x85, 0xc0, 0x0f, 0x84, 0xae, 0x00, 0x00, 0x00,
0x45, 0x85, 0xd2, 0x74, 0x03, 0x45, 0x89, 0x11,
0x4c, 0x89, 0x09, 0x0f, 0x10, 0x40, 0x10, 0x0f,
0x11, 0x41, 0x18, 0x48, 0xc7, 0x41, 0x28, 0x00,
0x00, 0x00, 0x00, 0x41, 0x8b, 0x41, 0x48, 0x89,
0x41, 0x40, 0x48, 0xc7, 0x41, 0x30, 0x00, 0x00,
0x00, 0x00, 0x49, 0x81, 0xc1, 0xc8, 0x00, 0x00,
0x00, 0x4c, 0x89, 0x49, 0x38, 0x66, 0xc7, 0x41,
0x44, 0x00, 0x00, 0xc6, 0x41, 0x46, 0x00, 0x49,
0xc7, 0xc1, 0xfc, 0xff, 0xff, 0xff, 0x83, 0xf8,
0x05, 0x0f, 0x8c, 0x0a, 0x01, 0x00, 0x00, 0x4c,
0x8d, 0x58, 0xfc, 0x41, 0xba, 0x04, 0x00, 0x00,
0x00, 0x49, 0x83, 0xfb, 0x04, 0x72, 0x39, 0x4c,
0x89, 0xdb, 0x48, 0x83, 0xe3, 0xfc, 0x4c, 0x8d,
0x53, 0x04, 0x45, 0x31, 0xf6, 0x0f, 0x57, 0xc0,
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00,
0x42, 0x0f, 0x11, 0x44, 0xf1, 0x68, 0x42, 0x0f,
0x11, 0x44, 0xf1, 0x78, 0x49, 0x83, 0xc6, 0x04,
0x4c, 0x39, 0xf3, 0x75, 0xeb, 0x49, 0x39, 0xdb,
0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, 0x66, 0x90,
0x4a, 0xc7, 0x44, 0xd1, 0x48, 0x00, 0x00, 0x00,
0x00, 0x49, 0xff, 0xc2, 0x4c, 0x39, 0xd0, 0x75,
0xef, 0xe9, 0xab, 0x00, 0x00, 0x00, 0x45, 0x85,
0xd2, 0x74, 0x03, 0x45, 0x89, 0x11, 0x4c, 0x89,
0x09, 0x0f, 0x10, 0x40, 0x10, 0x0f, 0x11, 0x41,
0x18, 0x48, 0xc7, 0x41, 0x28, 0x00, 0x00, 0x00,
0x00, 0x41, 0x8b, 0x41, 0x48, 0x89, 0x41, 0x40,
0x48, 0xc7, 0x41, 0x30, 0x00, 0x00, 0x00, 0x00,
0x49, 0x81, 0xc1, 0xc8, 0x00, 0x00, 0x00, 0x4c,
0x89, 0x49, 0x38, 0x66, 0xc7, 0x41, 0x44, 0x00,
0x00, 0xc6, 0x41, 0x46, 0x00, 0x49, 0xc7, 0xc1,
0xfd, 0xff, 0xff, 0xff, 0x83, 0xf8, 0x04, 0x7c,
0x60, 0x4c, 0x8d, 0x58, 0xfd, 0x41, 0xba, 0x03,
0x00, 0x00, 0x00, 0x49, 0x83, 0xfb, 0x04, 0x72,
0x3f, 0x4c, 0x89, 0xdb, 0x48, 0x83, 0xe3, 0xfc,
0x4d, 0x89, 0xda, 0x49, 0x83, 0xca, 0x03, 0x45,
0x31, 0xf6, 0x0f, 0x57, 0xc0, 0x66, 0x66, 0x2e,
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00,
0x42, 0x0f, 0x11, 0x44, 0xf1, 0x60, 0x42, 0x0f,
0x11, 0x44, 0xf1, 0x70, 0x49, 0x83, 0xc6, 0x04,
0x4c, 0x39, 0xf3, 0x75, 0xeb, 0x49, 0x39, 0xdb,
0x74, 0x17, 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00,
0x4a, 0xc7, 0x44, 0xd1, 0x48, 0x00, 0x00, 0x00,
0x00, 0x49, 0xff, 0xc2, 0x4c, 0x39, 0xd0, 0x75,
0xef, 0x4a, 0x8b, 0x04, 0xce, 0x48, 0x89, 0x41,
0x48, 0x4a, 0x8b, 0x44, 0xce, 0x08, 0x48, 0x89,
0x41, 0x50, 0x4a, 0x8b, 0x44, 0xce, 0x10, 0x48,
0x89, 0x41, 0x58, 0x48, 0x8d, 0x46, 0xe0, 0x4d,
0x85, 0xc0, 0x74, 0x09, 0x4e, 0x8b, 0x44, 0xce,
0x18, 0x4c, 0x89, 0x41, 0x60, 0x48, 0x89, 0x4e,
0xd8, 0x48, 0x89, 0xc6, 0x5b, 0x41, 0x5e,
};
static const Hole _INIT_CALL_PY_EXACT_ARGS_3_code_holes[1];
// 0:
static const unsigned char _INIT_CALL_PY_EXACT_ARGS_3_data_body[1];
static const Hole _INIT_CALL_PY_EXACT_ARGS_3_data_holes[1];
// _INIT_CALL_PY_EXACT_ARGS_4
//
// /tmp/tmp2mfmnab2/_INIT_CALL_PY_EXACT_ARGS_4.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 56 pushq %r14
// 2: 53 pushq %rbx
// 3: 48 8b 46 d0 movq -0x30(%rsi), %rax
// 7: 4c 8b 46 d8 movq -0x28(%rsi), %r8
// b: 4c 8b 48 30 movq 0x30(%rax), %r9
// f: 48 8b 8a 08 01 00 00 movq 0x108(%rdx), %rcx
// 16: 4d 63 51 4c movslq 0x4c(%r9), %r10
// 1a: 4e 8d 14 d1 leaq (%rcx,%r10,8), %r10
// 1e: 4c 89 92 08 01 00 00 movq %r10, 0x108(%rdx)
// 25: 48 89 41 10 movq %rax, 0x10(%rcx)
// 29: 45 8b 11 movl (%r9), %r10d
// 2c: 41 ff c2 incl %r10d
// 2f: 4d 85 c0 testq %r8, %r8
// 32: 0f 84 be 00 00 00 je 0xf6 <_JIT_ENTRY+0xf6>
// 38: 45 85 d2 testl %r10d, %r10d
// 3b: 74 03 je 0x40 <_JIT_ENTRY+0x40>
// 3d: 45 89 11 movl %r10d, (%r9)
// 40: 4c 89 09 movq %r9, (%rcx)
// 43: 0f 10 40 10 movups 0x10(%rax), %xmm0
// 47: 0f 11 41 18 movups %xmm0, 0x18(%rcx)
// 4b: 48 c7 41 28 00 00 00 00 movq $0x0, 0x28(%rcx)
// 53: 41 8b 41 48 movl 0x48(%r9), %eax
// 57: 89 41 40 movl %eax, 0x40(%rcx)
// 5a: 48 c7 41 30 00 00 00 00 movq $0x0, 0x30(%rcx)
// 62: 49 81 c1 c8 00 00 00 addq $0xc8, %r9
// 69: 4c 89 49 38 movq %r9, 0x38(%rcx)
// 6d: 66 c7 41 44 00 00 movw $0x0, 0x44(%rcx)
// 73: c6 41 46 00 movb $0x0, 0x46(%rcx)
// 77: 49 c7 c1 fb ff ff ff movq $-0x5, %r9
// 7e: 83 f8 06 cmpl $0x6, %eax
// 81: 0f 8c 1a 01 00 00 jl 0x1a1 <_JIT_ENTRY+0x1a1>
// 87: 4c 8d 58 fb leaq -0x5(%rax), %r11
// 8b: 41 ba 05 00 00 00 movl $0x5, %r10d
// 91: 49 83 fb 04 cmpq $0x4, %r11
// 95: 72 49 jb 0xe0 <_JIT_ENTRY+0xe0>
// 97: 4c 89 db movq %r11, %rbx
// 9a: 48 83 e3 fc andq $-0x4, %rbx
// 9e: 4c 8d 53 05 leaq 0x5(%rbx), %r10
// a2: 45 31 f6 xorl %r14d, %r14d
// a5: 0f 57 c0 xorps %xmm0, %xmm0
// a8: 0f 1f 84 00 00 00 00 00 nopl (%rax,%rax)
// b0: 42 0f 11 44 f1 70 movups %xmm0, 0x70(%rcx,%r14,8)
// b6: 42 0f 11 84 f1 80 00 00 00 movups %xmm0, 0x80(%rcx,%r14,8)
// bf: 49 83 c6 04 addq $0x4, %r14
// c3: 4c 39 f3 cmpq %r14, %rbx
// c6: 75 e8 jne 0xb0 <_JIT_ENTRY+0xb0>
// c8: 49 39 db cmpq %rbx, %r11
// cb: 0f 84 d0 00 00 00 je 0x1a1 <_JIT_ENTRY+0x1a1>
// d1: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax)
// e0: 4a c7 44 d1 48 00 00 00 00 movq $0x0, 0x48(%rcx,%r10,8)
// e9: 49 ff c2 incq %r10
// ec: 4c 39 d0 cmpq %r10, %rax
// ef: 75 ef jne 0xe0 <_JIT_ENTRY+0xe0>
// f1: e9 ab 00 00 00 jmp 0x1a1 <_JIT_ENTRY+0x1a1>
// f6: 45 85 d2 testl %r10d, %r10d
// f9: 74 03 je 0xfe <_JIT_ENTRY+0xfe>
// fb: 45 89 11 movl %r10d, (%r9)
// fe: 4c 89 09 movq %r9, (%rcx)
// 101: 0f 10 40 10 movups 0x10(%rax), %xmm0
// 105: 0f 11 41 18 movups %xmm0, 0x18(%rcx)
// 109: 48 c7 41 28 00 00 00 00 movq $0x0, 0x28(%rcx)
// 111: 41 8b 41 48 movl 0x48(%r9), %eax
// 115: 89 41 40 movl %eax, 0x40(%rcx)
// 118: 48 c7 41 30 00 00 00 00 movq $0x0, 0x30(%rcx)
// 120: 49 81 c1 c8 00 00 00 addq $0xc8, %r9
// 127: 4c 89 49 38 movq %r9, 0x38(%rcx)
// 12b: 66 c7 41 44 00 00 movw $0x0, 0x44(%rcx)
// 131: c6 41 46 00 movb $0x0, 0x46(%rcx)
// 135: 49 c7 c1 fc ff ff ff movq $-0x4, %r9
// 13c: 83 f8 05 cmpl $0x5, %eax
// 13f: 7c 60 jl 0x1a1 <_JIT_ENTRY+0x1a1>
// 141: 4c 8d 58 fc leaq -0x4(%rax), %r11
// 145: 41 ba 04 00 00 00 movl $0x4, %r10d
// 14b: 49 83 fb 04 cmpq $0x4, %r11
// 14f: 72 3f jb 0x190 <_JIT_ENTRY+0x190>
// 151: 4c 89 db movq %r11, %rbx
// 154: 48 83 e3 fc andq $-0x4, %rbx
// 158: 4c 8d 53 04 leaq 0x4(%rbx), %r10
// 15c: 45 31 f6 xorl %r14d, %r14d
// 15f: 0f 57 c0 xorps %xmm0, %xmm0
// 162: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax)
// 170: 42 0f 11 44 f1 68 movups %xmm0, 0x68(%rcx,%r14,8)
// 176: 42 0f 11 44 f1 78 movups %xmm0, 0x78(%rcx,%r14,8)
// 17c: 49 83 c6 04 addq $0x4, %r14
// 180: 4c 39 f3 cmpq %r14, %rbx
// 183: 75 eb jne 0x170 <_JIT_ENTRY+0x170>
// 185: 49 39 db cmpq %rbx, %r11
// 188: 74 17 je 0x1a1 <_JIT_ENTRY+0x1a1>
// 18a: 66 0f 1f 44 00 00 nopw (%rax,%rax)
// 190: 4a c7 44 d1 48 00 00 00 00 movq $0x0, 0x48(%rcx,%r10,8)
// 199: 49 ff c2 incq %r10
// 19c: 4c 39 d0 cmpq %r10, %rax
// 19f: 75 ef jne 0x190 <_JIT_ENTRY+0x190>
// 1a1: 4a 8b 04 ce movq (%rsi,%r9,8), %rax
// 1a5: 48 89 41 48 movq %rax, 0x48(%rcx)
// 1a9: 4a 8b 44 ce 08 movq 0x8(%rsi,%r9,8), %rax
// 1ae: 48 89 41 50 movq %rax, 0x50(%rcx)
// 1b2: 4a 8b 44 ce 10 movq 0x10(%rsi,%r9,8), %rax
// 1b7: 48 89 41 58 movq %rax, 0x58(%rcx)
// 1bb: 4a 8b 44 ce 18 movq 0x18(%rsi,%r9,8), %rax
// 1c0: 48 89 41 60 movq %rax, 0x60(%rcx)
// 1c4: 48 8d 46 d8 leaq -0x28(%rsi), %rax
// 1c8: 4d 85 c0 testq %r8, %r8
// 1cb: 74 09 je 0x1d6 <_JIT_ENTRY+0x1d6>
// 1cd: 4e 8b 44 ce 20 movq 0x20(%rsi,%r9,8), %r8
// 1d2: 4c 89 41 68 movq %r8, 0x68(%rcx)
// 1d6: 48 89 4e d0 movq %rcx, -0x30(%rsi)
// 1da: 48 89 c6 movq %rax, %rsi
// 1dd: 5b popq %rbx
// 1de: 41 5e popq %r14
// 1e0: ff 25 00 00 00 00 jmpq *(%rip) # 0x1e6 <_JIT_ENTRY+0x1e6>
// 00000000000001e2: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 1e0:
static const unsigned char _INIT_CALL_PY_EXACT_ARGS_4_code_body[481] = {
0x41, 0x56, 0x53, 0x48, 0x8b, 0x46, 0xd0, 0x4c,
0x8b, 0x46, 0xd8, 0x4c, 0x8b, 0x48, 0x30, 0x48,
0x8b, 0x8a, 0x08, 0x01, 0x00, 0x00, 0x4d, 0x63,
0x51, 0x4c, 0x4e, 0x8d, 0x14, 0xd1, 0x4c, 0x89,
0x92, 0x08, 0x01, 0x00, 0x00, 0x48, 0x89, 0x41,
0x10, 0x45, 0x8b, 0x11, 0x41, 0xff, 0xc2, 0x4d,
0x85, 0xc0, 0x0f, 0x84, 0xbe, 0x00, 0x00, 0x00,
0x45, 0x85, 0xd2, 0x74, 0x03, 0x45, 0x89, 0x11,
0x4c, 0x89, 0x09, 0x0f, 0x10, 0x40, 0x10, 0x0f,
0x11, 0x41, 0x18, 0x48, 0xc7, 0x41, 0x28, 0x00,
0x00, 0x00, 0x00, 0x41, 0x8b, 0x41, 0x48, 0x89,
0x41, 0x40, 0x48, 0xc7, 0x41, 0x30, 0x00, 0x00,
0x00, 0x00, 0x49, 0x81, 0xc1, 0xc8, 0x00, 0x00,
0x00, 0x4c, 0x89, 0x49, 0x38, 0x66, 0xc7, 0x41,
0x44, 0x00, 0x00, 0xc6, 0x41, 0x46, 0x00, 0x49,
0xc7, 0xc1, 0xfb, 0xff, 0xff, 0xff, 0x83, 0xf8,
0x06, 0x0f, 0x8c, 0x1a, 0x01, 0x00, 0x00, 0x4c,
0x8d, 0x58, 0xfb, 0x41, 0xba, 0x05, 0x00, 0x00,
0x00, 0x49, 0x83, 0xfb, 0x04, 0x72, 0x49, 0x4c,
0x89, 0xdb, 0x48, 0x83, 0xe3, 0xfc, 0x4c, 0x8d,
0x53, 0x05, 0x45, 0x31, 0xf6, 0x0f, 0x57, 0xc0,
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00,
0x42, 0x0f, 0x11, 0x44, 0xf1, 0x70, 0x42, 0x0f,
0x11, 0x84, 0xf1, 0x80, 0x00, 0x00, 0x00, 0x49,
0x83, 0xc6, 0x04, 0x4c, 0x39, 0xf3, 0x75, 0xe8,
0x49, 0x39, 0xdb, 0x0f, 0x84, 0xd0, 0x00, 0x00,
0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x2e,
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00,
0x4a, 0xc7, 0x44, 0xd1, 0x48, 0x00, 0x00, 0x00,
0x00, 0x49, 0xff, 0xc2, 0x4c, 0x39, 0xd0, 0x75,
0xef, 0xe9, 0xab, 0x00, 0x00, 0x00, 0x45, 0x85,
0xd2, 0x74, 0x03, 0x45, 0x89, 0x11, 0x4c, 0x89,
0x09, 0x0f, 0x10, 0x40, 0x10, 0x0f, 0x11, 0x41,
0x18, 0x48, 0xc7, 0x41, 0x28, 0x00, 0x00, 0x00,
0x00, 0x41, 0x8b, 0x41, 0x48, 0x89, 0x41, 0x40,
0x48, 0xc7, 0x41, 0x30, 0x00, 0x00, 0x00, 0x00,
0x49, 0x81, 0xc1, 0xc8, 0x00, 0x00, 0x00, 0x4c,
0x89, 0x49, 0x38, 0x66, 0xc7, 0x41, 0x44, 0x00,
0x00, 0xc6, 0x41, 0x46, 0x00, 0x49, 0xc7, 0xc1,
0xfc, 0xff, 0xff, 0xff, 0x83, 0xf8, 0x05, 0x7c,
0x60, 0x4c, 0x8d, 0x58, 0xfc, 0x41, 0xba, 0x04,
0x00, 0x00, 0x00, 0x49, 0x83, 0xfb, 0x04, 0x72,
0x3f, 0x4c, 0x89, 0xdb, 0x48, 0x83, 0xe3, 0xfc,
0x4c, 0x8d, 0x53, 0x04, 0x45, 0x31, 0xf6, 0x0f,
0x57, 0xc0, 0x66, 0x66, 0x66, 0x66, 0x66, 0x2e,
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00,
0x42, 0x0f, 0x11, 0x44, 0xf1, 0x68, 0x42, 0x0f,
0x11, 0x44, 0xf1, 0x78, 0x49, 0x83, 0xc6, 0x04,
0x4c, 0x39, 0xf3, 0x75, 0xeb, 0x49, 0x39, 0xdb,
0x74, 0x17, 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00,
0x4a, 0xc7, 0x44, 0xd1, 0x48, 0x00, 0x00, 0x00,
0x00, 0x49, 0xff, 0xc2, 0x4c, 0x39, 0xd0, 0x75,
0xef, 0x4a, 0x8b, 0x04, 0xce, 0x48, 0x89, 0x41,
0x48, 0x4a, 0x8b, 0x44, 0xce, 0x08, 0x48, 0x89,
0x41, 0x50, 0x4a, 0x8b, 0x44, 0xce, 0x10, 0x48,
0x89, 0x41, 0x58, 0x4a, 0x8b, 0x44, 0xce, 0x18,
0x48, 0x89, 0x41, 0x60, 0x48, 0x8d, 0x46, 0xd8,
0x4d, 0x85, 0xc0, 0x74, 0x09, 0x4e, 0x8b, 0x44,
0xce, 0x20, 0x4c, 0x89, 0x41, 0x68, 0x48, 0x89,
0x4e, 0xd0, 0x48, 0x89, 0xc6, 0x5b, 0x41, 0x5e,
};
static const Hole _INIT_CALL_PY_EXACT_ARGS_4_code_holes[1];
// 0:
static const unsigned char _INIT_CALL_PY_EXACT_ARGS_4_data_body[1];
static const Hole _INIT_CALL_PY_EXACT_ARGS_4_data_holes[1];
// _INTERNAL_INCREMENT_OPT_COUNTER
//
// /tmp/tmp2mfmnab2/_INTERNAL_INCREMENT_OPT_COUNTER.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax
// 4: 48 ff 40 20 incq 0x20(%rax)
// 8: 48 83 c6 f8 addq $-0x8, %rsi
// c: ff 25 00 00 00 00 jmpq *(%rip) # 0x12 <_JIT_ENTRY+0x12>
// 000000000000000e: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// c:
static const unsigned char _INTERNAL_INCREMENT_OPT_COUNTER_code_body[13] = {
0x48, 0x8b, 0x46, 0xf8, 0x48, 0xff, 0x40, 0x20,
0x48, 0x83, 0xc6, 0xf8,
};
static const Hole _INTERNAL_INCREMENT_OPT_COUNTER_code_holes[1];
// 0:
static const unsigned char _INTERNAL_INCREMENT_OPT_COUNTER_data_body[1];
static const Hole _INTERNAL_INCREMENT_OPT_COUNTER_data_holes[1];
// _IS_NONE
//
// /tmp/tmp2mfmnab2/_IS_NONE.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 54 pushq %r12
// 6: 53 pushq %rbx
// 7: 50 pushq %rax
// 8: 48 89 d3 movq %rdx, %rbx
// b: 49 89 f6 movq %rsi, %r14
// e: 49 89 ff movq %rdi, %r15
// 11: 48 8b 7e f8 movq -0x8(%rsi), %rdi
// 15: 48 3b 3d 00 00 00 00 cmpq (%rip), %rdi # 0x1c <_JIT_ENTRY+0x1c>
// 0000000000000018: R_X86_64_REX_GOTPCRELX _Py_NoneStruct-0x4
// 1c: 74 1e je 0x3c <_JIT_ENTRY+0x3c>
// 1e: 48 8b 07 movq (%rdi), %rax
// 21: 4c 8b 25 00 00 00 00 movq (%rip), %r12 # 0x28 <_JIT_ENTRY+0x28>
// 0000000000000024: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4
// 28: 85 c0 testl %eax, %eax
// 2a: 78 17 js 0x43 <_JIT_ENTRY+0x43>
// 2c: 48 ff c8 decq %rax
// 2f: 48 89 07 movq %rax, (%rdi)
// 32: 75 0f jne 0x43 <_JIT_ENTRY+0x43>
// 34: ff 15 00 00 00 00 callq *(%rip) # 0x3a <_JIT_ENTRY+0x3a>
// 0000000000000036: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 3a: eb 07 jmp 0x43 <_JIT_ENTRY+0x43>
// 3c: 4c 8b 25 00 00 00 00 movq (%rip), %r12 # 0x43 <_JIT_ENTRY+0x43>
// 000000000000003f: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4
// 43: 4d 89 66 f8 movq %r12, -0x8(%r14)
// 47: 4c 89 ff movq %r15, %rdi
// 4a: 4c 89 f6 movq %r14, %rsi
// 4d: 48 89 da movq %rbx, %rdx
// 50: 48 83 c4 08 addq $0x8, %rsp
// 54: 5b popq %rbx
// 55: 41 5c popq %r12
// 57: 41 5e popq %r14
// 59: 41 5f popq %r15
// 5b: ff 25 00 00 00 00 jmpq *(%rip) # 0x61 <_JIT_ENTRY+0x61>
// 000000000000005d: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 5b:
static const unsigned char _IS_NONE_code_body[92] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x54, 0x53, 0x50,
0x48, 0x89, 0xd3, 0x49, 0x89, 0xf6, 0x49, 0x89,
0xff, 0x48, 0x8b, 0x7e, 0xf8, 0x48, 0x3b, 0x3d,
0x00, 0x00, 0x00, 0x00, 0x74, 0x1e, 0x48, 0x8b,
0x07, 0x4c, 0x8b, 0x25, 0x00, 0x00, 0x00, 0x00,
0x85, 0xc0, 0x78, 0x17, 0x48, 0xff, 0xc8, 0x48,
0x89, 0x07, 0x75, 0x0f, 0xff, 0x15, 0x00, 0x00,
0x00, 0x00, 0xeb, 0x07, 0x4c, 0x8b, 0x25, 0x00,
0x00, 0x00, 0x00, 0x4d, 0x89, 0x66, 0xf8, 0x4c,
0x89, 0xff, 0x4c, 0x89, 0xf6, 0x48, 0x89, 0xda,
0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41,
0x5e, 0x41, 0x5f,
};
static const Hole _IS_NONE_code_holes[5] = {
{0x18, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x24, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x36, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x3f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
};
// 0:
// 0: &_Py_NoneStruct+0x0
// 8: &_Py_FalseStruct+0x0
// 10: &_Py_Dealloc+0x0
// 18: &_Py_TrueStruct+0x0
static const unsigned char _IS_NONE_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _IS_NONE_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_NoneStruct, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0},
};
// _IS_OP
//
// /tmp/tmp2mfmnab2/_IS_OP.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 55 pushq %r13
// 6: 41 54 pushq %r12
// 8: 53 pushq %rbx
// 9: 48 89 d3 movq %rdx, %rbx
// c: 49 89 f7 movq %rsi, %r15
// f: 49 89 fe movq %rdi, %r14
// 12: 4c 8b 66 f0 movq -0x10(%rsi), %r12
// 16: 4c 8b 6e f8 movq -0x8(%rsi), %r13
// 1a: 49 8b 04 24 movq (%r12), %rax
// 1e: 85 c0 testl %eax, %eax
// 20: 78 09 js 0x2b <_JIT_ENTRY+0x2b>
// 22: 48 ff c8 decq %rax
// 25: 49 89 04 24 movq %rax, (%r12)
// 29: 74 1c je 0x47 <_JIT_ENTRY+0x47>
// 2b: 49 8b 45 00 movq (%r13), %rax
// 2f: 85 c0 testl %eax, %eax
// 31: 78 25 js 0x58 <_JIT_ENTRY+0x58>
// 33: 48 ff c8 decq %rax
// 36: 49 89 45 00 movq %rax, (%r13)
// 3a: 75 1c jne 0x58 <_JIT_ENTRY+0x58>
// 3c: 4c 89 ef movq %r13, %rdi
// 3f: ff 15 00 00 00 00 callq *(%rip) # 0x45 <_JIT_ENTRY+0x45>
// 0000000000000041: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 45: eb 11 jmp 0x58 <_JIT_ENTRY+0x58>
// 47: 4c 89 e7 movq %r12, %rdi
// 4a: ff 15 00 00 00 00 callq *(%rip) # 0x50 <_JIT_ENTRY+0x50>
// 000000000000004c: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 50: 49 8b 45 00 movq (%r13), %rax
// 54: 85 c0 testl %eax, %eax
// 56: 79 db jns 0x33 <_JIT_ENTRY+0x33>
// 58: 49 8d 77 f8 leaq -0x8(%r15), %rsi
// 5c: 31 c0 xorl %eax, %eax
// 5e: 4d 39 ec cmpq %r13, %r12
// 61: 0f 94 c0 sete %al
// 64: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x6b <_JIT_ENTRY+0x6b>
// 0000000000000067: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4
// 6b: 66 39 c8 cmpw %cx, %ax
// 6e: 75 09 jne 0x79 <_JIT_ENTRY+0x79>
// 70: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x77 <_JIT_ENTRY+0x77>
// 0000000000000073: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4
// 77: eb 07 jmp 0x80 <_JIT_ENTRY+0x80>
// 79: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x80 <_JIT_ENTRY+0x80>
// 000000000000007c: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4
// 80: 49 89 47 f0 movq %rax, -0x10(%r15)
// 84: 4c 89 f7 movq %r14, %rdi
// 87: 48 89 da movq %rbx, %rdx
// 8a: 5b popq %rbx
// 8b: 41 5c popq %r12
// 8d: 41 5d popq %r13
// 8f: 41 5e popq %r14
// 91: 41 5f popq %r15
// 93: ff 25 00 00 00 00 jmpq *(%rip) # 0x99 <_JIT_ENTRY+0x99>
// 0000000000000095: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 93:
static const unsigned char _IS_OP_code_body[148] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54,
0x53, 0x48, 0x89, 0xd3, 0x49, 0x89, 0xf7, 0x49,
0x89, 0xfe, 0x4c, 0x8b, 0x66, 0xf0, 0x4c, 0x8b,
0x6e, 0xf8, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0,
0x78, 0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x04,
0x24, 0x74, 0x1c, 0x49, 0x8b, 0x45, 0x00, 0x85,
0xc0, 0x78, 0x25, 0x48, 0xff, 0xc8, 0x49, 0x89,
0x45, 0x00, 0x75, 0x1c, 0x4c, 0x89, 0xef, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x11, 0x4c,
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0, 0x79, 0xdb,
0x49, 0x8d, 0x77, 0xf8, 0x31, 0xc0, 0x4d, 0x39,
0xec, 0x0f, 0x94, 0xc0, 0x48, 0x8b, 0x0d, 0x00,
0x00, 0x00, 0x00, 0x66, 0x39, 0xc8, 0x75, 0x09,
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0xeb,
0x07, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x49, 0x89, 0x47, 0xf0, 0x4c, 0x89, 0xf7, 0x48,
0x89, 0xda, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41,
0x5e, 0x41, 0x5f,
};
static const Hole _IS_OP_code_holes[6] = {
{0x41, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x4c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x67, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x73, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x7c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
};
// 0:
// 0: &_Py_Dealloc+0x0
// 8: OPARG
// 10: &_Py_FalseStruct+0x0
// 18: &_Py_TrueStruct+0x0
static const unsigned char _IS_OP_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _IS_OP_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0},
};
// _ITER_CHECK_LIST
//
// /tmp/tmp2mfmnab2/_ITER_CHECK_LIST.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax
// 4: 48 8b 40 08 movq 0x8(%rax), %rax
// 8: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0xf <_JIT_ENTRY+0xf>
// 000000000000000b: R_X86_64_REX_GOTPCRELX PyListIter_Type-0x4
// f: 74 30 je 0x41 <_JIT_ENTRY+0x41>
// 11: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x18 <_JIT_ENTRY+0x18>
// 0000000000000014: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 18: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 1f: 48 29 fe subq %rdi, %rsi
// 22: 48 83 c6 b8 addq $-0x48, %rsi
// 26: 48 c1 ee 03 shrq $0x3, %rsi
// 2a: 89 77 40 movl %esi, 0x40(%rdi)
// 2d: 48 8b 07 movq (%rdi), %rax
// 30: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x36 <_JIT_ENTRY+0x36>
// 0000000000000032: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 36: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 3a: 48 05 c8 00 00 00 addq $0xc8, %rax
// 40: c3 retq
// 41: ff 25 00 00 00 00 jmpq *(%rip) # 0x47 <_JIT_ENTRY+0x47>
// 0000000000000043: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 41:
static const unsigned char _ITER_CHECK_LIST_code_body[66] = {
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x40, 0x08,
0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x74,
0x30, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x48, 0x89, 0x82, 0x28, 0x01, 0x00, 0x00, 0x48,
0x29, 0xfe, 0x48, 0x83, 0xc6, 0xb8, 0x48, 0xc1,
0xee, 0x03, 0x89, 0x77, 0x40, 0x48, 0x8b, 0x07,
0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d,
0x04, 0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, 0x00,
0xc3,
};
static const Hole _ITER_CHECK_LIST_code_holes[4] = {
{0xb, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x14, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x32, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
};
// 0:
// 0: &PyListIter_Type+0x0
// 8: EXECUTOR
// 10: TARGET
static const unsigned char _ITER_CHECK_LIST_data_body[25] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _ITER_CHECK_LIST_data_holes[4] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyListIter_Type, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _ITER_CHECK_RANGE
//
// /tmp/tmp2mfmnab2/_ITER_CHECK_RANGE.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax
// 4: 48 8b 40 08 movq 0x8(%rax), %rax
// 8: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0xf <_JIT_ENTRY+0xf>
// 000000000000000b: R_X86_64_REX_GOTPCRELX PyRangeIter_Type-0x4
// f: 74 30 je 0x41 <_JIT_ENTRY+0x41>
// 11: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x18 <_JIT_ENTRY+0x18>
// 0000000000000014: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 18: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 1f: 48 29 fe subq %rdi, %rsi
// 22: 48 83 c6 b8 addq $-0x48, %rsi
// 26: 48 c1 ee 03 shrq $0x3, %rsi
// 2a: 89 77 40 movl %esi, 0x40(%rdi)
// 2d: 48 8b 07 movq (%rdi), %rax
// 30: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x36 <_JIT_ENTRY+0x36>
// 0000000000000032: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 36: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 3a: 48 05 c8 00 00 00 addq $0xc8, %rax
// 40: c3 retq
// 41: ff 25 00 00 00 00 jmpq *(%rip) # 0x47 <_JIT_ENTRY+0x47>
// 0000000000000043: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 41:
static const unsigned char _ITER_CHECK_RANGE_code_body[66] = {
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x40, 0x08,
0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x74,
0x30, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x48, 0x89, 0x82, 0x28, 0x01, 0x00, 0x00, 0x48,
0x29, 0xfe, 0x48, 0x83, 0xc6, 0xb8, 0x48, 0xc1,
0xee, 0x03, 0x89, 0x77, 0x40, 0x48, 0x8b, 0x07,
0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d,
0x04, 0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, 0x00,
0xc3,
};
static const Hole _ITER_CHECK_RANGE_code_holes[4] = {
{0xb, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x14, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x32, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
};
// 0:
// 0: &PyRangeIter_Type+0x0
// 8: EXECUTOR
// 10: TARGET
static const unsigned char _ITER_CHECK_RANGE_data_body[25] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _ITER_CHECK_RANGE_data_holes[4] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyRangeIter_Type, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _ITER_CHECK_TUPLE
//
// /tmp/tmp2mfmnab2/_ITER_CHECK_TUPLE.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax
// 4: 48 8b 40 08 movq 0x8(%rax), %rax
// 8: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0xf <_JIT_ENTRY+0xf>
// 000000000000000b: R_X86_64_REX_GOTPCRELX PyTupleIter_Type-0x4
// f: 74 30 je 0x41 <_JIT_ENTRY+0x41>
// 11: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x18 <_JIT_ENTRY+0x18>
// 0000000000000014: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 18: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx)
// 1f: 48 29 fe subq %rdi, %rsi
// 22: 48 83 c6 b8 addq $-0x48, %rsi
// 26: 48 c1 ee 03 shrq $0x3, %rsi
// 2a: 89 77 40 movl %esi, 0x40(%rdi)
// 2d: 48 8b 07 movq (%rdi), %rax
// 30: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x36 <_JIT_ENTRY+0x36>
// 0000000000000032: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 36: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 3a: 48 05 c8 00 00 00 addq $0xc8, %rax
// 40: c3 retq
// 41: ff 25 00 00 00 00 jmpq *(%rip) # 0x47 <_JIT_ENTRY+0x47>
// 0000000000000043: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 41:
static const unsigned char _ITER_CHECK_TUPLE_code_body[66] = {
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x40, 0x08,
0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x74,
0x30, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x48, 0x89, 0x82, 0x28, 0x01, 0x00, 0x00, 0x48,
0x29, 0xfe, 0x48, 0x83, 0xc6, 0xb8, 0x48, 0xc1,
0xee, 0x03, 0x89, 0x77, 0x40, 0x48, 0x8b, 0x07,
0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d,
0x04, 0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, 0x00,
0xc3,
};
static const Hole _ITER_CHECK_TUPLE_code_holes[4] = {
{0xb, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x14, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x32, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
};
// 0:
// 0: &PyTupleIter_Type+0x0
// 8: EXECUTOR
// 10: TARGET
static const unsigned char _ITER_CHECK_TUPLE_data_body[25] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _ITER_CHECK_TUPLE_data_holes[4] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyTupleIter_Type, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _ITER_NEXT_LIST
//
// /tmp/tmp2mfmnab2/_ITER_NEXT_LIST.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax
// 4: 48 8b 48 10 movq 0x10(%rax), %rcx
// 8: 4c 8b 40 18 movq 0x18(%rax), %r8
// c: 4d 8b 40 18 movq 0x18(%r8), %r8
// 10: 4c 8d 49 01 leaq 0x1(%rcx), %r9
// 14: 4c 89 48 10 movq %r9, 0x10(%rax)
// 18: 49 8b 04 c8 movq (%r8,%rcx,8), %rax
// 1c: 8b 08 movl (%rax), %ecx
// 1e: ff c1 incl %ecx
// 20: 74 02 je 0x24 <_JIT_ENTRY+0x24>
// 22: 89 08 movl %ecx, (%rax)
// 24: 48 89 06 movq %rax, (%rsi)
// 27: 48 83 c6 08 addq $0x8, %rsi
// 2b: ff 25 00 00 00 00 jmpq *(%rip) # 0x31 <_JIT_ENTRY+0x31>
// 000000000000002d: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 2b:
static const unsigned char _ITER_NEXT_LIST_code_body[44] = {
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x48, 0x10,
0x4c, 0x8b, 0x40, 0x18, 0x4d, 0x8b, 0x40, 0x18,
0x4c, 0x8d, 0x49, 0x01, 0x4c, 0x89, 0x48, 0x10,
0x49, 0x8b, 0x04, 0xc8, 0x8b, 0x08, 0xff, 0xc1,
0x74, 0x02, 0x89, 0x08, 0x48, 0x89, 0x06, 0x48,
0x83, 0xc6, 0x08,
};
static const Hole _ITER_NEXT_LIST_code_holes[1];
// 0:
static const unsigned char _ITER_NEXT_LIST_data_body[1];
static const Hole _ITER_NEXT_LIST_data_holes[1];
// _ITER_NEXT_RANGE
//
// /tmp/tmp2mfmnab2/_ITER_NEXT_RANGE.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 53 pushq %rbx
// 5: 49 89 d7 movq %rdx, %r15
// 8: 48 89 f3 movq %rsi, %rbx
// b: 49 89 fe movq %rdi, %r14
// e: 48 8b 46 f8 movq -0x8(%rsi), %rax
// 12: 48 8b 78 10 movq 0x10(%rax), %rdi
// 16: 48 8b 48 18 movq 0x18(%rax), %rcx
// 1a: 48 01 f9 addq %rdi, %rcx
// 1d: 48 89 48 10 movq %rcx, 0x10(%rax)
// 21: 48 ff 48 20 decq 0x20(%rax)
// 25: ff 15 00 00 00 00 callq *(%rip) # 0x2b <_JIT_ENTRY+0x2b>
// 0000000000000027: R_X86_64_GOTPCRELX PyLong_FromLong-0x4
// 2b: 48 85 c0 testq %rax, %rax
// 2e: 74 1b je 0x4b <_JIT_ENTRY+0x4b>
// 30: 48 89 03 movq %rax, (%rbx)
// 33: 48 83 c3 08 addq $0x8, %rbx
// 37: 4c 89 f7 movq %r14, %rdi
// 3a: 48 89 de movq %rbx, %rsi
// 3d: 4c 89 fa movq %r15, %rdx
// 40: 5b popq %rbx
// 41: 41 5e popq %r14
// 43: 41 5f popq %r15
// 45: ff 25 00 00 00 00 jmpq *(%rip) # 0x4b <_JIT_ENTRY+0x4b>
// 0000000000000047: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 4b: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x52 <_JIT_ENTRY+0x52>
// 000000000000004e: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 52: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 59: 4c 29 f3 subq %r14, %rbx
// 5c: 48 83 c3 b8 addq $-0x48, %rbx
// 60: 48 c1 eb 03 shrq $0x3, %rbx
// 64: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 68: 31 c0 xorl %eax, %eax
// 6a: 5b popq %rbx
// 6b: 41 5e popq %r14
// 6d: 41 5f popq %r15
// 6f: c3 retq
// 70:
static const unsigned char _ITER_NEXT_RANGE_code_body[113] = {
0x41, 0x57, 0x41, 0x56, 0x53, 0x49, 0x89, 0xd7,
0x48, 0x89, 0xf3, 0x49, 0x89, 0xfe, 0x48, 0x8b,
0x46, 0xf8, 0x48, 0x8b, 0x78, 0x10, 0x48, 0x8b,
0x48, 0x18, 0x48, 0x01, 0xf9, 0x48, 0x89, 0x48,
0x10, 0x48, 0xff, 0x48, 0x20, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x48, 0x85, 0xc0, 0x74, 0x1b,
0x48, 0x89, 0x03, 0x48, 0x83, 0xc3, 0x08, 0x4c,
0x89, 0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa,
0x5b, 0x41, 0x5e, 0x41, 0x5f, 0xff, 0x25, 0x00,
0x00, 0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00,
0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00,
0x00, 0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8,
0x48, 0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40,
0x31, 0xc0, 0x5b, 0x41, 0x5e, 0x41, 0x5f, 0xc3,
};
static const Hole _ITER_NEXT_RANGE_code_holes[4] = {
{0x27, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x47, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x4e, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
};
// 0:
// 0: &PyLong_FromLong+0x0
// 8: CONTINUE
// 10: EXECUTOR
static const unsigned char _ITER_NEXT_RANGE_data_body[25] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _ITER_NEXT_RANGE_data_holes[4] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyLong_FromLong, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _ITER_NEXT_TUPLE
//
// /tmp/tmp2mfmnab2/_ITER_NEXT_TUPLE.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax
// 4: 48 8b 48 10 movq 0x10(%rax), %rcx
// 8: 4c 8b 40 18 movq 0x18(%rax), %r8
// c: 4c 8d 49 01 leaq 0x1(%rcx), %r9
// 10: 4c 89 48 10 movq %r9, 0x10(%rax)
// 14: 49 8b 44 c8 18 movq 0x18(%r8,%rcx,8), %rax
// 19: 8b 08 movl (%rax), %ecx
// 1b: ff c1 incl %ecx
// 1d: 74 02 je 0x21 <_JIT_ENTRY+0x21>
// 1f: 89 08 movl %ecx, (%rax)
// 21: 48 89 06 movq %rax, (%rsi)
// 24: 48 83 c6 08 addq $0x8, %rsi
// 28: ff 25 00 00 00 00 jmpq *(%rip) # 0x2e <_JIT_ENTRY+0x2e>
// 000000000000002a: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 28:
static const unsigned char _ITER_NEXT_TUPLE_code_body[41] = {
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x48, 0x10,
0x4c, 0x8b, 0x40, 0x18, 0x4c, 0x8d, 0x49, 0x01,
0x4c, 0x89, 0x48, 0x10, 0x49, 0x8b, 0x44, 0xc8,
0x18, 0x8b, 0x08, 0xff, 0xc1, 0x74, 0x02, 0x89,
0x08, 0x48, 0x89, 0x06, 0x48, 0x83, 0xc6, 0x08,
};
static const Hole _ITER_NEXT_TUPLE_code_holes[1];
// 0:
static const unsigned char _ITER_NEXT_TUPLE_data_body[1];
static const Hole _ITER_NEXT_TUPLE_data_holes[1];
// _JUMP_TO_TOP
//
// /tmp/tmp2mfmnab2/_JUMP_TO_TOP.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 53 pushq %rbx
// 5: 49 89 d7 movq %rdx, %r15
// 8: 48 89 f3 movq %rsi, %rbx
// b: 49 89 fe movq %rdi, %r14
// e: 48 8b 42 18 movq 0x18(%rdx), %rax
// 12: 84 c0 testb %al, %al
// 14: 74 32 je 0x48 <_JIT_ENTRY+0x48>
// 16: 4c 89 ff movq %r15, %rdi
// 19: ff 15 00 00 00 00 callq *(%rip) # 0x1f <_JIT_ENTRY+0x1f>
// 000000000000001b: R_X86_64_GOTPCRELX _Py_HandlePending-0x4
// 1f: 85 c0 testl %eax, %eax
// 21: 74 25 je 0x48 <_JIT_ENTRY+0x48>
// 23: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x2a <_JIT_ENTRY+0x2a>
// 0000000000000026: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 2a: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 31: 4c 29 f3 subq %r14, %rbx
// 34: 48 83 c3 b8 addq $-0x48, %rbx
// 38: 48 c1 eb 03 shrq $0x3, %rbx
// 3c: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 40: 31 c0 xorl %eax, %eax
// 42: 5b popq %rbx
// 43: 41 5e popq %r14
// 45: 41 5f popq %r15
// 47: c3 retq
// 48: 4c 89 f7 movq %r14, %rdi
// 4b: 48 89 de movq %rbx, %rsi
// 4e: 4c 89 fa movq %r15, %rdx
// 51: 5b popq %rbx
// 52: 41 5e popq %r14
// 54: 41 5f popq %r15
// 56: ff 25 00 00 00 00 jmpq *(%rip) # 0x5c <_JIT_ENTRY+0x5c>
// 0000000000000058: R_X86_64_GOTPCRELX _JIT_TOP-0x4
// 5c:
static const unsigned char _JUMP_TO_TOP_code_body[93] = {
0x41, 0x57, 0x41, 0x56, 0x53, 0x49, 0x89, 0xd7,
0x48, 0x89, 0xf3, 0x49, 0x89, 0xfe, 0x48, 0x8b,
0x42, 0x18, 0x84, 0xc0, 0x74, 0x32, 0x4c, 0x89,
0xff, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x85,
0xc0, 0x74, 0x25, 0x48, 0x8b, 0x05, 0x00, 0x00,
0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00,
0x00, 0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8,
0x48, 0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40,
0x31, 0xc0, 0x5b, 0x41, 0x5e, 0x41, 0x5f, 0xc3,
0x4c, 0x89, 0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89,
0xfa, 0x5b, 0x41, 0x5e, 0x41, 0x5f, 0xff, 0x25,
0x00, 0x00, 0x00, 0x00,
};
static const Hole _JUMP_TO_TOP_code_holes[4] = {
{0x1b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x26, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x58, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
};
// 0:
// 0: &_Py_HandlePending+0x0
// 8: EXECUTOR
// 10: TOP
static const unsigned char _JUMP_TO_TOP_data_body[25] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _JUMP_TO_TOP_data_holes[4] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_HandlePending, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_TOP, NULL, 0x0},
};
// _LIST_APPEND
//
// /tmp/tmp2mfmnab2/_LIST_APPEND.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 53 pushq %rbx
// 5: 49 89 d7 movq %rdx, %r15
// 8: 48 89 f0 movq %rsi, %rax
// b: 48 89 fb movq %rdi, %rbx
// e: 4c 8d 76 f8 leaq -0x8(%rsi), %r14
// 12: 48 8b 76 f8 movq -0x8(%rsi), %rsi
// 16: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x1c <_JIT_ENTRY+0x1c>
// 0000000000000018: R_X86_64_GOTPCRELX _JIT_OPARG-0x4
// 1c: f7 d1 notl %ecx
// 1e: 81 c9 00 00 ff ff orl $0xffff0000, %ecx # imm = 0xFFFF0000
// 24: 48 63 c9 movslq %ecx, %rcx
// 27: 48 8b 3c c8 movq (%rax,%rcx,8), %rdi
// 2b: 48 8b 47 10 movq 0x10(%rdi), %rax
// 2f: 48 39 47 20 cmpq %rax, 0x20(%rdi)
// 33: 7e 11 jle 0x46 <_JIT_ENTRY+0x46>
// 35: 48 8b 4f 18 movq 0x18(%rdi), %rcx
// 39: 48 89 34 c1 movq %rsi, (%rcx,%rax,8)
// 3d: 48 ff c0 incq %rax
// 40: 48 89 47 10 movq %rax, 0x10(%rdi)
// 44: eb 0a jmp 0x50 <_JIT_ENTRY+0x50>
// 46: ff 15 00 00 00 00 callq *(%rip) # 0x4c <_JIT_ENTRY+0x4c>
// 0000000000000048: R_X86_64_GOTPCRELX _PyList_AppendTakeRefListResize-0x4
// 4c: 85 c0 testl %eax, %eax
// 4e: 78 14 js 0x64 <_JIT_ENTRY+0x64>
// 50: 48 89 df movq %rbx, %rdi
// 53: 4c 89 f6 movq %r14, %rsi
// 56: 4c 89 fa movq %r15, %rdx
// 59: 5b popq %rbx
// 5a: 41 5e popq %r14
// 5c: 41 5f popq %r15
// 5e: ff 25 00 00 00 00 jmpq *(%rip) # 0x64 <_JIT_ENTRY+0x64>
// 0000000000000060: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 64: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x6b <_JIT_ENTRY+0x6b>
// 0000000000000067: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 6b: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 72: 49 29 de subq %rbx, %r14
// 75: 49 83 c6 b8 addq $-0x48, %r14
// 79: 49 c1 ee 03 shrq $0x3, %r14
// 7d: 44 89 73 40 movl %r14d, 0x40(%rbx)
// 81: 31 c0 xorl %eax, %eax
// 83: 5b popq %rbx
// 84: 41 5e popq %r14
// 86: 41 5f popq %r15
// 88: c3 retq
// 89:
static const unsigned char _LIST_APPEND_code_body[138] = {
0x41, 0x57, 0x41, 0x56, 0x53, 0x49, 0x89, 0xd7,
0x48, 0x89, 0xf0, 0x48, 0x89, 0xfb, 0x4c, 0x8d,
0x76, 0xf8, 0x48, 0x8b, 0x76, 0xf8, 0x8b, 0x0d,
0x00, 0x00, 0x00, 0x00, 0xf7, 0xd1, 0x81, 0xc9,
0x00, 0x00, 0xff, 0xff, 0x48, 0x63, 0xc9, 0x48,
0x8b, 0x3c, 0xc8, 0x48, 0x8b, 0x47, 0x10, 0x48,
0x39, 0x47, 0x20, 0x7e, 0x11, 0x48, 0x8b, 0x4f,
0x18, 0x48, 0x89, 0x34, 0xc1, 0x48, 0xff, 0xc0,
0x48, 0x89, 0x47, 0x10, 0xeb, 0x0a, 0xff, 0x15,
0x00, 0x00, 0x00, 0x00, 0x85, 0xc0, 0x78, 0x14,
0x48, 0x89, 0xdf, 0x4c, 0x89, 0xf6, 0x4c, 0x89,
0xfa, 0x5b, 0x41, 0x5e, 0x41, 0x5f, 0xff, 0x25,
0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x05, 0x00,
0x00, 0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01,
0x00, 0x00, 0x49, 0x29, 0xde, 0x49, 0x83, 0xc6,
0xb8, 0x49, 0xc1, 0xee, 0x03, 0x44, 0x89, 0x73,
0x40, 0x31, 0xc0, 0x5b, 0x41, 0x5e, 0x41, 0x5f,
0xc3,
};
static const Hole _LIST_APPEND_code_holes[5] = {
{0x18, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x48, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x60, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x67, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
};
// 0:
// 0: OPARG
// 8: &_PyList_AppendTakeRefListResize+0x0
// 10: CONTINUE
// 18: EXECUTOR
static const unsigned char _LIST_APPEND_data_body[33] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _LIST_APPEND_data_holes[5] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyList_AppendTakeRefListResize, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _LIST_EXTEND
//
// /tmp/tmp2mfmnab2/_LIST_EXTEND.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 55 pushq %r13
// 6: 41 54 pushq %r12
// 8: 53 pushq %rbx
// 9: 49 89 d7 movq %rdx, %r15
// c: 48 89 fb movq %rdi, %rbx
// f: 4c 8d 76 f8 leaq -0x8(%rsi), %r14
// 13: 4c 8b 66 f8 movq -0x8(%rsi), %r12
// 17: 8b 05 00 00 00 00 movl (%rip), %eax # 0x1d <_JIT_ENTRY+0x1d>
// 0000000000000019: R_X86_64_GOTPCRELX _JIT_OPARG-0x4
// 1d: f7 d0 notl %eax
// 1f: 0d 00 00 ff ff orl $0xffff0000, %eax # imm = 0xFFFF0000
// 24: 48 98 cltq
// 26: 48 8b 3c c6 movq (%rsi,%rax,8), %rdi
// 2a: 4c 89 e6 movq %r12, %rsi
// 2d: ff 15 00 00 00 00 callq *(%rip) # 0x33 <_JIT_ENTRY+0x33>
// 000000000000002f: R_X86_64_GOTPCRELX _PyList_Extend-0x4
// 33: 48 85 c0 testq %rax, %rax
// 36: 74 32 je 0x6a <_JIT_ENTRY+0x6a>
// 38: 49 8b 04 24 movq (%r12), %rax
// 3c: 85 c0 testl %eax, %eax
// 3e: 78 12 js 0x52 <_JIT_ENTRY+0x52>
// 40: 48 ff c8 decq %rax
// 43: 49 89 04 24 movq %rax, (%r12)
// 47: 75 09 jne 0x52 <_JIT_ENTRY+0x52>
// 49: 4c 89 e7 movq %r12, %rdi
// 4c: ff 15 00 00 00 00 callq *(%rip) # 0x52 <_JIT_ENTRY+0x52>
// 000000000000004e: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 52: 48 89 df movq %rbx, %rdi
// 55: 4c 89 f6 movq %r14, %rsi
// 58: 4c 89 fa movq %r15, %rdx
// 5b: 5b popq %rbx
// 5c: 41 5c popq %r12
// 5e: 41 5d popq %r13
// 60: 41 5e popq %r14
// 62: 41 5f popq %r15
// 64: ff 25 00 00 00 00 jmpq *(%rip) # 0x6a <_JIT_ENTRY+0x6a>
// 0000000000000066: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 6a: 4c 8b 2d 00 00 00 00 movq (%rip), %r13 # 0x71 <_JIT_ENTRY+0x71>
// 000000000000006d: R_X86_64_REX_GOTPCRELX PyExc_TypeError-0x4
// 71: 49 8b 75 00 movq (%r13), %rsi
// 75: 4c 89 ff movq %r15, %rdi
// 78: ff 15 00 00 00 00 callq *(%rip) # 0x7e <_JIT_ENTRY+0x7e>
// 000000000000007a: R_X86_64_GOTPCRELX _PyErr_ExceptionMatches-0x4
// 7e: 85 c0 testl %eax, %eax
// 80: 74 44 je 0xc6 <_JIT_ENTRY+0xc6>
// 82: 49 8b 44 24 08 movq 0x8(%r12), %rax
// 87: 48 83 b8 d8 00 00 00 00 cmpq $0x0, 0xd8(%rax)
// 8f: 75 35 jne 0xc6 <_JIT_ENTRY+0xc6>
// 91: 4c 89 e7 movq %r12, %rdi
// 94: ff 15 00 00 00 00 callq *(%rip) # 0x9a <_JIT_ENTRY+0x9a>
// 0000000000000096: R_X86_64_GOTPCRELX PySequence_Check-0x4
// 9a: 85 c0 testl %eax, %eax
// 9c: 75 28 jne 0xc6 <_JIT_ENTRY+0xc6>
// 9e: 4c 89 ff movq %r15, %rdi
// a1: ff 15 00 00 00 00 callq *(%rip) # 0xa7 <_JIT_ENTRY+0xa7>
// 00000000000000a3: R_X86_64_GOTPCRELX _PyErr_Clear-0x4
// a7: 49 8b 75 00 movq (%r13), %rsi
// ab: 49 8b 44 24 08 movq 0x8(%r12), %rax
// b0: 48 8b 48 18 movq 0x18(%rax), %rcx
// b4: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0xbb <_JIT_ENTRY+0xbb>
// 00000000000000b7: R_X86_64_PC32 .L.str.10-0x4
// bb: 4c 89 ff movq %r15, %rdi
// be: 31 c0 xorl %eax, %eax
// c0: ff 15 00 00 00 00 callq *(%rip) # 0xc6 <_JIT_ENTRY+0xc6>
// 00000000000000c2: R_X86_64_GOTPCRELX _PyErr_Format-0x4
// c6: 49 8b 04 24 movq (%r12), %rax
// ca: 85 c0 testl %eax, %eax
// cc: 78 12 js 0xe0 <_JIT_ENTRY+0xe0>
// ce: 48 ff c8 decq %rax
// d1: 49 89 04 24 movq %rax, (%r12)
// d5: 75 09 jne 0xe0 <_JIT_ENTRY+0xe0>
// d7: 4c 89 e7 movq %r12, %rdi
// da: ff 15 00 00 00 00 callq *(%rip) # 0xe0 <_JIT_ENTRY+0xe0>
// 00000000000000dc: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// e0: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xe7 <_JIT_ENTRY+0xe7>
// 00000000000000e3: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// e7: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// ee: 49 29 de subq %rbx, %r14
// f1: 49 83 c6 b8 addq $-0x48, %r14
// f5: 49 c1 ee 03 shrq $0x3, %r14
// f9: 44 89 73 40 movl %r14d, 0x40(%rbx)
// fd: 31 c0 xorl %eax, %eax
// ff: 5b popq %rbx
// 100: 41 5c popq %r12
// 102: 41 5d popq %r13
// 104: 41 5e popq %r14
// 106: 41 5f popq %r15
// 108: c3 retq
// 109:
static const unsigned char _LIST_EXTEND_code_body[266] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54,
0x53, 0x49, 0x89, 0xd7, 0x48, 0x89, 0xfb, 0x4c,
0x8d, 0x76, 0xf8, 0x4c, 0x8b, 0x66, 0xf8, 0x8b,
0x05, 0x00, 0x00, 0x00, 0x00, 0xf7, 0xd0, 0x0d,
0x00, 0x00, 0xff, 0xff, 0x48, 0x98, 0x48, 0x8b,
0x3c, 0xc6, 0x4c, 0x89, 0xe6, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x48, 0x85, 0xc0, 0x74, 0x32,
0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, 0x12,
0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, 0x75,
0x09, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00,
0x00, 0x00, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xf6,
0x4c, 0x89, 0xfa, 0x5b, 0x41, 0x5c, 0x41, 0x5d,
0x41, 0x5e, 0x41, 0x5f, 0xff, 0x25, 0x00, 0x00,
0x00, 0x00, 0x4c, 0x8b, 0x2d, 0x00, 0x00, 0x00,
0x00, 0x49, 0x8b, 0x75, 0x00, 0x4c, 0x89, 0xff,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x85, 0xc0,
0x74, 0x44, 0x49, 0x8b, 0x44, 0x24, 0x08, 0x48,
0x83, 0xb8, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x75,
0x35, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00,
0x00, 0x00, 0x85, 0xc0, 0x75, 0x28, 0x4c, 0x89,
0xff, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x49,
0x8b, 0x75, 0x00, 0x49, 0x8b, 0x44, 0x24, 0x08,
0x48, 0x8b, 0x48, 0x18, 0x48, 0x8d, 0x15, 0x00,
0x00, 0x00, 0x00, 0x4c, 0x89, 0xff, 0x31, 0xc0,
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x49, 0x8b,
0x04, 0x24, 0x85, 0xc0, 0x78, 0x12, 0x48, 0xff,
0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x09, 0x4c,
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49,
0x89, 0x87, 0x28, 0x01, 0x00, 0x00, 0x49, 0x29,
0xde, 0x49, 0x83, 0xc6, 0xb8, 0x49, 0xc1, 0xee,
0x03, 0x44, 0x89, 0x73, 0x40, 0x31, 0xc0, 0x5b,
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f,
0xc3,
};
static const Hole _LIST_EXTEND_code_holes[13] = {
{0x19, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x2c},
{0x2f, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x34},
{0x4e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c},
{0x66, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x44},
{0x6d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4c},
{0x7a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x54},
{0x96, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x5c},
{0xa3, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x64},
{0xb7, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4},
{0xc2, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x6c},
{0xdc, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c},
{0xe3, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x74},
};
// 0: 'Value after * must be an iterable, not %.200s\x00'
// 2e: 00 00
// 30: OPARG
// 38: &_PyList_Extend+0x0
// 40: &_Py_Dealloc+0x0
// 48: CONTINUE
// 50: &PyExc_TypeError+0x0
// 58: &_PyErr_ExceptionMatches+0x0
// 60: &PySequence_Check+0x0
// 68: &_PyErr_Clear+0x0
// 70: &_PyErr_Format+0x0
// 78: EXECUTOR
static const unsigned char _LIST_EXTEND_data_body[129] = {
0x56, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x66,
0x74, 0x65, 0x72, 0x20, 0x2a, 0x20, 0x6d, 0x75,
0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x6e,
0x20, 0x69, 0x74, 0x65, 0x72, 0x61, 0x62, 0x6c,
0x65, 0x2c, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x25,
0x2e, 0x32, 0x30, 0x30, 0x73, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _LIST_EXTEND_data_holes[11] = {
{0x30, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x38, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyList_Extend, 0x0},
{0x40, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x48, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x50, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_TypeError, 0x0},
{0x58, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_ExceptionMatches, 0x0},
{0x60, HoleKind_R_X86_64_64, HoleValue_ZERO, &PySequence_Check, 0x0},
{0x68, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_Clear, 0x0},
{0x70, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_Format, 0x0},
{0x78, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _LOAD_ASSERTION_ERROR
//
// /tmp/tmp2mfmnab2/_LOAD_ASSERTION_ERROR.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x7 <_JIT_ENTRY+0x7>
// 0000000000000003: R_X86_64_REX_GOTPCRELX PyExc_AssertionError-0x4
// 7: 48 8b 00 movq (%rax), %rax
// a: 8b 08 movl (%rax), %ecx
// c: ff c1 incl %ecx
// e: 74 02 je 0x12 <_JIT_ENTRY+0x12>
// 10: 89 08 movl %ecx, (%rax)
// 12: 48 89 06 movq %rax, (%rsi)
// 15: 48 83 c6 08 addq $0x8, %rsi
// 19: ff 25 00 00 00 00 jmpq *(%rip) # 0x1f <_JIT_ENTRY+0x1f>
// 000000000000001b: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 19:
static const unsigned char _LOAD_ASSERTION_ERROR_code_body[26] = {
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48,
0x8b, 0x00, 0x8b, 0x08, 0xff, 0xc1, 0x74, 0x02,
0x89, 0x08, 0x48, 0x89, 0x06, 0x48, 0x83, 0xc6,
0x08,
};
static const Hole _LOAD_ASSERTION_ERROR_code_holes[2] = {
{0x3, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
};
// 0:
// 0: &PyExc_AssertionError+0x0
static const unsigned char _LOAD_ASSERTION_ERROR_data_body[9] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _LOAD_ASSERTION_ERROR_data_holes[2] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_AssertionError, 0x0},
};
// _LOAD_ATTR
//
// /tmp/tmp2mfmnab2/_LOAD_ATTR.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 55 pushq %rbp
// 1: 41 57 pushq %r15
// 3: 41 56 pushq %r14
// 5: 41 55 pushq %r13
// 7: 41 54 pushq %r12
// 9: 53 pushq %rbx
// a: 50 pushq %rax
// b: 49 89 d6 movq %rdx, %r14
// e: 49 89 f7 movq %rsi, %r15
// 11: 48 89 fb movq %rdi, %rbx
// 14: 4c 8d 6e f8 leaq -0x8(%rsi), %r13
// 18: 4c 8b 66 f8 movq -0x8(%rsi), %r12
// 1c: 48 8b 07 movq (%rdi), %rax
// 1f: 48 8b 40 20 movq 0x20(%rax), %rax
// 23: 8b 2d 00 00 00 00 movl (%rip), %ebp # 0x29 <_JIT_ENTRY+0x29>
// 0000000000000025: R_X86_64_GOTPCRELX _JIT_OPARG-0x4
// 29: 89 e9 movl %ebp, %ecx
// 2b: 81 e1 fe ff 00 00 andl $0xfffe, %ecx # imm = 0xFFFE
// 31: 48 8b 74 88 18 movq 0x18(%rax,%rcx,4), %rsi
// 36: 40 f6 c5 01 testb $0x1, %bpl
// 3a: 74 2b je 0x67 <_JIT_ENTRY+0x67>
// 3c: 48 c7 04 24 00 00 00 00 movq $0x0, (%rsp)
// 44: 48 89 e2 movq %rsp, %rdx
// 47: 4c 89 e7 movq %r12, %rdi
// 4a: ff 15 00 00 00 00 callq *(%rip) # 0x50 <_JIT_ENTRY+0x50>
// 000000000000004c: R_X86_64_GOTPCRELX _PyObject_GetMethod-0x4
// 50: 85 c0 testl %eax, %eax
// 52: 74 33 je 0x87 <_JIT_ENTRY+0x87>
// 54: 48 8b 04 24 movq (%rsp), %rax
// 58: 49 89 45 00 movq %rax, (%r13)
// 5c: f6 05 00 00 00 00 01 testb $0x1, (%rip) # 0x63 <_JIT_ENTRY+0x63>
// 000000000000005e: R_X86_64_GOTPCREL _JIT_OPARG-0x5
// 63: 75 55 jne 0xba <_JIT_ENTRY+0xba>
// 65: eb 56 jmp 0xbd <_JIT_ENTRY+0xbd>
// 67: 4c 89 e7 movq %r12, %rdi
// 6a: ff 15 00 00 00 00 callq *(%rip) # 0x70 <_JIT_ENTRY+0x70>
// 000000000000006c: R_X86_64_GOTPCRELX PyObject_GetAttr-0x4
// 70: 48 89 04 24 movq %rax, (%rsp)
// 74: 49 8b 0c 24 movq (%r12), %rcx
// 78: 85 c9 testl %ecx, %ecx
// 7a: 78 29 js 0xa5 <_JIT_ENTRY+0xa5>
// 7c: 48 ff c9 decq %rcx
// 7f: 49 89 0c 24 movq %rcx, (%r12)
// 83: 75 1c jne 0xa1 <_JIT_ENTRY+0xa1>
// 85: eb 11 jmp 0x98 <_JIT_ENTRY+0x98>
// 87: 49 8b 04 24 movq (%r12), %rax
// 8b: 85 c0 testl %eax, %eax
// 8d: 78 12 js 0xa1 <_JIT_ENTRY+0xa1>
// 8f: 48 ff c8 decq %rax
// 92: 49 89 04 24 movq %rax, (%r12)
// 96: 75 09 jne 0xa1 <_JIT_ENTRY+0xa1>
// 98: 4c 89 e7 movq %r12, %rdi
// 9b: ff 15 00 00 00 00 callq *(%rip) # 0xa1 <_JIT_ENTRY+0xa1>
// 000000000000009d: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// a1: 48 8b 04 24 movq (%rsp), %rax
// a5: 48 85 c0 testq %rax, %rax
// a8: 74 34 je 0xde <_JIT_ENTRY+0xde>
// aa: 45 31 e4 xorl %r12d, %r12d
// ad: 49 89 45 00 movq %rax, (%r13)
// b1: f6 05 00 00 00 00 01 testb $0x1, (%rip) # 0xb8 <_JIT_ENTRY+0xb8>
// 00000000000000b3: R_X86_64_GOTPCREL _JIT_OPARG-0x5
// b8: 74 03 je 0xbd <_JIT_ENTRY+0xbd>
// ba: 4d 89 27 movq %r12, (%r15)
// bd: 83 e5 01 andl $0x1, %ebp
// c0: 49 8d 34 ef leaq (%r15,%rbp,8), %rsi
// c4: 48 89 df movq %rbx, %rdi
// c7: 4c 89 f2 movq %r14, %rdx
// ca: 48 83 c4 08 addq $0x8, %rsp
// ce: 5b popq %rbx
// cf: 41 5c popq %r12
// d1: 41 5d popq %r13
// d3: 41 5e popq %r14
// d5: 41 5f popq %r15
// d7: 5d popq %rbp
// d8: ff 25 00 00 00 00 jmpq *(%rip) # 0xde <_JIT_ENTRY+0xde>
// 00000000000000da: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// de: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xe5 <_JIT_ENTRY+0xe5>
// 00000000000000e1: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// e5: 49 89 86 28 01 00 00 movq %rax, 0x128(%r14)
// ec: 49 29 dd subq %rbx, %r13
// ef: 49 83 c5 b8 addq $-0x48, %r13
// f3: 49 c1 ed 03 shrq $0x3, %r13
// f7: 44 89 6b 40 movl %r13d, 0x40(%rbx)
// fb: 31 c0 xorl %eax, %eax
// fd: 48 83 c4 08 addq $0x8, %rsp
// 101: 5b popq %rbx
// 102: 41 5c popq %r12
// 104: 41 5d popq %r13
// 106: 41 5e popq %r14
// 108: 41 5f popq %r15
// 10a: 5d popq %rbp
// 10b: c3 retq
// 10c:
static const unsigned char _LOAD_ATTR_code_body[269] = {
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41,
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89,
0xf7, 0x48, 0x89, 0xfb, 0x4c, 0x8d, 0x6e, 0xf8,
0x4c, 0x8b, 0x66, 0xf8, 0x48, 0x8b, 0x07, 0x48,
0x8b, 0x40, 0x20, 0x8b, 0x2d, 0x00, 0x00, 0x00,
0x00, 0x89, 0xe9, 0x81, 0xe1, 0xfe, 0xff, 0x00,
0x00, 0x48, 0x8b, 0x74, 0x88, 0x18, 0x40, 0xf6,
0xc5, 0x01, 0x74, 0x2b, 0x48, 0xc7, 0x04, 0x24,
0x00, 0x00, 0x00, 0x00, 0x48, 0x89, 0xe2, 0x4c,
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x85, 0xc0, 0x74, 0x33, 0x48, 0x8b, 0x04, 0x24,
0x49, 0x89, 0x45, 0x00, 0xf6, 0x05, 0x00, 0x00,
0x00, 0x00, 0x01, 0x75, 0x55, 0xeb, 0x56, 0x4c,
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00,
0x48, 0x89, 0x04, 0x24, 0x49, 0x8b, 0x0c, 0x24,
0x85, 0xc9, 0x78, 0x29, 0x48, 0xff, 0xc9, 0x49,
0x89, 0x0c, 0x24, 0x75, 0x1c, 0xeb, 0x11, 0x49,
0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, 0x12, 0x48,
0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x09,
0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00,
0x00, 0x48, 0x8b, 0x04, 0x24, 0x48, 0x85, 0xc0,
0x74, 0x34, 0x45, 0x31, 0xe4, 0x49, 0x89, 0x45,
0x00, 0xf6, 0x05, 0x00, 0x00, 0x00, 0x00, 0x01,
0x74, 0x03, 0x4d, 0x89, 0x27, 0x83, 0xe5, 0x01,
0x49, 0x8d, 0x34, 0xef, 0x48, 0x89, 0xdf, 0x4c,
0x89, 0xf2, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41,
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d,
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b,
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x86,
0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xdd, 0x49,
0x83, 0xc5, 0xb8, 0x49, 0xc1, 0xed, 0x03, 0x44,
0x89, 0x6b, 0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4,
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e,
0x41, 0x5f, 0x5d, 0xc3,
};
static const Hole _LOAD_ATTR_code_holes[9] = {
{0x25, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x4c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x5e, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x5},
{0x6c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x9d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0xb3, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x5},
{0xda, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
{0xe1, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24},
};
// 0:
// 0: OPARG
// 8: &_PyObject_GetMethod+0x0
// 10: &PyObject_GetAttr+0x0
// 18: &_Py_Dealloc+0x0
// 20: CONTINUE
// 28: EXECUTOR
static const unsigned char _LOAD_ATTR_data_body[49] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _LOAD_ATTR_data_holes[7] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyObject_GetMethod, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_GetAttr, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x28, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
};
// _LOAD_ATTR_CLASS_0
//
// /tmp/tmp2mfmnab2/_LOAD_ATTR_CLASS_0.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 54 pushq %r12
// 6: 53 pushq %rbx
// 7: 50 pushq %rax
// 8: 48 89 d3 movq %rdx, %rbx
// b: 49 89 f6 movq %rsi, %r14
// e: 49 89 ff movq %rdi, %r15
// 11: 48 8b 7e f8 movq -0x8(%rsi), %rdi
// 15: 4c 8b 25 00 00 00 00 movq (%rip), %r12 # 0x1c <_JIT_ENTRY+0x1c>
// 0000000000000018: R_X86_64_REX_GOTPCRELX _JIT_OPERAND-0x4
// 1c: 41 8b 04 24 movl (%r12), %eax
// 20: ff c0 incl %eax
// 22: 74 04 je 0x28 <_JIT_ENTRY+0x28>
// 24: 41 89 04 24 movl %eax, (%r12)
// 28: 48 8b 07 movq (%rdi), %rax
// 2b: 85 c0 testl %eax, %eax
// 2d: 78 0e js 0x3d <_JIT_ENTRY+0x3d>
// 2f: 48 ff c8 decq %rax
// 32: 48 89 07 movq %rax, (%rdi)
// 35: 75 06 jne 0x3d <_JIT_ENTRY+0x3d>
// 37: ff 15 00 00 00 00 callq *(%rip) # 0x3d <_JIT_ENTRY+0x3d>
// 0000000000000039: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 3d: 4d 89 66 f8 movq %r12, -0x8(%r14)
// 41: 4c 89 ff movq %r15, %rdi
// 44: 4c 89 f6 movq %r14, %rsi
// 47: 48 89 da movq %rbx, %rdx
// 4a: 48 83 c4 08 addq $0x8, %rsp
// 4e: 5b popq %rbx
// 4f: 41 5c popq %r12
// 51: 41 5e popq %r14
// 53: 41 5f popq %r15
// 55: ff 25 00 00 00 00 jmpq *(%rip) # 0x5b <_JIT_ENTRY+0x5b>
// 0000000000000057: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 55:
static const unsigned char _LOAD_ATTR_CLASS_0_code_body[86] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x54, 0x53, 0x50,
0x48, 0x89, 0xd3, 0x49, 0x89, 0xf6, 0x49, 0x89,
0xff, 0x48, 0x8b, 0x7e, 0xf8, 0x4c, 0x8b, 0x25,
0x00, 0x00, 0x00, 0x00, 0x41, 0x8b, 0x04, 0x24,
0xff, 0xc0, 0x74, 0x04, 0x41, 0x89, 0x04, 0x24,
0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78, 0x0e, 0x48,
0xff, 0xc8, 0x48, 0x89, 0x07, 0x75, 0x06, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x89, 0x66,
0xf8, 0x4c, 0x89, 0xff, 0x4c, 0x89, 0xf6, 0x48,
0x89, 0xda, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41,
0x5c, 0x41, 0x5e, 0x41, 0x5f,
};
static const Hole _LOAD_ATTR_CLASS_0_code_holes[3] = {
{0x18, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x39, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
};
// 0:
// 0: OPERAND
// 8: &_Py_Dealloc+0x0
static const unsigned char _LOAD_ATTR_CLASS_0_data_body[17] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _LOAD_ATTR_CLASS_0_data_holes[3] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPERAND, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
};
// _LOAD_ATTR_CLASS_1
//
// /tmp/tmp2mfmnab2/_LOAD_ATTR_CLASS_1.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 54 pushq %r12
// 6: 53 pushq %rbx
// 7: 50 pushq %rax
// 8: 48 89 d3 movq %rdx, %rbx
// b: 49 89 f6 movq %rsi, %r14
// e: 49 89 ff movq %rdi, %r15
// 11: 48 8b 7e f8 movq -0x8(%rsi), %rdi
// 15: 4c 8b 25 00 00 00 00 movq (%rip), %r12 # 0x1c <_JIT_ENTRY+0x1c>
// 0000000000000018: R_X86_64_REX_GOTPCRELX _JIT_OPERAND-0x4
// 1c: 41 8b 04 24 movl (%r12), %eax
// 20: ff c0 incl %eax
// 22: 74 04 je 0x28 <_JIT_ENTRY+0x28>
// 24: 41 89 04 24 movl %eax, (%r12)
// 28: 48 8b 07 movq (%rdi), %rax
// 2b: 85 c0 testl %eax, %eax
// 2d: 78 0e js 0x3d <_JIT_ENTRY+0x3d>
// 2f: 48 ff c8 decq %rax
// 32: 48 89 07 movq %rax, (%rdi)
// 35: 75 06 jne 0x3d <_JIT_ENTRY+0x3d>
// 37: ff 15 00 00 00 00 callq *(%rip) # 0x3d <_JIT_ENTRY+0x3d>
// 0000000000000039: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 3d: 4d 89 66 f8 movq %r12, -0x8(%r14)
// 41: 49 c7 06 00 00 00 00 movq $0x0, (%r14)
// 48: 49 83 c6 08 addq $0x8, %r14
// 4c: 4c 89 ff movq %r15, %rdi
// 4f: 4c 89 f6 movq %r14, %rsi
// 52: 48 89 da movq %rbx, %rdx
// 55: 48 83 c4 08 addq $0x8, %rsp
// 59: 5b popq %rbx
// 5a: 41 5c popq %r12
// 5c: 41 5e popq %r14
// 5e: 41 5f popq %r15
// 60: ff 25 00 00 00 00 jmpq *(%rip) # 0x66 <_JIT_ENTRY+0x66>
// 0000000000000062: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 60:
static const unsigned char _LOAD_ATTR_CLASS_1_code_body[97] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x54, 0x53, 0x50,
0x48, 0x89, 0xd3, 0x49, 0x89, 0xf6, 0x49, 0x89,
0xff, 0x48, 0x8b, 0x7e, 0xf8, 0x4c, 0x8b, 0x25,
0x00, 0x00, 0x00, 0x00, 0x41, 0x8b, 0x04, 0x24,
0xff, 0xc0, 0x74, 0x04, 0x41, 0x89, 0x04, 0x24,
0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78, 0x0e, 0x48,
0xff, 0xc8, 0x48, 0x89, 0x07, 0x75, 0x06, 0xff,
0x15, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x89, 0x66,
0xf8, 0x49, 0xc7, 0x06, 0x00, 0x00, 0x00, 0x00,
0x49, 0x83, 0xc6, 0x08, 0x4c, 0x89, 0xff, 0x4c,
0x89, 0xf6, 0x48, 0x89, 0xda, 0x48, 0x83, 0xc4,
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5e, 0x41, 0x5f,
};
static const Hole _LOAD_ATTR_CLASS_1_code_holes[3] = {
{0x18, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4},
{0x39, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
};
// 0:
// 0: OPERAND
// 8: &_Py_Dealloc+0x0
static const unsigned char _LOAD_ATTR_CLASS_1_data_body[17] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _LOAD_ATTR_CLASS_1_data_holes[3] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPERAND, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
};
// _LOAD_ATTR_INSTANCE_VALUE_0
//
// /tmp/tmp2mfmnab2/_LOAD_ATTR_INSTANCE_VALUE_0.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 54 pushq %r12
// 6: 53 pushq %rbx
// 7: 50 pushq %rax
// 8: 49 89 d7 movq %rdx, %r15
// b: 48 89 f3 movq %rsi, %rbx
// e: 49 89 fe movq %rdi, %r14
// 11: 48 8b 7e f8 movq -0x8(%rsi), %rdi
// 15: 48 8b 47 e8 movq -0x18(%rdi), %rax
// 19: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0x20 <_JIT_ENTRY+0x20>
// 000000000000001c: R_X86_64_GOTPCREL _JIT_OPERAND-0x4
// 20: 4c 8b 64 c8 01 movq 0x1(%rax,%rcx,8), %r12
// 25: 4d 85 e4 testq %r12, %r12
// 28: 74 3f je 0x69 <_JIT_ENTRY+0x69>
// 2a: 41 8b 04 24 movl (%r12), %eax
// 2e: ff c0 incl %eax
// 30: 74 04 je 0x36 <_JIT_ENTRY+0x36>
// 32: 41 89 04 24 movl %eax, (%r12)
// 36: 48 8b 07 movq (%rdi), %rax
// 39: 85 c0 testl %eax, %eax
// 3b: 78 0e js 0x4b <_JIT_ENTRY+0x4b>
// 3d: 48 ff c8 decq %rax
// 40: 48 89 07 movq %rax, (%rdi)
// 43: 75 06 jne 0x4b <_JIT_ENTRY+0x4b>
// 45: ff 15 00 00 00 00 callq *(%rip) # 0x4b <_JIT_ENTRY+0x4b>
// 0000000000000047: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 4b: 4c 89 63 f8 movq %r12, -0x8(%rbx)
// 4f: 4c 89 f7 movq %r14, %rdi
// 52: 48 89 de movq %rbx, %rsi
// 55: 4c 89 fa movq %r15, %rdx
// 58: 48 83 c4 08 addq $0x8, %rsp
// 5c: 5b popq %rbx
// 5d: 41 5c popq %r12
// 5f: 41 5e popq %r14
// 61: 41 5f popq %r15
// 63: ff 25 00 00 00 00 jmpq *(%rip) # 0x69 <_JIT_ENTRY+0x69>
// 0000000000000065: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 69: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x70 <_JIT_ENTRY+0x70>
// 000000000000006c: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 70: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 77: 4c 29 f3 subq %r14, %rbx
// 7a: 48 83 c3 b8 addq $-0x48, %rbx
// 7e: 48 c1 eb 03 shrq $0x3, %rbx
// 82: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 86: 49 8b 06 movq (%r14), %rax
// 89: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x8f <_JIT_ENTRY+0x8f>
// 000000000000008b: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 8f: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 93: 48 05 c8 00 00 00 addq $0xc8, %rax
// 99: 48 83 c4 08 addq $0x8, %rsp
// 9d: 5b popq %rbx
// 9e: 41 5c popq %r12
// a0: 41 5e popq %r14
// a2: 41 5f popq %r15
// a4: c3 retq
// a5:
static const unsigned char _LOAD_ATTR_INSTANCE_VALUE_0_code_body[166] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x54, 0x53, 0x50,
0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49, 0x89,
0xfe, 0x48, 0x8b, 0x7e, 0xf8, 0x48, 0x8b, 0x47,
0xe8, 0x0f, 0xb7, 0x0d, 0x00, 0x00, 0x00, 0x00,
0x4c, 0x8b, 0x64, 0xc8, 0x01, 0x4d, 0x85, 0xe4,
0x74, 0x3f, 0x41, 0x8b, 0x04, 0x24, 0xff, 0xc0,
0x74, 0x04, 0x41, 0x89, 0x04, 0x24, 0x48, 0x8b,
0x07, 0x85, 0xc0, 0x78, 0x0e, 0x48, 0xff, 0xc8,
0x48, 0x89, 0x07, 0x75, 0x06, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x4c, 0x89, 0x63, 0xf8, 0x4c,
0x89, 0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa,
0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41,
0x5e, 0x41, 0x5f, 0xff, 0x25, 0x00, 0x00, 0x00,
0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00,
0x49, 0x89, 0x87, 0x28, 0x01, 0x00, 0x00, 0x4c,
0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8, 0x48, 0xc1,
0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, 0x49, 0x8b,
0x06, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48,
0x8d, 0x04, 0x48, 0x48, 0x05, 0xc8, 0x00, 0x00,
0x00, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c,
0x41, 0x5e, 0x41, 0x5f, 0xc3,
};
static const Hole _LOAD_ATTR_INSTANCE_VALUE_0_code_holes[6] = {
{0x1c, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x47, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x65, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x6c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x8b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
};
// 0:
// 0: OPERAND
// 8: &_Py_Dealloc+0x0
// 10: CONTINUE
// 18: EXECUTOR
// 20: TARGET
static const unsigned char _LOAD_ATTR_INSTANCE_VALUE_0_data_body[41] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
static const Hole _LOAD_ATTR_INSTANCE_VALUE_0_data_holes[6] = {
{0x0, HoleKind_R_X86_64_64, HoleValue_OPERAND, NULL, 0x0},
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0},
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0},
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0},
{0x20, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0},
};
// _LOAD_ATTR_INSTANCE_VALUE_1
//
// /tmp/tmp2mfmnab2/_LOAD_ATTR_INSTANCE_VALUE_1.o: file format elf64-x86-64
//
// Disassembly of section .text:
//
// 0000000000000000 <_JIT_ENTRY>:
// 0: 41 57 pushq %r15
// 2: 41 56 pushq %r14
// 4: 41 54 pushq %r12
// 6: 53 pushq %rbx
// 7: 50 pushq %rax
// 8: 49 89 d7 movq %rdx, %r15
// b: 48 89 f3 movq %rsi, %rbx
// e: 49 89 fe movq %rdi, %r14
// 11: 48 8b 7e f8 movq -0x8(%rsi), %rdi
// 15: 48 8b 47 e8 movq -0x18(%rdi), %rax
// 19: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0x20 <_JIT_ENTRY+0x20>
// 000000000000001c: R_X86_64_GOTPCREL _JIT_OPERAND-0x4
// 20: 4c 8b 64 c8 01 movq 0x1(%rax,%rcx,8), %r12
// 25: 4d 85 e4 testq %r12, %r12
// 28: 74 4a je 0x74 <_JIT_ENTRY+0x74>
// 2a: 41 8b 04 24 movl (%r12), %eax
// 2e: ff c0 incl %eax
// 30: 74 04 je 0x36 <_JIT_ENTRY+0x36>
// 32: 41 89 04 24 movl %eax, (%r12)
// 36: 48 8b 07 movq (%rdi), %rax
// 39: 85 c0 testl %eax, %eax
// 3b: 78 0e js 0x4b <_JIT_ENTRY+0x4b>
// 3d: 48 ff c8 decq %rax
// 40: 48 89 07 movq %rax, (%rdi)
// 43: 75 06 jne 0x4b <_JIT_ENTRY+0x4b>
// 45: ff 15 00 00 00 00 callq *(%rip) # 0x4b <_JIT_ENTRY+0x4b>
// 0000000000000047: R_X86_64_GOTPCRELX _Py_Dealloc-0x4
// 4b: 4c 89 63 f8 movq %r12, -0x8(%rbx)
// 4f: 48 c7 03 00 00 00 00 movq $0x0, (%rbx)
// 56: 48 83 c3 08 addq $0x8, %rbx
// 5a: 4c 89 f7 movq %r14, %rdi
// 5d: 48 89 de movq %rbx, %rsi
// 60: 4c 89 fa movq %r15, %rdx
// 63: 48 83 c4 08 addq $0x8, %rsp
// 67: 5b popq %rbx
// 68: 41 5c popq %r12
// 6a: 41 5e popq %r14
// 6c: 41 5f popq %r15
// 6e: ff 25 00 00 00 00 jmpq *(%rip) # 0x74 <_JIT_ENTRY+0x74>
// 0000000000000070: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4
// 74: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x7b <_JIT_ENTRY+0x7b>
// 0000000000000077: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4
// 7b: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15)
// 82: 4c 29 f3 subq %r14, %rbx
// 85: 48 83 c3 b8 addq $-0x48, %rbx
// 89: 48 c1 eb 03 shrq $0x3, %rbx
// 8d: 41 89 5e 40 movl %ebx, 0x40(%r14)
// 91: 49 8b 06 movq (%r14), %rax
// 94: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x9a <_JIT_ENTRY+0x9a>
// 0000000000000096: R_X86_64_GOTPCRELX _JIT_TARGET-0x4
// 9a: 48 8d 04 48 leaq (%rax,%rcx,2), %rax
// 9e: 48 05 c8 00 00 00 addq $0xc8, %rax
// a4: 48 83 c4 08 addq $0x8, %rsp
// a8: 5b popq %rbx
// a9: 41 5c popq %r12
// ab: 41 5e popq %r14
// ad: 41 5f popq %r15
// af: c3 retq
// b0:
static const unsigned char _LOAD_ATTR_INSTANCE_VALUE_1_code_body[177] = {
0x41, 0x57, 0x41, 0x56, 0x41, 0x54, 0x53, 0x50,
0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49, 0x89,
0xfe, 0x48, 0x8b, 0x7e, 0xf8, 0x48, 0x8b, 0x47,
0xe8, 0x0f, 0xb7, 0x0d, 0x00, 0x00, 0x00, 0x00,
0x4c, 0x8b, 0x64, 0xc8, 0x01, 0x4d, 0x85, 0xe4,
0x74, 0x4a, 0x41, 0x8b, 0x04, 0x24, 0xff, 0xc0,
0x74, 0x04, 0x41, 0x89, 0x04, 0x24, 0x48, 0x8b,
0x07, 0x85, 0xc0, 0x78, 0x0e, 0x48, 0xff, 0xc8,
0x48, 0x89, 0x07, 0x75, 0x06, 0xff, 0x15, 0x00,
0x00, 0x00, 0x00, 0x4c, 0x89, 0x63, 0xf8, 0x48,
0xc7, 0x03, 0x00, 0x00, 0x00, 0x00, 0x48, 0x83,
0xc3, 0x08, 0x4c, 0x89, 0xf7, 0x48, 0x89, 0xde,
0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4, 0x08, 0x5b,
0x41, 0x5c, 0x41, 0x5e, 0x41, 0x5f, 0xff, 0x25,
0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x05, 0x00,
0x00, 0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01,
0x00, 0x00, 0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3,
0xb8, 0x48, 0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e,
0x40, 0x49, 0x8b, 0x06, 0x8b, 0x0d, 0x00, 0x00,
0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05,
0xc8, 0x00, 0x00, 0x00, 0x48, 0x83, 0xc4, 0x08,
0x5b, 0x41, 0x5c, 0x41, 0x5e, 0x41, 0x5f, 0xc3,
};
static const Hole _LOAD_ATTR_INSTANCE_VALUE_1_code_holes[6] = {
{0x1c, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4},
{0x47, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4},
{0x70, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc},
{0x77, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14},
{0x96, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c},
};
// 0:
// 0: OPERAND
// 8: &_Py_Dealloc+0x0
// 10: CONTINUE
// 18: EXECUTOR
// 20: TARGET
static const unsigned char _LOAD_ATTR_INSTANCE_VALUE_1_data_body[41] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment