|
infix
A JIT-Powered FFI Library for C
|
Common register definitions and instruction encodings for the AArch64 (ARM64) architecture. More...
#include <stdint.h>Go to the source code of this file.
Macros | |
| #define | A64_SF_64BIT (1U << 31) |
| #define | A64_SF_32BIT (0U << 31) |
| #define | A64_V_VECTOR (1U << 26) |
| #define | A64_OPC_ADD (0b00U << 29) |
| #define | A64_OPC_ADDS (0b01U << 29) |
| #define | A64_OPC_SUB (0b10U << 29) |
| #define | A64_OPC_SUBS (0b11U << 29) |
| #define | A64_OP_ADD_SUB_IMM (0b0010001U << 24) |
| #define | A64_OP_ADD_SUB_REG (0b01011U << 24) |
| #define | A64_OP_LOGICAL_REG (0b01010U << 24) |
| #define | A64_OPCODE_ORR (0b01U << 29) |
| #define | A64_OPC_MOVZ (0b10U << 29) |
| #define | A64_OPC_MOVK (0b11U << 29) |
| #define | A64_OP_MOVE_WIDE_IMM (0b100101U << 23) |
| #define | A64_OP_LOAD_STORE_IMM_UNSIGNED (0b111001U << 24) |
| #define | A64_LDR_OP (1U << 22) |
| #define | A64_OP_LOAD_STORE_PAIR_BASE (0b101000U << 24) |
| #define | A64_OPC_STP (0b00U << 30) |
| #define | A64_OPC_LDP (0b01U << 30) |
| #define | A64_L_BIT_LOAD (1U << 22) |
| #define | A64_ADDR_POST_INDEX (0b01U << 23) |
| #define | A64_ADDR_PRE_INDEX (0b11U << 23) |
| #define | A64_ADDR_SIGNED_OFFSET (0b10U << 23) |
| #define | A64_OP_BRANCH_REG (0b1101011U << 25) |
| #define | A64_OPC_BR (0b0000U << 21) |
| #define | A64_OPC_BLR (0b0001U << 21) |
| #define | A64_OPC_RET (0b0010U << 21) |
| #define | A64_OP_COMPARE_BRANCH_IMM (0b011010U << 25) |
| #define | A64_OPC_CBNZ (1U << 24) |
| #define | A64_OP_SYSTEM (0b11010100U << 25) |
| #define | A64_OP_BRK (0b00000000001U << 16) |
| #define | A64_OP_SVC (0b00000000001U << 21) |
Common register definitions and instruction encodings for the AArch64 (ARM64) architecture.
Copyright (c) 2025 Sanko Robinson
This source code is dual-licensed under the Artistic License 2.0 or the MIT License. You may choose to use this code under the terms of either license.
SPDX-License-Identifier: (Artistic-2.0 OR MIT)
The documentation blocks within this file are licensed under the Creative Commons Attribution 4.0 International License (CC BY 4.0).
SPDX-License-Identifier: CC-BY-4.0
| #define A64_ADDR_POST_INDEX (0b01U << 23) |
| #define A64_ADDR_PRE_INDEX (0b11U << 23) |
| #define A64_ADDR_SIGNED_OFFSET (0b10U << 23) |
| #define A64_L_BIT_LOAD (1U << 22) |
| #define A64_LDR_OP (1U << 22) |
| #define A64_OP_ADD_SUB_IMM (0b0010001U << 24) |
| #define A64_OP_ADD_SUB_REG (0b01011U << 24) |
| #define A64_OP_BRANCH_REG (0b1101011U << 25) |
| #define A64_OP_BRK (0b00000000001U << 16) |
| #define A64_OP_COMPARE_BRANCH_IMM (0b011010U << 25) |
| #define A64_OP_LOAD_STORE_IMM_UNSIGNED (0b111001U << 24) |
| #define A64_OP_LOAD_STORE_PAIR_BASE (0b101000U << 24) |
| #define A64_OP_LOGICAL_REG (0b01010U << 24) |
| #define A64_OP_MOVE_WIDE_IMM (0b100101U << 23) |
| #define A64_OP_SVC (0b00000000001U << 21) |
| #define A64_OP_SYSTEM (0b11010100U << 25) |
| #define A64_OPC_ADD (0b00U << 29) |
| #define A64_OPC_ADDS (0b01U << 29) |
| #define A64_OPC_BLR (0b0001U << 21) |
| #define A64_OPC_BR (0b0000U << 21) |
| #define A64_OPC_CBNZ (1U << 24) |
| #define A64_OPC_LDP (0b01U << 30) |
| #define A64_OPC_MOVK (0b11U << 29) |
| #define A64_OPC_MOVZ (0b10U << 29) |
| #define A64_OPC_RET (0b0010U << 21) |
| #define A64_OPC_STP (0b00U << 30) |
| #define A64_OPC_SUB (0b10U << 29) |
| #define A64_OPC_SUBS (0b11U << 29) |
| #define A64_OPCODE_ORR (0b01U << 29) |
| #define A64_SF_32BIT (0U << 31) |
| #define A64_SF_64BIT (1U << 31) |
| #define A64_V_VECTOR (1U << 26) |
| enum arm64_cond |
| enum arm64_gpr |
| enum arm64_vpr |