s390x: use constraints for call arguments and return values (#5092)
Use the regalloc constraint-based CallArgList / CallRetList mechanism instead of directly using physregs in instructions.
This commit is contained in:
@@ -35,8 +35,8 @@ block0(v0: i32):
|
||||
; virtual_sp_offset_adjust 160
|
||||
; block0:
|
||||
; llgfr %r2, %r2
|
||||
; bras %r1, 12 ; data %g + 0 ; lg %r3, 0(%r1)
|
||||
; basr %r14, %r3
|
||||
; bras %r1, 12 ; data %g + 0 ; lg %r4, 0(%r1)
|
||||
; basr %r14, %r4
|
||||
; lmg %r14, %r15, 272(%r15)
|
||||
; br %r14
|
||||
|
||||
@@ -63,8 +63,8 @@ block0(v0: i32):
|
||||
; virtual_sp_offset_adjust 160
|
||||
; block0:
|
||||
; lgfr %r2, %r2
|
||||
; bras %r1, 12 ; data %g + 0 ; lg %r3, 0(%r1)
|
||||
; basr %r14, %r3
|
||||
; bras %r1, 12 ; data %g + 0 ; lg %r4, 0(%r1)
|
||||
; basr %r14, %r4
|
||||
; lmg %r14, %r15, 272(%r15)
|
||||
; br %r14
|
||||
|
||||
@@ -107,8 +107,8 @@ block0(v0: i32):
|
||||
; virtual_sp_offset_adjust 160
|
||||
; block0:
|
||||
; llgfr %r2, %r2
|
||||
; bras %r1, 12 ; data %g + 0 ; lg %r3, 0(%r1)
|
||||
; basr %r14, %r3
|
||||
; bras %r1, 12 ; data %g + 0 ; lg %r4, 0(%r1)
|
||||
; basr %r14, %r4
|
||||
; lmg %r14, %r15, 272(%r15)
|
||||
; br %r14
|
||||
|
||||
|
||||
@@ -69,15 +69,15 @@ block3(v7: r64, v8: r64):
|
||||
; aghi %r15, -184
|
||||
; virtual_sp_offset_adjust 160
|
||||
; block0:
|
||||
; stg %r3, 176(%r15)
|
||||
; stg %r2, 168(%r15)
|
||||
; bras %r1, 12 ; data %f + 0 ; lg %r3, 0(%r1)
|
||||
; basr %r14, %r3
|
||||
; la %r5, 160(%r15)
|
||||
; stg %r3, 176(%r15)
|
||||
; bras %r1, 12 ; data %f + 0 ; lg %r5, 0(%r1)
|
||||
; basr %r14, %r5
|
||||
; la %r4, 160(%r15)
|
||||
; lg %r3, 168(%r15)
|
||||
; stg %r3, 0(%r5)
|
||||
; lbr %r2, %r2
|
||||
; chi %r2, 0
|
||||
; stg %r3, 0(%r4)
|
||||
; lbr %r5, %r2
|
||||
; chi %r5, 0
|
||||
; jgnlh label1 ; jg label3
|
||||
; block1:
|
||||
; jg label2
|
||||
|
||||
@@ -103,22 +103,22 @@ block0(v0: i64, v1: i64, v2: i64):
|
||||
return v3
|
||||
}
|
||||
|
||||
; stmg %r7, %r15, 56(%r15)
|
||||
; stmg %r8, %r15, 64(%r15)
|
||||
; aghi %r15, -1248
|
||||
; virtual_sp_offset_adjust 1248
|
||||
; block0:
|
||||
; lgr %r7, %r2
|
||||
; lgr %r9, %r4
|
||||
; lgr %r8, %r2
|
||||
; lgr %r10, %r4
|
||||
; la %r2, 160(%r15)
|
||||
; la %r3, 0(%r3)
|
||||
; lghi %r4, 1024
|
||||
; brasl %r14, %Memcpy
|
||||
; lgr %r4, %r9
|
||||
; lgr %r4, %r10
|
||||
; mvc 1184(63,%r15), 0(%r4)
|
||||
; lgr %r2, %r7
|
||||
; la %r3, 160(%r15)
|
||||
; la %r4, 1184(%r15)
|
||||
; lgr %r2, %r8
|
||||
; brasl %r14, userextname0
|
||||
; lmg %r7, %r15, 1304(%r15)
|
||||
; lmg %r8, %r15, 1312(%r15)
|
||||
; br %r14
|
||||
|
||||
|
||||
@@ -18,9 +18,9 @@ block0(v0: i32):
|
||||
; bras %r1, 12 ; data userextname0@tlsgd ; lg %r2, 0(%r1)
|
||||
; brasl %r14, %ElfTlsGetOffset:tls_gdcall:userextname0
|
||||
; ear %r3, %a0
|
||||
; sllg %r5, %r3, 32
|
||||
; ear %r5, %a1
|
||||
; agr %r2, %r5
|
||||
; sllg %r3, %r3, 32
|
||||
; ear %r3, %a1
|
||||
; agr %r2, %r3
|
||||
; lmg %r12, %r15, 256(%r15)
|
||||
; br %r14
|
||||
|
||||
|
||||
@@ -13,8 +13,8 @@ block0(v0: i64x2, v1: i32x4, v2: i16x8, v3: i8x16):
|
||||
; aghi %r15, -160
|
||||
; virtual_sp_offset_adjust 160
|
||||
; block0:
|
||||
; bras %r1, 12 ; data %callee_be + 0 ; lg %r4, 0(%r1)
|
||||
; basr %r14, %r4
|
||||
; bras %r1, 12 ; data %callee_be + 0 ; lg %r5, 0(%r1)
|
||||
; basr %r14, %r5
|
||||
; lmg %r14, %r15, 272(%r15)
|
||||
; br %r14
|
||||
|
||||
@@ -39,19 +39,19 @@ block0(v0: i64x2, v1: i32x4, v2: i16x8, v3: i8x16):
|
||||
; std %f15, 216(%r15)
|
||||
; block0:
|
||||
; vpdi %v24, %v24, %v24, 4
|
||||
; vpdi %v17, %v25, %v25, 4
|
||||
; verllg %v25, %v17, 32
|
||||
; vpdi %v22, %v26, %v26, 4
|
||||
; verllg %v26, %v22, 32
|
||||
; verllf %v26, %v26, 16
|
||||
; vpdi %v29, %v27, %v27, 4
|
||||
; verllg %v31, %v29, 32
|
||||
; verllf %v1, %v31, 16
|
||||
; verllh %v27, %v1, 8
|
||||
; bras %r1, 12 ; data %callee_le + 0 ; lg %r4, 0(%r1)
|
||||
; basr %r14, %r4
|
||||
; vpdi %v19, %v24, %v24, 4
|
||||
; verllg %v24, %v19, 32
|
||||
; vpdi %v16, %v25, %v25, 4
|
||||
; verllg %v25, %v16, 32
|
||||
; vpdi %v20, %v26, %v26, 4
|
||||
; verllg %v22, %v20, 32
|
||||
; verllf %v26, %v22, 16
|
||||
; vpdi %v27, %v27, %v27, 4
|
||||
; verllg %v28, %v27, 32
|
||||
; verllf %v30, %v28, 16
|
||||
; verllh %v27, %v30, 8
|
||||
; bras %r1, 12 ; data %callee_le + 0 ; lg %r5, 0(%r1)
|
||||
; basr %r14, %r5
|
||||
; vpdi %v6, %v24, %v24, 4
|
||||
; verllg %v24, %v6, 32
|
||||
; ld %f8, 160(%r15)
|
||||
; ld %f9, 168(%r15)
|
||||
; ld %f10, 176(%r15)
|
||||
@@ -84,19 +84,19 @@ block0(v0: i64x2, v1: i32x4, v2: i16x8, v3: i8x16):
|
||||
; std %f15, 216(%r15)
|
||||
; block0:
|
||||
; vpdi %v24, %v24, %v24, 4
|
||||
; vpdi %v17, %v25, %v25, 4
|
||||
; verllg %v25, %v17, 32
|
||||
; vpdi %v22, %v26, %v26, 4
|
||||
; verllg %v26, %v22, 32
|
||||
; verllf %v26, %v26, 16
|
||||
; vpdi %v29, %v27, %v27, 4
|
||||
; verllg %v31, %v29, 32
|
||||
; verllf %v1, %v31, 16
|
||||
; verllh %v27, %v1, 8
|
||||
; bras %r1, 12 ; data %callee_be + 0 ; lg %r4, 0(%r1)
|
||||
; basr %r14, %r4
|
||||
; vpdi %v19, %v24, %v24, 4
|
||||
; verllg %v24, %v19, 32
|
||||
; vpdi %v16, %v25, %v25, 4
|
||||
; verllg %v25, %v16, 32
|
||||
; vpdi %v20, %v26, %v26, 4
|
||||
; verllg %v22, %v20, 32
|
||||
; verllf %v26, %v22, 16
|
||||
; vpdi %v27, %v27, %v27, 4
|
||||
; verllg %v28, %v27, 32
|
||||
; verllf %v30, %v28, 16
|
||||
; verllh %v27, %v30, 8
|
||||
; bras %r1, 12 ; data %callee_be + 0 ; lg %r5, 0(%r1)
|
||||
; basr %r14, %r5
|
||||
; vpdi %v6, %v24, %v24, 4
|
||||
; verllg %v24, %v6, 32
|
||||
; ld %f8, 160(%r15)
|
||||
; ld %f9, 168(%r15)
|
||||
; ld %f10, 176(%r15)
|
||||
@@ -120,8 +120,8 @@ block0(v0: i64x2, v1: i32x4, v2: i16x8, v3: i8x16):
|
||||
; aghi %r15, -160
|
||||
; virtual_sp_offset_adjust 160
|
||||
; block0:
|
||||
; bras %r1, 12 ; data %callee_le + 0 ; lg %r4, 0(%r1)
|
||||
; basr %r14, %r4
|
||||
; bras %r1, 12 ; data %callee_le + 0 ; lg %r5, 0(%r1)
|
||||
; basr %r14, %r5
|
||||
; lmg %r14, %r15, 272(%r15)
|
||||
; br %r14
|
||||
|
||||
|
||||
Reference in New Issue
Block a user