To keep cross-compiling straightforward, Cretonne shouldn't have any behavior that depends on the host. This renames the "Native" calling convention to "SystemV", which has a defined meaning for each target, so that it's clear that the calling convention doesn't change depending on what host Cretonne is running on.
37 lines
1.2 KiB
Plaintext
37 lines
1.2 KiB
Plaintext
; Test the parser's support for encoding annotations.
|
|
test legalizer
|
|
isa riscv
|
|
|
|
function %parse_encoding(i32 [%x5]) -> i32 [%x10] {
|
|
; check: function %parse_encoding(i32 [%x5], i32 link [%x1]) -> i32 [%x10], i32 link [%x1] system_v {
|
|
|
|
sig0 = (i32 [%x10]) -> i32 [%x10] system_v
|
|
; check: sig0 = (i32 [%x10]) -> i32 [%x10] system_v
|
|
|
|
sig1 = (i32 [%x10], i32 [%x11]) -> b1 [%x10] system_v
|
|
; check: sig1 = (i32 [%x10], i32 [%x11]) -> b1 [%x10] system_v
|
|
|
|
sig2 = (f32 [%f10], i32 [%x12], i32 [%x13]) -> f64 [%f10] system_v
|
|
; check: sig2 = (f32 [%f10], i32 [%x12], i32 [%x13]) -> f64 [%f10] system_v
|
|
|
|
; Arguments on stack where not necessary
|
|
sig3 = (f64 [%f10], i32 [0], i32 [4]) -> f64 [%f10] system_v
|
|
; check: sig3 = (f64 [%f10], i32 [0], i32 [4]) -> f64 [%f10] system_v
|
|
|
|
; Stack argument before register argument
|
|
sig4 = (f32 [72], i32 [%x10]) system_v
|
|
; check: sig4 = (f32 [72], i32 [%x10]) system_v
|
|
|
|
; Return value on stack
|
|
sig5 = () -> f32 [0] system_v
|
|
; check: sig5 = () -> f32 [0] system_v
|
|
|
|
; function + signature
|
|
fn0 = function %bar(i32 [%x10]) -> b1 [%x10] system_v
|
|
; check: sig6 = (i32 [%x10]) -> b1 [%x10] system_v
|
|
; nextln: fn0 = sig6 %bar
|
|
|
|
ebb0(v0: i32):
|
|
return v0
|
|
}
|