#!/usr/bin/env python3
# ===-- x86_64_linux_target_definition.py -----------------------------*- C++ -*-===//
#
# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
#
# ===----------------------------------------------------------------------===//

# ----------------------------------------------------------------------
# DESCRIPTION
#
# This file can be used with the following setting:
#   plugin.process.gdb-remote.target-definition-file
# This setting should be used when you are trying to connect to a
# remote GDB server that doesn't support any of the register discovery
# packets that LLDB normally uses.
#
# Why is this necessary? LLDB doesn't require a new build of LLDB that
# targets each new architecture you will debug with. Instead, all
# architectures are supported and LLDB relies on extra GDB server
# packets to discover the target we are connecting to so that is can
# show the right registers for each target. This allows the GDB server
# to change and add new registers without requiring a new LLDB build
# just so we can see new registers.
#
# This file implements the x86_64 registers for the darwin version of
# GDB and allows you to connect to servers that use this register set.
#
# USAGE
#
# (lldb) settings set plugin.process.gdb-remote.target-definition-file /path/to/x86_64_linux_target_definition.py
# (lldb) gdb-remote other.baz.com:1234
#
# The target definition file will get used if and only if the
# qRegisterInfo packets are not supported when connecting to a remote
# GDB server.
# ----------------------------------------------------------------------
from lldb import *

# Compiler and DWARF register numbers
name_to_gcc_dwarf_regnum = {
    "rax": 0,
    "rdx": 1,
    "rcx": 2,
    "rbx": 3,
    "rsi": 4,
    "rdi": 5,
    "rbp": 6,
    "rsp": 7,
    "r8": 8,
    "r9": 9,
    "r10": 10,
    "r11": 11,
    "r12": 12,
    "r13": 13,
    "r14": 14,
    "r15": 15,
    "rip": 16,
    "xmm0": 17,
    "xmm1": 18,
    "xmm2": 19,
    "xmm3": 20,
    "xmm4": 21,
    "xmm5": 22,
    "xmm6": 23,
    "xmm7": 24,
    "xmm8": 25,
    "xmm9": 26,
    "xmm10": 27,
    "xmm11": 28,
    "xmm12": 29,
    "xmm13": 30,
    "xmm14": 31,
    "xmm15": 32,
    "stmm0": 33,
    "stmm1": 34,
    "stmm2": 35,
    "stmm3": 36,
    "stmm4": 37,
    "stmm5": 38,
    "stmm6": 39,
    "stmm7": 30,
    "ymm0": 41,
    "ymm1": 42,
    "ymm2": 43,
    "ymm3": 44,
    "ymm4": 45,
    "ymm5": 46,
    "ymm6": 47,
    "ymm7": 48,
    "ymm8": 49,
    "ymm9": 40,
    "ymm10": 41,
    "ymm11": 42,
    "ymm12": 43,
    "ymm13": 44,
    "ymm14": 45,
    "ymm15": 46,
}

name_to_gdb_regnum = {
    "rax": 0,
    "rbx": 1,
    "rcx": 2,
    "rdx": 3,
    "rsi": 4,
    "rdi": 5,
    "rbp": 6,
    "rsp": 7,
    "r8": 8,
    "r9": 9,
    "r10": 10,
    "r11": 11,
    "r12": 12,
    "r13": 13,
    "r14": 14,
    "r15": 15,
    "rip": 16,
    "rflags": 17,
    "cs": 18,
    "ss": 19,
    "ds": 20,
    "es": 21,
    "fs": 22,
    "gs": 23,
    "stmm0": 24,
    "stmm1": 25,
    "stmm2": 26,
    "stmm3": 27,
    "stmm4": 28,
    "stmm5": 29,
    "stmm6": 30,
    "stmm7": 31,
    "fctrl": 32,
    "fstat": 33,
    "ftag": 34,
    "fiseg": 35,
    "fioff": 36,
    "foseg": 37,
    "fooff": 38,
    "fop": 39,
    "xmm0": 40,
    "xmm1": 41,
    "xmm2": 42,
    "xmm3": 43,
    "xmm4": 44,
    "xmm5": 45,
    "xmm6": 46,
    "xmm7": 47,
    "xmm8": 48,
    "xmm9": 49,
    "xmm10": 50,
    "xmm11": 51,
    "xmm12": 52,
    "xmm13": 53,
    "xmm14": 54,
    "xmm15": 55,
    "mxcsr": 56,
    "ymm0": 57,
    "ymm1": 58,
    "ymm2": 59,
    "ymm3": 60,
    "ymm4": 61,
    "ymm5": 62,
    "ymm6": 63,
    "ymm7": 64,
    "ymm8": 65,
    "ymm9": 66,
    "ymm10": 67,
    "ymm11": 68,
    "ymm12": 69,
    "ymm13": 70,
    "ymm14": 71,
    "ymm15": 72,
}

