llvm-project/llvm/test
Ulrich Weigand 9d980cbdb9 [PowerPC] Use true offset value in "memrix" machine operands
This is the second part of the change to always return "true"
offset values from getPreIndexedAddressParts, tackling the
case of "memrix" type operands.

This is about instructions like LD/STD that only have a 14-bit
field to encode immediate offsets, which are implicitly extended
by two zero bits by the machine, so that in effect we can access
16-bit offsets as long as they are a multiple of 4.

The PowerPC back end currently handles such instructions by
carrying the 14-bit value (as it will get encoded into the
actual machine instructions) in the machine operand fields
for such instructions.  This means that those values are
in fact not the true offset, but rather the offset divided
by 4 (and then truncated to an unsigned 14-bit value).

Like in the case fixed in r182012, this makes common code
operations on such offset values not work as expected.
Furthermore, there doesn't really appear to be any strong
reason why we should encode machine operands this way.

This patch therefore changes the encoding of "memrix" type
machine operands to simply contain the "true" offset value
as a signed immediate value, while enforcing the rules that
it must fit in a 16-bit signed value and must also be a
multiple of 4.

This change must be made simultaneously in all places that
access machine operands of this type.  However, just about
all those changes make the code simpler; in many cases we
can now just share the same code for memri and memrix
operands.

llvm-svn: 182032
2013-05-16 17:58:02 +00:00
..
Analysis AArch64: use MCJIT by default and enable related tests. 2013-05-06 16:51:08 +00:00
Archive
Assembler Correct invalid debug info metadata 2013-03-12 19:04:24 +00:00
Bindings/Ocaml Use the attribute group reference instead of the attribute directly. 2013-02-20 07:48:23 +00:00
Bitcode Unify clang/llvm attributes for asan/tsan/msan (LLVM part) 2013-02-26 06:58:09 +00:00
BugPoint Fix unexpected passes. These test do work with LTO on linux. I tested both 2012-10-26 02:19:02 +00:00
CodeGen [PowerPC] Use true offset value in "memrix" machine operands 2013-05-16 17:58:02 +00:00
DebugInfo Give the test from r181632 a target triple. 2013-05-10 22:14:39 +00:00
ExecutionEngine XFAIL this test for mingw too. 2013-05-13 00:18:24 +00:00
Feature Clarify that llvm.used can contain aliases. 2013-04-22 14:58:02 +00:00
FileCheck Add 'CHECK-DAG' support 2013-05-14 20:34:12 +00:00
Instrumentation [msan] Switch TLS globals to initial-exec model. 2013-05-16 09:14:05 +00:00
Integer Rewrite test/Integer tests to use FileCheck instead of grep 2013-04-08 20:18:15 +00:00
JitListener Add support for source and line information to IntelJITEventListener for object emitted by MCJIT. 2013-01-28 19:52:37 +00:00
Linker Rewrite test/Linker tests to use FileCheck instead of grep. 2013-04-09 16:51:13 +00:00
MC [PowerPC] Remove need for adjustFixupOffst hack 2013-05-15 15:07:06 +00:00
Object Object: Fix Mach-O relocation printing. 2013-05-14 22:41:29 +00:00
Other Attributes: Don't print trailing whitespace on the function attribute comment. 2013-04-19 11:43:21 +00:00
TableGen Allow TableGen DAG arguments to be just a name. 2013-03-24 19:36:51 +00:00
Transforms Respect the 'nobuiltin' attribute when determining if a call is to a memory builtin. 2013-05-16 04:12:04 +00:00
Unit Propagate path to ASan/MSan symbolizer into test environment to produce useful reports on errors. 2013-04-04 07:41:00 +00:00
Verifier Also verify llvm.compiler_used. 2013-04-22 15:16:51 +00:00
YAMLParser
tools Use pointers to iterate over symbols. 2013-04-24 19:47:55 +00:00
CMakeLists.txt Add obj2yaml to test dependencies 2013-04-05 07:26:37 +00:00
Makefile Allow host triple to be correctly overridden in CMake builds 2013-05-04 07:36:23 +00:00
Makefile.tests Remove obsolete object file dumpers 2013-04-12 04:07:13 +00:00
TestRunner.sh
lit.cfg AArch64: use MCJIT by default and enable related tests. 2013-05-06 16:51:08 +00:00
lit.site.cfg.in Allow host triple to be correctly overridden in CMake builds 2013-05-04 07:36:23 +00:00