1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/test
Simon Tatham 27e08f00ae [ARM] Fix handling of zero offsets in LOB instructions.
The BF and WLS/WLSTP instructions have various branch-offset fields
occupying different positions and lengths in the instruction encoding,
and all of them were decoded at disassembly time by the function
DecodeBFLabelOffset() which returned SoftFail if the offset was zero.

In fact, it's perfectly fine and not even a SoftFail for most of those
offset fields to be zero. The only one that can't be zero is the 4-bit
field labelled `boff` in the architecture spec, occupying bits {26-23}
of the BF instruction family. If that one is zero, the encoding
overlaps other instructions (WLS, DLS, LETP, VCTP), so it ought to be
a full Fail.

Fixed by adding an extra template parameter to DecodeBFLabelOffset
which controls whether a zero offset is accepted or rejected. Adjusted
existing tests (only in error messages for bad disassemblies); added
extra tests to demonstrate zero offsets being accepted in all the
right places, and a few demonstrating rejection of zero `boff`.

Reviewers: DavidSpickett, ostannard

Subscribers: javed.absar, kristof.beyls, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D63864

llvm-svn: 364533
2019-06-27 12:41:07 +00:00
..
Analysis [LoopUnroll] Add support for loops with exiting headers and uncond latches. 2019-06-26 09:16:57 +00:00
Assembler [IR/DIVar] Add the flag for params that have unmodified value 2019-06-26 11:19:26 +00:00
Bindings
Bitcode Fix Bitcode/invalid.test 2019-06-26 23:08:29 +00:00
BugPoint
CodeGen [X86][SSE] Regenerate v48 shuffle test on a variety of targets 2019-06-27 11:22:23 +00:00
DebugInfo Add triple to a test I just added. 2019-06-27 11:52:03 +00:00
Demangle
Examples
ExecutionEngine
Feature
FileCheck
Instrumentation
Integer
JitListener
Linker
LTO [InlineCost] cleanup calculations of Cost and Threshold 2019-06-26 13:24:24 +00:00
MachineVerifier
MC [ARM] Fix handling of zero offsets in LOB instructions. 2019-06-27 12:41:07 +00:00
Object [Object/invalid.test] - Convert most of the sub tests to YAML. 2019-06-27 11:31:43 +00:00
ObjectYAML
Other Revert "r364412 [ExpandMemCmp][MergeICmps] Move passes out of CodeGen into opt pipeline." 2019-06-26 12:13:13 +00:00
SafepointIRVerifier
Support
SymbolRewriter
TableGen Teach TableGen Intrin Emitter to handle LLVMPointerType<llvm_any_ty> 2019-06-26 00:08:22 +00:00
ThinLTO/X86
tools [yaml2obj] - Allow overriding e_shentsize, e_shoff, e_shnum and e_shstrndx fields in the YAML. 2019-06-27 11:08:42 +00:00
Transforms IR: compare type attributes deeply when looking into functions. 2019-06-27 11:44:45 +00:00
Unit
Verifier [IR] Add DISuprogram and DIE for a func decl 2019-06-27 06:07:41 +00:00
YAMLParser
.clang-format
CMakeLists.txt
lit.cfg.py
lit.site.cfg.py.in
TestRunner.sh