cranelift: Fix implicit pointer argument register use (#5301)

* Fix arg handling to write to VRegs instead of physical regs

* Make is_included_in_clobbers required, and handle Args on x64 and riscv64
This commit is contained in:
Trevor Elliott
2022-11-18 16:47:03 -08:00
committed by GitHub
parent 7a31c5b07c
commit 54cfa4df34
10 changed files with 51 additions and 28 deletions

View File

@@ -703,7 +703,7 @@ block0(v0: i128, v1: i128):
; stmg %r7, %r15, 56(%r15)
; block0:
; lgr %r14, %r2
; lgr %r10, %r2
; vl %v0, 0(%r3)
; vl %v1, 0(%r4)
; lgdr %r4, %f0
@@ -718,7 +718,7 @@ block0(v0: i128, v1: i128):
; agrk %r4, %r2, %r8
; agr %r5, %r4
; vlvgp %v5, %r5, %r3
; lgr %r2, %r14
; lgr %r2, %r10
; vst %v5, 0(%r2)
; lmg %r7, %r15, 56(%r15)
; br %r14

View File

@@ -348,8 +348,8 @@ block0(v0: i128):
; block0:
; vl %v0, 0(%r2)
; vgbm %v2, 0
; vceqgs %v4, %v0, %v2
; vgbm %v3, 0
; vceqgs %v5, %v0, %v3
; lghi %r2, 0
; locghine %r2, -1
; br %r14
@@ -362,8 +362,8 @@ block0(v0: i128):
; block0:
; vl %v0, 0(%r2)
; vgbm %v2, 0
; vceqgs %v4, %v0, %v2
; vgbm %v3, 0
; vceqgs %v5, %v0, %v3
; lhi %r2, 0
; lochine %r2, -1
; br %r14
@@ -376,8 +376,8 @@ block0(v0: i128):
; block0:
; vl %v0, 0(%r2)
; vgbm %v2, 0
; vceqgs %v4, %v0, %v2
; vgbm %v3, 0
; vceqgs %v5, %v0, %v3
; lhi %r2, 0
; lochine %r2, -1
; br %r14
@@ -390,8 +390,8 @@ block0(v0: i128):
; block0:
; vl %v0, 0(%r2)
; vgbm %v2, 0
; vceqgs %v4, %v0, %v2
; vgbm %v3, 0
; vceqgs %v5, %v0, %v3
; lhi %r2, 0
; lochine %r2, -1
; br %r14

View File

@@ -10,7 +10,7 @@ block0(v0: i128, v1: i128):
; block0:
; vl %v0, 0(%r2)
; vl %v1, 0(%r3)
; vceqgs %v4, %v0, %v1
; vceqgs %v5, %v0, %v1
; lhi %r2, 0
; lochie %r2, 1
; br %r14
@@ -24,7 +24,7 @@ block0(v0: i128, v1: i128):
; block0:
; vl %v0, 0(%r2)
; vl %v1, 0(%r3)
; vceqgs %v4, %v0, %v1
; vceqgs %v5, %v0, %v1
; lhi %r2, 0
; lochine %r2, 1
; br %r14
@@ -38,7 +38,7 @@ block0(v0: i128, v1: i128):
; block0:
; vl %v0, 0(%r2)
; vl %v1, 0(%r3)
; vecg %v0, %v1 ; jne 10 ; vchlgs %v4, %v1, %v0
; vecg %v0, %v1 ; jne 10 ; vchlgs %v5, %v1, %v0
; lhi %r2, 0
; lochil %r2, 1
; br %r14
@@ -52,7 +52,7 @@ block0(v0: i128, v1: i128):
; block0:
; vl %v0, 0(%r2)
; vl %v1, 0(%r3)
; vecg %v1, %v0 ; jne 10 ; vchlgs %v4, %v0, %v1
; vecg %v1, %v0 ; jne 10 ; vchlgs %v5, %v0, %v1
; lhi %r2, 0
; lochil %r2, 1
; br %r14
@@ -66,7 +66,7 @@ block0(v0: i128, v1: i128):
; block0:
; vl %v0, 0(%r2)
; vl %v1, 0(%r3)
; vecg %v1, %v0 ; jne 10 ; vchlgs %v4, %v0, %v1
; vecg %v1, %v0 ; jne 10 ; vchlgs %v5, %v0, %v1
; lhi %r2, 0
; lochinl %r2, 1
; br %r14
@@ -80,7 +80,7 @@ block0(v0: i128, v1: i128):
; block0:
; vl %v0, 0(%r2)
; vl %v1, 0(%r3)
; vecg %v0, %v1 ; jne 10 ; vchlgs %v4, %v1, %v0
; vecg %v0, %v1 ; jne 10 ; vchlgs %v5, %v1, %v0
; lhi %r2, 0
; lochinl %r2, 1
; br %r14
@@ -94,7 +94,7 @@ block0(v0: i128, v1: i128):
; block0:
; vl %v0, 0(%r2)
; vl %v1, 0(%r3)
; veclg %v0, %v1 ; jne 10 ; vchlgs %v4, %v1, %v0
; veclg %v0, %v1 ; jne 10 ; vchlgs %v5, %v1, %v0
; lhi %r2, 0
; lochil %r2, 1
; br %r14
@@ -108,7 +108,7 @@ block0(v0: i128, v1: i128):
; block0:
; vl %v0, 0(%r2)
; vl %v1, 0(%r3)
; veclg %v1, %v0 ; jne 10 ; vchlgs %v4, %v0, %v1
; veclg %v1, %v0 ; jne 10 ; vchlgs %v5, %v0, %v1
; lhi %r2, 0
; lochil %r2, 1
; br %r14
@@ -122,7 +122,7 @@ block0(v0: i128, v1: i128):
; block0:
; vl %v0, 0(%r2)
; vl %v1, 0(%r3)
; veclg %v1, %v0 ; jne 10 ; vchlgs %v4, %v0, %v1
; veclg %v1, %v0 ; jne 10 ; vchlgs %v5, %v0, %v1
; lhi %r2, 0
; lochinl %r2, 1
; br %r14
@@ -136,7 +136,7 @@ block0(v0: i128, v1: i128):
; block0:
; vl %v0, 0(%r2)
; vl %v1, 0(%r3)
; veclg %v0, %v1 ; jne 10 ; vchlgs %v4, %v1, %v0
; veclg %v0, %v1 ; jne 10 ; vchlgs %v5, %v1, %v0
; lhi %r2, 0
; lochinl %r2, 1
; br %r14