AARCHMRS Schema 2.7.4

↚ Home

Types.RegisterType object

The Types.RegisterType schema provides a mechanism to reference a register. If you wish to reference a Field within a register, you should instead use Types.Field.

definition

Definitions Type Description
instance
oneOf [
string
null
]

The instance of the register being referred to. If it is null then the instance is the same as the register name.

oneOf string
Pattern
^[A-Za-z][A-Za-z0-9_]*(?:<[^>]+>)?[A-Za-z0-9_]*$
oneOf null
Examples
"REG0"
"REG<n>_EL1"
null
name
  • string

The name of the register being referred to.

Pattern
/^[A-Za-z][A-Za-z0-9_\s]*(?:<[^>]+>)?[A-Za-z0-9_]*$/
Examples
"REG0"
"REG<n>_EL1"
state

The register-state in which the register being referred will be accessed.

Enum
AArch32 AArch64 ext

object

Properties Type Description
_meta Meta
See Meta for more information.
_type
Enum
Types.RegisterType
value
  • object
Properties Type Description
instance

The instance (where applicable) is the instance of the register being referenced.

See definitions.instance for more information.
name

The name is the register that is being referenced.

See definitions.name for more information.
slices
oneOf [
null
]
oneOf Rangeset

The slices provides the bitstring slice of the full register reference.

oneOf null
state

The state can be set to AArch32, AArch64 or ext (short for external).

See definitions.state for more information.
Additional Properties
Allowed
◊ Required
Properties marked with ◊ are required properties.
Examples
{
    "state": "AArch64", 
    "name": "REG0"
}
{
    "state": "AArch32", 
    "name": "REG0", 
    "instance": "REG0_S", 
    "slices": [
        {
            "_type": "Range", 
            "start": 4, 
            "width": 1
        }
    ]
}
Additional Properties
Not Allowed
◊ Required
Properties marked with ◊ are required properties.
Examples
{
    "_type": "Types.RegisterType", 
    "value": {
        "state": "AArch64", 
        "name": "REG0"
    }
}
{
    "_type": "Types.RegisterType", 
    "value": {
        "state": "AArch32", 
        "name": "REGISTER", 
        "instance": "INSTANCE", 
        "slices": [
            {
                "_type": "Range", 
                "start": 4, 
                "width": 1
            }
        ]
    }
}

Schema http://json-schema.org/draft-04/schema#

{
  "title": "Types.RegisterType",
  "$schema": "http://json-schema.org/draft-04/schema#",
  "info": [
    [
      "The $(Types.RegisterType) schema provides a mechanism to reference a register.",
      "If you wish to reference a Field within a register, you should instead use $(Types.Field)."
    ]
  ],
  "definitions": {
    "state": {
      "info": [
        "The register-state in which the register being referred will be accessed."
      ],
      "enum": [
        "AArch32",
        "AArch64",
        "ext"
      ]
    },
    "name": {
      "info": [
        "The name of the register being referred to."
      ],
      "type": "string",
      "pattern": "^[A-Za-z][A-Za-z0-9_\\s]*(?:<[^>]+>)?[A-Za-z0-9_]*$",
      "examples": [
        "REG0",
        "REG_EL1"
      ]
    },
    "instance": {
      "oneOf": [
        {
          "type": "string",
          "pattern": "^[A-Za-z][A-Za-z0-9_]*(?:<[^>]+>)?[A-Za-z0-9_]*$"
        },
        {
          "type": "null"
        }
      ],
      "info": [
        "The instance of the register being referred to. If it is `null` then the instance is the same as the register name."
      ],
      "examples": [
        "REG0",
        "REG_EL1",
        null
      ]
    }
  },
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "_meta": {
      "$ref": "../Meta.json"
    },
    "_type": {
      "enum": [
        "Types.RegisterType"
      ]
    },
    "value": {
      "type": "object",
      "properties": {
        "name": {
          "$ref": "#/definitions/name",
          "info": [
            "The `name` is the register that is being referenced."
          ]
        },
        "instance": {
          "$ref": "#/definitions/instance",
          "info": [
            "The `instance` (where applicable) is the instance of the register being referenced."
          ]
        },
        "state": {
          "$ref": "#/definitions/state",
          "info": [
            "The `state` can be set to `AArch32`, `AArch64` or `ext` (short for external)."
          ]
        },
        "slices": {
          "oneOf": [
            {
              "$ref": "../Rangeset.json",
              "info": [
                "The `slices` provides the bitstring slice of the full register reference."
              ]
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "state",
        "name"
      ],
      "examples": [
        {
          "state": "AArch64",
          "name": "REG0"
        },
        {
          "state": "AArch32",
          "name": "REG0",
          "instance": "REG0_S",
          "slices": [
            {
              "_type": "Range",
              "start": 4,
              "width": 1
            }
          ]
        }
      ]
    }
  },
  "required": [
    "value"
  ],
  "examples": [
    {
      "_type": "Types.RegisterType",
      "value": {
        "state": "AArch64",
        "name": "REG0"
      }
    },
    {
      "_type": "Types.RegisterType",
      "value": {
        "state": "AArch32",
        "name": "REGISTER",
        "instance": "INSTANCE",
        "slices": [
          {
            "_type": "Range",
            "start": 4,
            "width": 1
          }
        ]
      }
    }
  ]
}