new instructions

This commit is contained in:
JanLJL
2020-11-11 12:27:49 +01:00
parent cb04efc384
commit 87ea8f0f0a

View File

@@ -80,24 +80,114 @@ instruction_forms:
throughput: 0.33333333
latency: 1.0 # 1*p012
port_pressure: [[1, '012']]
- name: and
operands:
- class: register
prefix: x
- class: register
prefix: x
- class: register
prefix: x
throughput: 0.33333333
latency: 1.0 # 1*p012
port_pressure: [[1, '012']]
- name: and
operands:
- class: register
prefix: w
- class: register
prefix: w
- class: register
prefix: w
throughput: 0.33333333
latency: 1.0 # 1*p012
port_pressure: [[1, '012']]
- name: and
operands:
- class: register
prefix: x
- class: register
prefix: x
- class: immediate
imd: int
throughput: 0.33333333
latency: 1.0 # 1*p012
port_pressure: [[1, '012']]
- name: and
operands:
- class: register
prefix: w
- class: register
prefix: w
- class: immediate
imd: int
throughput: 0.33333333
latency: 1.0 # 1*p012
port_pressure: [[1, '012']]
- name: mul
operands:
- class: register
prefix: x
- class: register
prefix: x
- class: register
prefix: x
throughput: 1.0
latency: 4.0 # 1*p1
port_pressure: [[1, '1']]
- name: mul
operands:
- class: register
prefix: w
- class: register
prefix: w
- class: register
prefix: w
throughput: 1.0
latency: 4.0 # 1*p1
port_pressure: [[1, '1']]
- name: b.ne
operands:
- class: identifier
throughput: 0.0
throughput: 1.0
latency: 0.0
port_pressure: []
port_pressure: [[1, '2']]
- name: b.lt
operands:
- class: identifier
throughput: 1.0
latency: 0.0
port_pressure: [[1, '2']]
- name: b.hs
operands:
- class: identifier
throughput: 1.0
latency: 0.0
port_pressure: [[1, '2']]
- name: b.eq
operands:
- class: identifier
throughput: 1.0
latency: 0.0
port_pressure: [[1, '2']]
- name: b
operands:
- class: identifier
throughput: 1.0
latency: 0.0
port_pressure: [[1, '2']]
- name: b.gt
operands:
- class: identifier
throughput: 0.0
throughput: 1.0
latency: 0.0
port_pressure: []
port_pressure: [[1, '2']]
- name: bne
operands:
- class: identifier
throughput: 0.0
throughput: 1.0
latency: 0.0
port_pressure: []
port_pressure: [[1, '2']]
- name: cmp
operands:
- class: register
@@ -107,6 +197,15 @@ instruction_forms:
throughput: 0.33333333
latency: 1.0 # 1*p012
port_pressure: [[1, '012']]
- name: cmp
operands:
- class: register
prefix: x
- class: immediate
imd: int
throughput: 0.33333333
latency: 1.0 # 1*p012
port_pressure: [[1, '012']]
- name: cmp
operands:
- class: register
@@ -126,6 +225,17 @@ instruction_forms:
throughput: 0.5
latency: 5.0 # 1*p01
port_pressure: [[1, '01']]
- name: dup
operands:
- class: register
prefix: v
shape: d
- class: register
prefix: v
shape: d
throughput: 0.5
latency: 5.0 # 1*p01
port_pressure: [[1, '01']]
- name: fadd
operands:
- class: register
@@ -323,6 +433,28 @@ instruction_forms:
throughput: 0.5
latency: 6.0 # 1*p01
port_pressure: [[1, '01']]
- name: lsl
operands:
- class: register
prefix: x
- class: register
prefix: x
- class: immediate
imd: int
throughput: 0.33333333
latency: 1.0 # 1*p012
port_pressure: [[1, '012']]
- name: lsl
operands:
- class: register
prefix: w
- class: register
prefix: w
- class: immediate
imd: int
throughput: 0.33333333
latency: 1.0 # 1*p012
port_pressure: [[1, '012']]
- name: ldp
operands:
- class: register
@@ -521,6 +653,15 @@ instruction_forms:
throughput: 0.5
latency: 4.0 # 1*p34
port_pressure: [[1.0, '34']]
- name: ldr
operands:
- class: register
prefix: w
- class: register
prefix: w
throughput: 0.0
latency: 0.0
port_pressure: []
- name: ldr
operands:
- class: register
@@ -548,15 +689,42 @@ instruction_forms:
throughput: 0.0
latency: 0.0
port_pressure: []
- name: mov
operands:
- class: register
prefix: w
- class: immediate
imd: int
throughput: 0.333333
latency: 1.0 # 1*p012
port_pressure: [[1, '012']]
- name: mov
operands:
- class: register
prefix: x
- class: immediate
imd: int
throughput: 0.333333
latency: 1.0 # 1*p012
port_pressure: [[1, '012']]
- name: mov
operands:
- class: register
prefix: w
- class: register
prefix: w
throughput: 0.333333
latency: 1.0 # 1*p012
port_pressure: [[1, '012']]
- name: mov
operands:
- class: register
prefix: x
- class: register
prefix: x
throughput: 0.5
latency: 1.0 # 1*p01
port_pressure: [[1, '01']]
throughput: 0.333333
latency: 1.0 # 1*p012
port_pressure: [[1, '012']]
- name: mov
operands:
- class: register
@@ -584,6 +752,43 @@ instruction_forms:
throughput: ~
latency: ~
port_pressure: []
- name: ret
operands: []
throughput: 0.5
latency: ~ # 1*p34
port_pressure: [[1, '34']]
- name: stp
operands:
- class: register
prefix: w
- class: register
prefix: w
- class: memory
base: x
offset: '*'
index: '*'
scale: '*'
pre-indexed: false
post-indexed: false
throughput: 1.0
latency: 0 # 2*p34+1*p5
port_pressure: [[2, '34'], [1, '5']]
- name: stp
operands:
- class: register
prefix: x
- class: register
prefix: x
- class: memory
base: x
offset: '*'
index: '*'
scale: '*'
pre-indexed: false
post-indexed: false
throughput: 1.0
latency: 0 # 2*p34+1*p5
port_pressure: [[2, '34'], [1, '5']]
- name: stp
operands:
- class: register
@@ -660,6 +865,20 @@ instruction_forms:
throughput: 1.0
latency: 4.0 # 1*p34+1*p5
port_pressure: [[1.0, '34'], [1.0, '5']]
- name: str
operands:
- class: register
prefix: w
- class: memory
base: x
offset: '*'
index: '*'
scale: '*'
pre-indexed: false
post-indexed: false
throughput: 1.0
latency: 0 # 1*p34+1*p5
port_pressure: [[1.0, '34'], [1.0, '5']]
- name: str
operands:
- class: register
@@ -744,6 +963,39 @@ instruction_forms:
throughput: 1.0
latency: 0 # 1*p34+1*p5
port_pressure: [[1.0, '34'], [1.0, '5'], [1, '012']]
- name: subs
operands:
- class: register
prefix: x
- class: register
prefix: x
- class: immediate
imd: int
throughput: 0.33333333
latency: 1.0 # 1*p012
port_pressure: [[1, '012']]
- name: subs
operands:
- class: register
prefix: w
- class: register
prefix: w
- class: immediate
imd: int
throughput: 0.33333333
latency: 1.0 # 1*p012
port_pressure: [[1, '012']]
- name: sub
operands:
- class: register
prefix: x
- class: register
prefix: x
- class: immediate
imd: int
throughput: 0.33333333
latency: 1.0 # 1*p012
port_pressure: [[1, '012']]
- name: sub
operands:
- class: register
@@ -755,3 +1007,25 @@ instruction_forms:
throughput: 0.33333333
latency: 1.0 # 1*p012
port_pressure: [[1, '012']]
- name: sub
operands:
- class: register
prefix: w
- class: register
prefix: w
- class: register
prefix: w
throughput: 0.33333333
latency: 1.0 # 1*p012
port_pressure: [[1, '012']]
- name: sub
operands:
- class: register
prefix: x
- class: register
prefix: x
- class: register
prefix: x
throughput: 0.33333333
latency: 1.0 # 1*p012
port_pressure: [[1, '012']]