Files
OSACA/osaca/data/isa/aarch64.yml
Julian dd59af16b2 Merge pull request #51 from RRZE-HPC/A64FX
A64FX support and several Arm bugfixes and enhancements including better TP scheduling
2020-10-16 10:44:47 +02:00

163 lines
3.9 KiB
YAML

osaca_version: 0.3.7
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: "*"
shape: "*"
source: true
destination: true
- class: "register"
prefix: "*"
shape: "*"
source: true
destination: false
- class: "register"
prefix: "*"
shape: "*"
source: true
destination: false
- name: ldp
operands:
- class: "register"
prefix: "*"
source: false
destination: true
- class: "register"
prefix: "*"
source: false
destination: true
- class: "memory"
base: "*"
offset: "*"
index: "*"
scale: "*"
pre-indexed: "*"
post-indexed: "*"
source: true
destination: false
- name: [ldr, ldur]
operands:
- class: "register"
prefix: "*"
source: false
destination: true
- class: "memory"
base: "*"
offset: "*"
index: "*"
scale: "*"
pre-indexed: "*"
post-indexed: "*"
source: true
destination: false
- name: stp
operands:
- class: "register"
prefix: "*"
source: true
destination: false
- class: "register"
prefix: "*"
source: true
destination: false
- class: "memory"
base: "*"
offset: "*"
index: "*"
scale: "*"
pre-indexed: "*"
post-indexed: "*"
source: false
destination: true
- name: [str, stur]
operands:
- class: "register"
prefix: "*"
source: true
destination: false
- class: "memory"
base: "*"
offset: "*"
index: "*"
scale: "*"
pre-indexed: "*"
post-indexed: "*"
source: false
destination: true
- name: cmp
operands:
- class: "register"
prefix: "*"
source: true
destination: false
- class: "register"
prefix: "*"
source: true
destination: false
- name: cmp
operands:
- class: "register"
prefix: "*"
source: true
destination: false
- class: "immediate"
imd: "int"
source: true
destination: false
- name: cmn
operands:
- class: "register"
prefix: "*"
source: true
destination: false
- class: "register"
prefix: "*"
source: true
destination: false
- name: cmn
operands:
- class: "register"
prefix: "*"
source: true
destination: false
- class: "immediate"
imd: "int"
source: true
destination: false
- name: fcmp
operands:
- class: "register"
prefix: "*"
source: true
destination: false
- class: "register"
prefix: "*"
source: true
destination: false
- name: fcmp
operands:
- class: "register"
prefix: "*"
source: true
destination: false
- class: "immediate"
imd: "double"
source: true
destination: false
- name: fcmp
operands:
- class: "register"
prefix: "*"
source: true
destination: false
- class: "immediate"
imd: "float"
source: true
destination: false