mirror of
https://github.com/RRZE-HPC/OSACA.git
synced 2026-01-05 02:30:08 +01:00
375 lines
8.8 KiB
YAML
375 lines
8.8 KiB
YAML
osaca_version: 0.3.0
|
|
isa: "AArch64"
|
|
# Contains all operand-irregular instruction forms OSACA supports for AArch64.
|
|
# Operand-regular for a AArch64 instruction form with N operands in the shape of
|
|
# mnemonic op1 ... opN
|
|
# means that op1 is the only destination operand and op2 to op(N) are source operands.
|
|
instruction_forms:
|
|
- name: "fmla"
|
|
operands:
|
|
- class: "register"
|
|
prefix: "v"
|
|
shape: "s"
|
|
source: true
|
|
destination: true
|
|
- class: "register"
|
|
prefix: "v"
|
|
shape: "s"
|
|
source: true
|
|
destination: false
|
|
- class: "register"
|
|
prefix: "v"
|
|
shape: "s"
|
|
source: true
|
|
destination: false
|
|
- name: "fmla"
|
|
operands:
|
|
- class: "register"
|
|
prefix: "v"
|
|
shape: "d"
|
|
source: true
|
|
destination: true
|
|
- class: "register"
|
|
prefix: "v"
|
|
shape: "d"
|
|
source: true
|
|
destination: false
|
|
- class: "register"
|
|
prefix: "v"
|
|
shape: "d"
|
|
source: true
|
|
destination: false
|
|
- name: "ldp"
|
|
operands:
|
|
- class: "register"
|
|
prefix: "d"
|
|
source: false
|
|
destination: true
|
|
- class: "register"
|
|
prefix: "d"
|
|
source: false
|
|
destination: true
|
|
- class: "memory"
|
|
base: "x"
|
|
offset: "imd"
|
|
index: ~
|
|
scale: 1
|
|
pre-indexed: false
|
|
post-indexed: false
|
|
source: true
|
|
destination: false
|
|
- name: "ldp"
|
|
operands:
|
|
- class: "register"
|
|
prefix: "d"
|
|
source: false
|
|
destination: true
|
|
- class: "register"
|
|
prefix: "d"
|
|
source: false
|
|
destination: true
|
|
- class: "memory"
|
|
base: "x"
|
|
offset: "imd"
|
|
index: ~
|
|
scale: 1
|
|
pre-indexed: false
|
|
post-indexed: true
|
|
source: true
|
|
destination: false
|
|
- name: "ldp"
|
|
operands:
|
|
- class: "register"
|
|
prefix: "d"
|
|
source: false
|
|
destination: true
|
|
- class: "register"
|
|
prefix: "d"
|
|
source: false
|
|
destination: true
|
|
- class: "memory"
|
|
base: "x"
|
|
offset: ~
|
|
index: ~
|
|
scale: 1
|
|
pre-indexed: false
|
|
post-indexed: true
|
|
source: true
|
|
destination: false
|
|
- name: "ldp"
|
|
operands:
|
|
- class: "register"
|
|
prefix: "q"
|
|
source: false
|
|
destination: true
|
|
- class: "register"
|
|
prefix: "q"
|
|
source: false
|
|
destination: true
|
|
- class: "memory"
|
|
base: "x"
|
|
offset: "imd"
|
|
index: ~
|
|
scale: 1
|
|
pre-indexed: false
|
|
post-indexed: false
|
|
source: true
|
|
destination: false
|
|
- name: "ldp"
|
|
operands:
|
|
- class: "register"
|
|
prefix: "q"
|
|
source: false
|
|
destination: true
|
|
- class: "register"
|
|
prefix: "q"
|
|
source: false
|
|
destination: true
|
|
- class: "memory"
|
|
base: "x"
|
|
offset: ~
|
|
index: ~
|
|
scale: 1
|
|
pre-indexed: false
|
|
post-indexed: true
|
|
source: true
|
|
destination: false
|
|
- name: "ldp"
|
|
operands:
|
|
- class: "register"
|
|
prefix: "q"
|
|
source: false
|
|
destination: true
|
|
- class: "register"
|
|
prefix: "q"
|
|
source: false
|
|
destination: true
|
|
- class: "memory"
|
|
base: "x"
|
|
offset: ~
|
|
index: ~
|
|
scale: 1
|
|
pre-indexed: false
|
|
post-indexed: false
|
|
source: true
|
|
destination: false
|
|
- name: "ldp"
|
|
operands:
|
|
- class: "register"
|
|
prefix: "q"
|
|
source: false
|
|
destination: true
|
|
- class: "register"
|
|
prefix: "q"
|
|
source: false
|
|
destination: true
|
|
- class: "memory"
|
|
base: "x"
|
|
offset: "imd"
|
|
index: ~
|
|
scale: 1
|
|
pre-indexed: true
|
|
post-indexed: false
|
|
source: true
|
|
destination: true
|
|
- name: "stp"
|
|
operands:
|
|
- class: "register"
|
|
prefix: "d"
|
|
source: true
|
|
destination: false
|
|
- class: "register"
|
|
prefix: "d"
|
|
source: true
|
|
destination: false
|
|
- class: "memory"
|
|
base: "x"
|
|
offset: ~
|
|
index: ~
|
|
scale: 1
|
|
pre-indexed: false
|
|
post-indexed: false
|
|
source: false
|
|
destination: true
|
|
- name: "stp"
|
|
operands:
|
|
- class: "register"
|
|
prefix: "d"
|
|
source: true
|
|
destination: false
|
|
- class: "register"
|
|
prefix: "d"
|
|
source: true
|
|
destination: false
|
|
- class: "memory"
|
|
base: "x"
|
|
offset: "imd"
|
|
index: ~
|
|
scale: 1
|
|
pre-indexed: false
|
|
post-indexed: false
|
|
source: false
|
|
destination: true
|
|
- name: "stp"
|
|
operands:
|
|
- class: "register"
|
|
prefix: "q"
|
|
source: true
|
|
destination: false
|
|
- class: "register"
|
|
prefix: "q"
|
|
source: true
|
|
destination: false
|
|
- class: "memory"
|
|
base: "x"
|
|
offset: ~
|
|
index: ~
|
|
scale: 1
|
|
pre-indexed: false
|
|
post-indexed: false
|
|
source: false
|
|
destination: true
|
|
- name: "stp"
|
|
operands:
|
|
- class: "register"
|
|
prefix: "q"
|
|
source: true
|
|
destination: false
|
|
- class: "register"
|
|
prefix: "q"
|
|
source: true
|
|
destination: false
|
|
- class: "memory"
|
|
base: "x"
|
|
offset: ~
|
|
index: ~
|
|
scale: 1
|
|
pre-indexed: false
|
|
post-indexed: True
|
|
source: false
|
|
destination: true
|
|
- name: "stp"
|
|
operands:
|
|
- class: "register"
|
|
prefix: "q"
|
|
source: true
|
|
destination: false
|
|
- class: "register"
|
|
prefix: "q"
|
|
source: true
|
|
destination: false
|
|
- class: "memory"
|
|
base: "x"
|
|
offset: "imd"
|
|
index: ~
|
|
scale: 1
|
|
pre-indexed: false
|
|
post-indexed: false
|
|
source: false
|
|
destination: true
|
|
- name: "str"
|
|
operands:
|
|
- class: "register"
|
|
prefix: "x"
|
|
source: true
|
|
destination: false
|
|
- class: "memory"
|
|
base: "x"
|
|
offset: ~
|
|
index: ~
|
|
scale: 1
|
|
pre-indexed: false
|
|
post-indexed: false
|
|
source: false
|
|
destination: true
|
|
- name: "str"
|
|
operands:
|
|
- class: "register"
|
|
prefix: "d"
|
|
source: true
|
|
destination: false
|
|
- class: "memory"
|
|
base: "x"
|
|
offset: "imd"
|
|
index: ~
|
|
scale: 1
|
|
pre-indexed: false
|
|
post-indexed: false
|
|
source: false
|
|
destination: true
|
|
- name: "str"
|
|
operands:
|
|
- class: "register"
|
|
prefix: "d"
|
|
source: true
|
|
destination: false
|
|
- class: "memory"
|
|
base: "x"
|
|
offset: ~
|
|
index: ~
|
|
scale: 1
|
|
pre-indexed: false
|
|
post-indexed: true
|
|
source: false
|
|
destination: true
|
|
- name: "str"
|
|
operands:
|
|
- class: "register"
|
|
prefix: "q"
|
|
source: true
|
|
destination: false
|
|
- class: "memory"
|
|
base: "x"
|
|
offset: ~
|
|
index: "x"
|
|
scale: 1
|
|
pre-indexed: false
|
|
post-indexed: false
|
|
source: false
|
|
destination: true
|
|
- name: "str"
|
|
operands:
|
|
- class: "register"
|
|
prefix: "q"
|
|
source: true
|
|
destination: false
|
|
- class: "memory"
|
|
base: "x"
|
|
offset: ~
|
|
index: ~
|
|
scale: 1
|
|
pre-indexed: false
|
|
post-indexed: true
|
|
source: false
|
|
destination: true
|
|
- name: "str"
|
|
operands:
|
|
- class: "register"
|
|
prefix: "x"
|
|
source: true
|
|
destination: false
|
|
- class: "memory"
|
|
base: "x"
|
|
offset: ~
|
|
index: ~
|
|
scale: 1
|
|
pre-indexed: false
|
|
post-indexed: true
|
|
source: false
|
|
destination: true
|
|
- name: "str"
|
|
operands:
|
|
- class: "register"
|
|
prefix: "x"
|
|
source: true
|
|
destination: false
|
|
- class: "memory"
|
|
base: "x"
|
|
offset: ~
|
|
index: "x"
|
|
scale: 1
|
|
pre-indexed: false
|
|
post-indexed: false
|
|
source: false
|
|
destination: true
|