mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-05-18 21:16:31 +00:00

This adds 4 new reloc types. A lot of code that previously assumed any memory or offset values could be contained in a uint32_t (and often truncated results from functions returning 64-bit values) have been upgraded to uint64_t. This is not comprehensive: it is only the values that come in contact with the new relocation values and their dependents. A new tablegen mapping was added to automatically upgrade loads/stores in the assembler, which otherwise has no way to select for these instructions (since they are indentical other than for the offset immediate). It follows a similar technique to https://reviews.llvm.org/D53307 Differential Revision: https://reviews.llvm.org/D81704
34 lines
1003 B
C++
34 lines
1003 B
C++
//===-- WebAssemblyTargetInfo.h - WebAssembly Target Impl -------*- C++ -*-===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
///
|
|
/// \file
|
|
/// This file registers the WebAssembly target.
|
|
///
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_LIB_TARGET_WEBASSEMBLY_TARGETINFO_WEBASSEMBLYTARGETINFO_H
|
|
#define LLVM_LIB_TARGET_WEBASSEMBLY_TARGETINFO_WEBASSEMBLYTARGETINFO_H
|
|
|
|
namespace llvm {
|
|
|
|
class Target;
|
|
|
|
Target &getTheWebAssemblyTarget32();
|
|
Target &getTheWebAssemblyTarget64();
|
|
|
|
namespace WebAssembly {
|
|
|
|
int getStackOpcode(unsigned short Opcode);
|
|
int getWasm64Opcode(unsigned short Opcode);
|
|
|
|
} // namespace WebAssembly
|
|
|
|
} // namespace llvm
|
|
|
|
#endif // LLVM_LIB_TARGET_WEBASSEMBLY_TARGETINFO_WEBASSEMBLYTARGETINFO_H
|