[WebAssembly] Fix return type of __builtin_return_address under wasm64
Differential Revision: https://reviews.llvm.org/D135005
This commit is contained in:
parent
f8d081c1a5
commit
664a5c6d03
|
@ -71,6 +71,7 @@ enum RuntimeLibcallSignature {
|
|||
i64_i64_func_i64_i64_i64_i64_iPTR,
|
||||
i64_i64_i64_i64_func_i64_i64_i64_i64,
|
||||
i64_i64_func_i64_i64_i32,
|
||||
iPTR_func_i32,
|
||||
iPTR_func_iPTR_i32_iPTR,
|
||||
iPTR_func_iPTR_iPTR_iPTR,
|
||||
f32_func_f32_f32_f32,
|
||||
|
@ -329,7 +330,7 @@ struct RuntimeLibcallSignatureTable {
|
|||
Table[RTLIB::STACKPROTECTOR_CHECK_FAIL] = func;
|
||||
|
||||
// Return address handling
|
||||
Table[RTLIB::RETURN_ADDRESS] = i32_func_i32;
|
||||
Table[RTLIB::RETURN_ADDRESS] = iPTR_func_i32;
|
||||
|
||||
// Element-wise Atomic memory
|
||||
// TODO: Fix these when we implement atomic support
|
||||
|
@ -785,6 +786,10 @@ void llvm::getLibcallSignature(const WebAssemblySubtarget &Subtarget,
|
|||
Params.push_back(wasm::ValType::I64);
|
||||
Params.push_back(wasm::ValType::I32);
|
||||
break;
|
||||
case iPTR_func_i32:
|
||||
Rets.push_back(PtrTy);
|
||||
Params.push_back(wasm::ValType::I32);
|
||||
break;
|
||||
case iPTR_func_iPTR_i32_iPTR:
|
||||
Rets.push_back(PtrTy);
|
||||
Params.push_back(PtrTy);
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
; RUN: llc < %s -asm-verbose=false | FileCheck %s
|
||||
|
||||
target triple = "wasm32-unknown-emscripten"
|
||||
; RUN: llc -mtriple=wasm32-unknown-emscripten < %s -asm-verbose=false | FileCheck -DPTR=32 %s
|
||||
; RUN: llc -mtriple=wasm64-unknown-emscripten < %s -asm-verbose=false | FileCheck -DPTR=64 %s
|
||||
|
||||
; This tests the implementation of __builtin_return_address on emscripten
|
||||
|
||||
; CHECK-LABEL: test_returnaddress:
|
||||
; CHECK-NEXT: .functype test_returnaddress () -> (i32){{$}}
|
||||
; CHECK-NEXT: .functype test_returnaddress () -> (i[[PTR]]){{$}}
|
||||
; CHECK-NEXT: {{^}} i32.const 0{{$}}
|
||||
; CHECK-NEXT: {{^}} call emscripten_return_address{{$}}
|
||||
; CHECK-NEXT: {{^}} end_function{{$}}
|
||||
|
|
Loading…
Reference in New Issue