From d4311d2b1d4b123312bd27eb7584acb83ba023f7 Mon Sep 17 00:00:00 2001 From: Tyler McMullen Date: Mon, 27 Nov 2017 15:38:38 -0800 Subject: [PATCH] Add prologue-epilogue test that exercises new instructions and binary emission. --- .../isa/intel/prologue-epilogue.cton | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 cranelift/filetests/isa/intel/prologue-epilogue.cton diff --git a/cranelift/filetests/isa/intel/prologue-epilogue.cton b/cranelift/filetests/isa/intel/prologue-epilogue.cton new file mode 100644 index 0000000000..384451533a --- /dev/null +++ b/cranelift/filetests/isa/intel/prologue-epilogue.cton @@ -0,0 +1,25 @@ +test legalizer +test binemit +set is_64bit=1 +isa intel haswell + +function %foo(f64 [%xmm0], i64 fp [%rbp], i64 csr [%rbx], i64 csr [%r12]) -> i64 csr [%r12] { + ss0 = local 168, offset 0 + ss1 = incoming_arg 32, offset -32 + +ebb0(v0: f64 [%xmm0], v1: i64 [%rbp], v2: i64 [%rbx], v3: i64 [%r12]): + x86_push v1 ; bin: 40 55 + copy_special %rsp -> %rbp ; bin: 48 89 e5 + x86_push v2 ; bin: 40 53 + x86_push v3 ; bin: 41 54 + adjust_sp_imm -168 ; bin: 48 81 c4 ffffff58 + + ; ... function body ... + + + adjust_sp_imm +168 ; bin: 48 81 c4 000000a8 + [-,%r12] v100 = x86_pop.i64 ; bin: 41 5c + [-,%rbx] v101 = x86_pop.i64 ; bin: 40 5b + [-,%rbp] v102 = x86_pop.i64 ; bin: 40 5d + return v102 +} \ No newline at end of file