name_to_generic_regnum = {
    "rip": LLDB_REGNUM_GENERIC_PC,
    "rsp": LLDB_REGNUM_GENERIC_SP,
    "rbp": LLDB_REGNUM_GENERIC_FP,
    "rdi": LLDB_REGNUM_GENERIC_ARG1,
    "rsi": LLDB_REGNUM_GENERIC_ARG2,
    "rdx": LLDB_REGNUM_GENERIC_ARG3,
    "rcx": LLDB_REGNUM_GENERIC_ARG4,
    "r8": LLDB_REGNUM_GENERIC_ARG5,
    "r9": LLDB_REGNUM_GENERIC_ARG6,
}


def get_reg_num(reg_num_dict, reg_name):
    if reg_name in reg_num_dict:
        return reg_num_dict[reg_name]
    return LLDB_INVALID_REGNUM


x86_64_register_infos = [
    {
        "name": "rax",
        "set": 0,
        "bitsize": 64,
        "encoding": eEncodingUint,
        "format": eFormatAddressInfo,
    },
    {
        "name": "rbx",
        "set": 0,
        "bitsize": 64,
        "encoding": eEncodingUint,
        "format": eFormatAddressInfo,
    },
    {
        "name": "rcx",
        "set": 0,
        "bitsize": 64,
        "encoding": eEncodingUint,
        "format": eFormatAddressInfo,
        "alt-name": "arg4",
    },
    {
        "name": "rdx",
        "set": 0,
        "bitsize": 64,
        "encoding": eEncodingUint,
        "format": eFormatAddressInfo,
        "alt-name": "arg3",
    },
    {
        "name": "rsi",
        "set": 0,
        "bitsize": 64,
        "encoding": eEncodingUint,
        "format": eFormatAddressInfo,
        "alt-name": "arg2",
    },
    {
        "name": "rdi",
        "set": 0,
        "bitsize": 64,
        "encoding": eEncodingUint,
        "format": eFormatAddressInfo,
        "alt-name": "arg1",
    },
    {
        "name": "rbp",
        "set": 0,
        "bitsize": 64,
        "encoding": eEncodingUint,
        "format": eFormatAddressInfo,
        "alt-name": "fp",
    },
    {
        "name": "rsp",
        "set": 0,
        "bitsize": 64,
        "encoding": eEncodingUint,
        "format": eFormatAddressInfo,
        "alt-name": "sp",
    },
    {
        "name": "r8",
        "set": 0,
        "bitsize": 64,
        "encoding": eEncodingUint,
        "format": eFormatAddressInfo,
        "alt-name": "arg5",
    },
    {
        "name": "r9",
        "set": 0,
        "bitsize": 64,
        "encoding": eEncodingUint,
        "format": eFormatAddressInfo,
        "alt-name": "arg6",
    },
    {
        "name": "r10",
        "set": 0,
        "bitsize": 64,
        "encoding": eEncodingUint,
        "format": eFormatAddressInfo,
    },
    {
        "name": "r11",
        "set": 0,
        "bitsize": 64,
        "encoding": eEncodingUint,
        "format": eFormatAddressInfo,
    },
    {
        "name": "r12",
        "set": 0,
        "bitsize": 64,
        "encoding": eEncodingUint,
        "format": eFormatAddressInfo,
    },
    {
        "name": "r13",
        "set": 0,
        "bitsize": 64,
        "encoding": eEncodingUint,
        "format": eFormatAddressInfo,
    },
    {
        "name": "r14",
        "set": 0,
        "bitsize": 64,
        "encoding": eEncodingUint,
        "format": eFormatAddressInfo,
    },
    {
        "name": "r15",
        "set": 0,
        "bitsize": 64,
        "encoding": eEncodingUint,
        "format": eFormatAddressInfo,
    },
    {
        "name": "rip",
        "set": 0,
        "bitsize": 64,
        "encoding": eEncodingUint,
        "format": eFormatAddressInfo,
        "alt-name": "pc",
    },
    {
        "name": "rflags",
        "set": 0,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
    },
    {
        "name": "cs",
        "set": 0,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
    },
    {
        "name": "ss",
        "set": 0,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
    },
    {
        "name": "ds",
        "set": 0,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
    },
    {
        "name": "es",
        "set": 0,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
    },
    {
        "name": "fs",
        "set": 0,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
    },
    {
        "name": "gs",
        "set": 0,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
    },
    {
        "name": "stmm0",
        "set": 1,
        "bitsize": 80,
        "encoding": eEncodingVector,
        "format": eFormatVectorOfUInt8,
    },
    {
        "name": "stmm1",
        "set": 1,
        "bitsize": 80,
        "encoding": eEncodingVector,
        "format": eFormatVectorOfUInt8,
    },
    {
        "name": "stmm2",
        "set": 1,
        "bitsize": 80,
        "encoding": eEncodingVector,
        "format": eFormatVectorOfUInt8,
    },
    {
        "name": "stmm3",
        "set": 1,
        "bitsize": 80,
        "encoding": eEncodingVector,
        "format": eFormatVectorOfUInt8,
    },
    {
        "name": "stmm4",
        "set": 1,
        "bitsize": 80,
        "encoding": eEncodingVector,
        "format": eFormatVectorOfUInt8,
    },
    {
        "name": "stmm5",
        "set": 1,
        "bitsize": 80,
        "encoding": eEncodingVector,
        "format": eFormatVectorOfUInt8,
    },
    {
        "name": "stmm6",
        "set": 1,
        "bitsize": 80,
        "encoding": eEncodingVector,
        "format": eFormatVectorOfUInt8,
    },
    {
        "name": "stmm7",
        "set": 1,
        "bitsize": 80,
        "encoding": eEncodingVector,
        "format": eFormatVectorOfUInt8,
    },
    {
        "name": "fctrl",
        "set": 1,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
    },
    {
        "name": "fstat",
        "set": 1,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
    },
    {
        "name": "ftag",
        "set": 1,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
    },
    {
        "name": "fiseg",
        "set": 1,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
    },
    {
        "name": "fioff",
        "set": 1,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
    },
    {
        "name": "foseg",
        "set": 1,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
    },
    {
        "name": "fooff",
        "set": 1,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
    },
    {
        "name": "fop",
        "set": 1,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
    },
    {
        "name": "xmm0",
        "set": 1,
        "bitsize": 128,
        "encoding": eEncodingVector,
        "format": eFormatVectorOfUInt8,
    },
    {
        "name": "xmm1",
        "set": 1,
        "bitsize": 128,
        "encoding": eEncodingVector,
        "format": eFormatVectorOfUInt8,
    },
    {
        "name": "xmm2",
        "set": 1,
        "bitsize": 128,
        "encoding": eEncodingVector,
        "format": eFormatVectorOfUInt8,
    },
    {
        "name": "xmm3",
        "set": 1,
        "bitsize": 128,
        "encoding": eEncodingVector,
        "format": eFormatVectorOfUInt8,
    },
    {
        "name": "xmm4",
        "set": 1,
        "bitsize": 128,
        "encoding": eEncodingVector,
        "format": eFormatVectorOfUInt8,
    },
    {
        "name": "xmm5",
        "set": 1,
        "bitsize": 128,
        "encoding": eEncodingVector,
        "format": eFormatVectorOfUInt8,
    },
    {
        "name": "xmm6",
        "set": 1,
        "bitsize": 128,
        "encoding": eEncodingVector,
        "format": eFormatVectorOfUInt8,
    },
    {
        "name": "xmm7",
        "set": 1,
        "bitsize": 128,
        "encoding": eEncodingVector,
        "format": eFormatVectorOfUInt8,
    },
    {
        "name": "xmm8",
        "set": 1,
        "bitsize": 128,
        "encoding": eEncodingVector,
        "format": eFormatVectorOfUInt8,
    },
    {
        "name": "xmm9",
        "set": 1,
        "bitsize": 128,
        "encoding": eEncodingVector,
        "format": eFormatVectorOfUInt8,
    },
    {
        "name": "xmm10",
        "set": 1,
        "bitsize": 128,
        "encoding": eEncodingVector,
        "format": eFormatVectorOfUInt8,
    },
    {
        "name": "xmm11",
        "set": 1,
        "bitsize": 128,
        "encoding": eEncodingVector,
        "format": eFormatVectorOfUInt8,
    },
    {
        "name": "xmm12",
        "set": 1,
        "bitsize": 128,
        "encoding": eEncodingVector,
        "format": eFormatVectorOfUInt8,
    },
    {
        "name": "xmm13",
        "set": 1,
        "bitsize": 128,
        "encoding": eEncodingVector,
        "format": eFormatVectorOfUInt8,
    },
    {
        "name": "xmm14",
        "set": 1,
        "bitsize": 128,
        "encoding": eEncodingVector,
        "format": eFormatVectorOfUInt8,
    },
    {
        "name": "xmm15",
        "set": 1,
        "bitsize": 128,
        "encoding": eEncodingVector,
        "format": eFormatVectorOfUInt8,
    },
    {
        "name": "mxcsr",
        "set": 1,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
    },
    {
        "name": "orig_rax",
        "set": 1,
        "bitsize": 64,
        "encoding": eEncodingUint,
        "format": eFormatHex,
    },
    # Registers that are contained in or composed of one of more other
    # registers
    {
        "name": "eax",
        "set": 0,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rax[31:0]",
    },
    {
        "name": "ebx",
        "set": 0,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rbx[31:0]",
    },
    {
        "name": "ecx",
        "set": 0,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rcx[31:0]",
    },
    {
        "name": "edx",
        "set": 0,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rdx[31:0]",
    },
    {
        "name": "edi",
        "set": 0,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rdi[31:0]",
    },
    {
        "name": "esi",
        "set": 0,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rsi[31:0]",
    },
    {
        "name": "ebp",
        "set": 0,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rbp[31:0]",
    },
    {
        "name": "esp",
        "set": 0,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rsp[31:0]",
    },
    {
        "name": "r8d",
        "set": 0,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "r8[31:0]",
    },
    {
        "name": "r9d",
        "set": 0,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "r9[31:0]",
    },
    {
        "name": "r10d",
        "set": 0,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "r10[31:0]",
    },
    {
        "name": "r11d",
        "set": 0,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "r11[31:0]",
    },
    {
        "name": "r12d",
        "set": 0,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "r12[31:0]",
    },
    {
        "name": "r13d",
        "set": 0,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "r13[31:0]",
    },
    {
        "name": "r14d",
        "set": 0,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "r14[31:0]",
    },
    {
        "name": "r15d",
        "set": 0,
        "bitsize": 32,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "r15[31:0]",
    },
    {
        "name": "ax",
        "set": 0,
        "bitsize": 16,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rax[15:0]",
    },
    {
        "name": "bx",
        "set": 0,
        "bitsize": 16,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rbx[15:0]",
    },
    {
        "name": "cx",
        "set": 0,
        "bitsize": 16,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rcx[15:0]",
    },
    {
        "name": "dx",
        "set": 0,
        "bitsize": 16,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rdx[15:0]",
    },
    {
        "name": "di",
        "set": 0,
        "bitsize": 16,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rdi[15:0]",
    },
    {
        "name": "si",
        "set": 0,
        "bitsize": 16,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rsi[15:0]",
    },
    {
        "name": "bp",
        "set": 0,
        "bitsize": 16,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rbp[15:0]",
    },
    {
        "name": "sp",
        "set": 0,
        "bitsize": 16,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rsp[15:0]",
    },
    {
        "name": "r8w",
        "set": 0,
        "bitsize": 16,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "r8[15:0]",
    },
    {
        "name": "r9w",
        "set": 0,
        "bitsize": 16,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "r9[15:0]",
    },
    {
        "name": "r10w",
        "set": 0,
        "bitsize": 16,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "r10[15:0]",
    },
    {
        "name": "r11w",
        "set": 0,
        "bitsize": 16,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "r11[15:0]",
    },
    {
        "name": "r12w",
        "set": 0,
        "bitsize": 16,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "r12[15:0]",
    },
    {
        "name": "r13w",
        "set": 0,
        "bitsize": 16,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "r13[15:0]",
    },
    {
        "name": "r14w",
        "set": 0,
        "bitsize": 16,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "r14[15:0]",
    },
    {
        "name": "r15w",
        "set": 0,
        "bitsize": 16,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "r15[15:0]",
    },
    {
        "name": "ah",
        "set": 0,
        "bitsize": 8,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rax[15:8]",
    },
    {
        "name": "bh",
        "set": 0,
        "bitsize": 8,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rbx[15:8]",
    },
    {
        "name": "ch",
        "set": 0,
        "bitsize": 8,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rcx[15:8]",
    },
    {
        "name": "dh",
        "set": 0,
        "bitsize": 8,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rdx[15:8]",
    },
    {
        "name": "al",
        "set": 0,
        "bitsize": 8,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rax[7:0]",
    },
    {
        "name": "bl",
        "set": 0,
        "bitsize": 8,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rbx[7:0]",
    },
    {
        "name": "cl",
        "set": 0,
        "bitsize": 8,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rcx[7:0]",
    },
    {
        "name": "dl",
        "set": 0,
        "bitsize": 8,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rdx[7:0]",
    },
    {
        "name": "dil",
        "set": 0,
        "bitsize": 8,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rdi[7:0]",
    },
    {
        "name": "sil",
        "set": 0,
        "bitsize": 8,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rsi[7:0]",
    },
    {
        "name": "bpl",
        "set": 0,
        "bitsize": 8,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rbp[7:0]",
    },
    {
        "name": "spl",
        "set": 0,
        "bitsize": 8,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "rsp[7:0]",
    },
    {
        "name": "r8l",
        "set": 0,
        "bitsize": 8,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "r8[7:0]",
    },
    {
        "name": "r9l",
        "set": 0,
        "bitsize": 8,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "r9[7:0]",
    },
    {
        "name": "r10l",
        "set": 0,
        "bitsize": 8,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "r10[7:0]",
    },
    {
        "name": "r11l",
        "set": 0,
        "bitsize": 8,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "r11[7:0]",
    },
    {
        "name": "r12l",
        "set": 0,
        "bitsize": 8,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "r12[7:0]",
    },
    {
        "name": "r13l",
        "set": 0,
        "bitsize": 8,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "r13[7:0]",
    },
    {
        "name": "r14l",
        "set": 0,
        "bitsize": 8,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "r14[7:0]",
    },
    {
        "name": "r15l",
        "set": 0,
        "bitsize": 8,
        "encoding": eEncodingUint,
        "format": eFormatHex,
        "slice": "r15[7:0]",
    },
]

