1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-18 18:42:46 +02:00
Go to file
Esme-Yi a538a3723b [PowerPC] Put the CR field in low bits of GRC during copying CRRC to GRC.
Summary: How we copying the CRRC to GRC is using a single MFOCRF to copy the contents of CR field n (CR bits 4×n+32:4×n+35) into bits 4×n+32:4×n+35 of register GRC. That’s not correct because we expect the value of destination register equals to source so we have to put the the contents of CR field in the lowest 4 bits. This patch adds a RLWINM after MFOCRF to achieve that.
The problem came up when adding builtins for xvtdivdp, xvtdivsp, xvtsqrtdp, xvtsqrtsp, as posted in D88278. We need to move the outputs (in CR register) to GRC. However outputs of these instructions may not in a fixed CR# register, so we can’t directly add a rotation instruction in the .td patterns, but need to wait until the CR register is determined. Then we confirmed this should be a bug in POST-RA PSEUDO PASS.

Reviewed By: nemanjai, shchenz

Differential Revision: https://reviews.llvm.org/D88274
2020-10-02 01:26:18 +00:00
benchmarks
bindings [bindings/go] Fix TestAttributes after D88241 2020-09-25 20:31:45 -07:00
cmake [CMake][AIX] Limit tools in external project build 2020-09-28 16:59:25 -04:00
docs We don't need two different ways to get commit access, just simplify 2020-09-30 22:36:44 -07:00
examples [ORC][examples] Temporarily remove LLJITWithChildProcess until ORC TPC lands 2020-10-01 10:25:13 +02:00
include Revert "[CFGuard] Add address-taken IAT tables and delay-load support" 2020-10-01 11:29:54 -07:00
lib [PowerPC] Put the CR field in low bits of GRC during copying CRRC to GRC. 2020-10-02 01:26:18 +00:00
projects
resources
runtimes [CMake] Use -isystem flag to access libc++ headers 2020-10-01 12:09:27 -07:00
test [PowerPC] Put the CR field in low bits of GRC during copying CRRC to GRC. 2020-10-02 01:26:18 +00:00
tools Revert "[CFGuard] Add address-taken IAT tables and delay-load support" 2020-10-01 11:29:54 -07:00
unittests [APFloat] convert SNaN to QNaN in convert() and raise Invalid signal 2020-10-01 14:37:38 -04:00
utils [gn build] Support building with ThinLTO 2020-10-01 13:48:31 -07:00
.clang-format
.clang-tidy
.gitattributes
.gitignore [clangd] Store index in '.cache/clangd/index' instead of '.clangd/index' 2020-07-07 14:53:45 +02:00
CMakeLists.txt Guard find_library(tensorflow_c_api ...) by checking for TENSORFLOW_C_LIB_PATH to be set by the user 2020-09-28 22:15:55 +00:00
CODE_OWNERS.TXT Update PowerPC backend ownership in CODE_OWNERS.TXT 2020-09-14 15:45:57 -05:00
configure
CREDITS.TXT Update my email address. 2020-08-21 10:15:26 -07:00
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
README.txt Test commit. 2020-03-14 18:08:26 -07:00
RELEASE_TESTERS.TXT

The LLVM Compiler Infrastructure
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.