diff options
author | orivej <orivej@yandex-team.ru> | 2022-02-10 16:45:01 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:01 +0300 |
commit | 2d37894b1b037cf24231090eda8589bbb44fb6fc (patch) | |
tree | be835aa92c6248212e705f25388ebafcf84bc7a1 /contrib/libs/llvm12/lib/Support/ARMWinEH.cpp | |
parent | 718c552901d703c502ccbefdfc3c9028d608b947 (diff) | |
download | ydb-2d37894b1b037cf24231090eda8589bbb44fb6fc.tar.gz |
Restoring authorship annotation for <orivej@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'contrib/libs/llvm12/lib/Support/ARMWinEH.cpp')
-rw-r--r-- | contrib/libs/llvm12/lib/Support/ARMWinEH.cpp | 74 |
1 files changed, 37 insertions, 37 deletions
diff --git a/contrib/libs/llvm12/lib/Support/ARMWinEH.cpp b/contrib/libs/llvm12/lib/Support/ARMWinEH.cpp index 5eaed4b306..831f95cd4b 100644 --- a/contrib/libs/llvm12/lib/Support/ARMWinEH.cpp +++ b/contrib/libs/llvm12/lib/Support/ARMWinEH.cpp @@ -1,37 +1,37 @@ -//===-- ARMWinEH.cpp - Windows on ARM EH Support Functions ------*- 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 -// -//===----------------------------------------------------------------------===// - -#include "llvm/Support/ARMWinEH.h" -#include "llvm/Support/raw_ostream.h" - -namespace llvm { -namespace ARM { -namespace WinEH { -std::pair<uint16_t, uint32_t> SavedRegisterMask(const RuntimeFunction &RF) { - uint8_t NumRegisters = RF.Reg(); - uint8_t RegistersVFP = RF.R(); - uint8_t LinkRegister = RF.L(); - uint8_t ChainedFrame = RF.C(); - - uint16_t GPRMask = (ChainedFrame << 11) | (LinkRegister << 14); - uint32_t VFPMask = 0; - - if (RegistersVFP) - VFPMask |= (((1 << ((NumRegisters + 1) % 8)) - 1) << 8); - else - GPRMask |= (((1 << (NumRegisters + 1)) - 1) << 4); - - if (PrologueFolding(RF)) - GPRMask |= (((1 << (NumRegisters + 1)) - 1) << (~RF.StackAdjust() & 0x3)); - - return std::make_pair(GPRMask, VFPMask); -} -} -} -} - +//===-- ARMWinEH.cpp - Windows on ARM EH Support Functions ------*- 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 +// +//===----------------------------------------------------------------------===// + +#include "llvm/Support/ARMWinEH.h" +#include "llvm/Support/raw_ostream.h" + +namespace llvm { +namespace ARM { +namespace WinEH { +std::pair<uint16_t, uint32_t> SavedRegisterMask(const RuntimeFunction &RF) { + uint8_t NumRegisters = RF.Reg(); + uint8_t RegistersVFP = RF.R(); + uint8_t LinkRegister = RF.L(); + uint8_t ChainedFrame = RF.C(); + + uint16_t GPRMask = (ChainedFrame << 11) | (LinkRegister << 14); + uint32_t VFPMask = 0; + + if (RegistersVFP) + VFPMask |= (((1 << ((NumRegisters + 1) % 8)) - 1) << 8); + else + GPRMask |= (((1 << (NumRegisters + 1)) - 1) << 4); + + if (PrologueFolding(RF)) + GPRMask |= (((1 << (NumRegisters + 1)) - 1) << (~RF.StackAdjust() & 0x3)); + + return std::make_pair(GPRMask, VFPMask); +} +} +} +} + |