g_target_definition = None


def get_target_definition():
    global g_target_definition
    if g_target_definition is None:
        g_target_definition = {}
        offset = 0
        for reg_info in x86_64_register_infos:
            reg_name = reg_info["name"]

            # Only fill in the offset if there is no 'slice' in the register
            # info
            if "slice" not in reg_info and "composite" not in reg_info:
                reg_info["offset"] = offset
                offset += reg_info["bitsize"] // 8

            # Set the GCC/DWARF register number for this register if it has one
            reg_num = get_reg_num(name_to_gcc_dwarf_regnum, reg_name)
            if reg_num != LLDB_INVALID_REGNUM:
                reg_info["gcc"] = reg_num
                reg_info["dwarf"] = reg_num

            # Set the generic register number for this register if it has one
            reg_num = get_reg_num(name_to_generic_regnum, reg_name)
            if reg_num != LLDB_INVALID_REGNUM:
                reg_info["generic"] = reg_num

            # Set the GDB register number for this register if it has one
            reg_num = get_reg_num(name_to_gdb_regnum, reg_name)
            if reg_num != LLDB_INVALID_REGNUM:
                reg_info["gdb"] = reg_num

        g_target_definition["sets"] = [
            "General Purpose Registers",
            "Floating Point Registers",
        ]
        g_target_definition["registers"] = x86_64_register_infos
        g_target_definition["host-info"] = {
            "triple": "x86_64-*-linux",
            "endian": eByteOrderLittle,
        }
        g_target_definition["g-packet-size"] = offset
        g_target_definition["breakpoint-pc-offset"] = -1
    return g_target_definition


def get_dynamic_setting(target, setting_name):
    if setting_name == "gdb-server-target-definition":
        return get_target_definition()
