Use clang-format 3.8 to format VIXL

Additionally, this version of clang-format orders include directives
alphabetically which showed that the "non-const-visitor.h" header was missing
two of them.

Change-Id: Ib03407dd2046a0bb7175370685e09fb3aebe583f
This commit is contained in:
Pierre Langlois
2017-06-06 17:58:58 +01:00
parent ac2854411c
commit 1bce007699
99 changed files with 6462 additions and 12123 deletions
+12
View File
@@ -40,3 +40,15 @@ PenaltyBreakString: 100
# Do not format comments that contain the `NOLINT` pragma for `cpplint.py`.
CommentPragmas: NOLINT
# Order of #include directives. clang-format will stop at the first rule that
# matches so the order in which they are declared is important.
IncludeCategories:
- Regex: '".*aarch32.*"'
Priority: 3
- Regex: '".*aarch64.*"'
Priority: 3
- Regex: '<.*>'
Priority: 1
- Regex: '".*"'
Priority: 2
+3 -3
View File
@@ -54,7 +54,7 @@ software is also required:
1. Git
2. [Google's `cpplint.py`][cpplint]
3. clang-format-3.6
3. clang-format-3.8
Refer to the 'Usage' section for details.
@@ -151,8 +151,8 @@ It is possible to tell `tools/test.py` to skip the linter stage by passing
`--nolint`. This removes the dependency on `cpplint.py` and Git. The `--nolint`
option is implied if the VIXL project is a snapshot (with no `.git` directory).
Additionally, `tools/test.py` tests code formatting using `clang-format-3.6`.
If you don't have `clang-format-3.6`, disable the test using the
Additionally, `tools/test.py` tests code formatting using `clang-format-3.8`.
If you don't have `clang-format-3.8`, disable the test using the
`--noclang-format` option.
Also note that the tests for the tracing features depend upon external `diff`
+1 -1
View File
@@ -24,8 +24,8 @@
// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <stdio.h>
#include <stdint.h>
#include <stdio.h>
#include <sys/time.h>
#include "aarch32/constants-aarch32.h"
+1 -1
View File
@@ -24,8 +24,8 @@
// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <stdio.h>
#include <stdint.h>
#include <stdio.h>
#include <sys/time.h>
#include "aarch32/constants-aarch32.h"
+1 -1
View File
@@ -24,8 +24,8 @@
// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <stdio.h>
#include <stdint.h>
#include <stdio.h>
#include <sys/time.h>
#include "aarch32/constants-aarch32.h"
+1 -1
View File
@@ -24,8 +24,8 @@
// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <stdio.h>
#include <stdint.h>
#include <stdio.h>
#include <sys/time.h>
#include "aarch32/constants-aarch32.h"
+3 -3
View File
@@ -24,14 +24,14 @@
// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <string>
#include <map>
#include <iostream>
#include <map>
#include <string>
#include "aarch32/constants-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/instructions-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#define __ masm.
+3 -2
View File
@@ -44,8 +44,8 @@ extern "C" {
#include <string>
#include "globals-vixl.h"
#include "aarch32/instructions-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/instructions-aarch32.h"
class Symbol {
Elf32_Addr addr_;
@@ -193,7 +193,8 @@ class StaticSymbolVisitor {
void usage() {
std::cout << "usage: disasm-a32 <file>\n"
"where <file> is an ELF ARM binaryfile, either an executable, "
"a shared object, or an object file." << std::endl;
"a shared object, or an object file."
<< std::endl;
}
+2 -2
View File
@@ -57,8 +57,8 @@ int main() {
uint32_t code_size = masm.GetSizeOfCodeGenerated();
ExecutableMemory memory(code, code_size);
// Run the example function.
uint32_t (*demo_function)(uint32_t) = memory.GetEntryPoint<uint32_t (
*)(uint32_t)>(demo, masm.GetInstructionSetInUse());
uint32_t (*demo_function)(uint32_t) = memory.GetEntryPoint<uint32_t (*)(
uint32_t)>(demo, masm.GetInstructionSetInUse());
uint32_t input_value = 0x89abcdef;
uint32_t output_value = (*demo_function)(input_value);
printf("native: demo(0x%08x) = 0x%08x\n", input_value, output_value);
+1 -1
View File
@@ -24,8 +24,8 @@
// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "examples.h"
#include "non-const-visitor.h"
#include "examples.h"
#define __ masm->
+3
View File
@@ -27,6 +27,9 @@
#ifndef VIXL_EXAMPLES_NON_CONST_VISITOR_H_
#define VIXL_EXAMPLES_NON_CONST_VISITOR_H_
#include "aarch64/decoder-aarch64.h"
#include "aarch64/macro-assembler-aarch64.h"
using namespace vixl::aarch64;
class SwitchAddSubRegisterSources : public DecoderVisitor {
+1 -1
View File
@@ -35,10 +35,10 @@ extern "C" {
#include <iostream>
#include "utils-vixl.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/constants-aarch32.h"
#include "aarch32/instructions-aarch32.h"
#include "aarch32/operands-aarch32.h"
#include "aarch32/assembler-aarch32.h"
namespace vixl {
namespace aarch32 {
+1 -1
View File
@@ -25,8 +25,8 @@
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
#include "utils-vixl.h"
#include "aarch32/constants-aarch32.h"
#include "utils-vixl.h"
namespace vixl {
namespace aarch32 {
+1 -1
View File
@@ -37,9 +37,9 @@ extern "C" {
#include "utils-vixl.h"
#include "aarch32/constants-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/instructions-aarch32.h"
#include "aarch32/operands-aarch32.h"
#include "aarch32/disasm-aarch32.h"
namespace vixl {
namespace aarch32 {
+1 -1
View File
@@ -34,8 +34,8 @@ extern "C" {
#include <algorithm>
#include <ostream>
#include "utils-vixl.h"
#include "code-buffer-vixl.h"
#include "utils-vixl.h"
#include "aarch32/constants-aarch32.h"
#ifdef __arm__
+3 -2
View File
@@ -36,8 +36,8 @@ extern "C" {
#include <iomanip>
#include <list>
#include "pool-manager.h"
#include "invalset-vixl.h"
#include "pool-manager.h"
#include "utils-vixl.h"
#include "constants-aarch32.h"
@@ -153,7 +153,8 @@ class Location : public LocationBase<int32_t> {
int32_t,
kInvalidLinkKey,
kReclaimFrom,
kReclaimFactor> ForwardRefListBase;
kReclaimFactor>
ForwardRefListBase;
typedef InvalSetIterator<ForwardRefListBase> ForwardRefListIteratorBase;
class ForwardRefList : public ForwardRefListBase {
+2 -2
View File
@@ -30,12 +30,12 @@
#include "code-generation-scopes-vixl.h"
#include "macro-assembler-interface.h"
#include "pool-manager.h"
#include "pool-manager-impl.h"
#include "pool-manager.h"
#include "utils-vixl.h"
#include "aarch32/instructions-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/instructions-aarch32.h"
#include "aarch32/operands-aarch32.h"
namespace vixl {
+1 -1
View File
@@ -26,8 +26,8 @@
// POSSIBILITY OF SUCH DAMAGE.
extern "C" {
#include <stdint.h>
#include <inttypes.h>
#include <stdint.h>
}
#include <cassert>
+2 -1
View File
@@ -67,7 +67,8 @@ class Label {
ptrdiff_t,
kInvalidLinkKey,
kReclaimFrom,
kReclaimFactor> LinksSetBase;
kReclaimFactor>
LinksSetBase;
typedef InvalSetIterator<LinksSetBase> LabelLinksIteratorBase;
private:
+18 -64
View File
@@ -498,72 +498,26 @@ const char* ExamineCommand::kHelp =
" hexadecimal format.";
const char* RegisterToken::kXAliases[kNumberOfRegisters][kMaxAliasNumber] =
{{"x0", NULL},
{"x1", NULL},
{"x2", NULL},
{"x3", NULL},
{"x4", NULL},
{"x5", NULL},
{"x6", NULL},
{"x7", NULL},
{"x8", NULL},
{"x9", NULL},
{"x10", NULL},
{"x11", NULL},
{"x12", NULL},
{"x13", NULL},
{"x14", NULL},
{"x15", NULL},
{"ip0", "x16", NULL},
{"ip1", "x17", NULL},
{"x18", "pr", NULL},
{"x19", NULL},
{"x20", NULL},
{"x21", NULL},
{"x22", NULL},
{"x23", NULL},
{"x24", NULL},
{"x25", NULL},
{"x26", NULL},
{"x27", NULL},
{"x28", NULL},
{"fp", "x29", NULL},
{"lr", "x30", NULL},
{"sp", NULL}};
{{"x0", NULL}, {"x1", NULL}, {"x2", NULL},
{"x3", NULL}, {"x4", NULL}, {"x5", NULL},
{"x6", NULL}, {"x7", NULL}, {"x8", NULL},
{"x9", NULL}, {"x10", NULL}, {"x11", NULL},
{"x12", NULL}, {"x13", NULL}, {"x14", NULL},
{"x15", NULL}, {"ip0", "x16", NULL}, {"ip1", "x17", NULL},
{"x18", "pr", NULL}, {"x19", NULL}, {"x20", NULL},
{"x21", NULL}, {"x22", NULL}, {"x23", NULL},
{"x24", NULL}, {"x25", NULL}, {"x26", NULL},
{"x27", NULL}, {"x28", NULL}, {"fp", "x29", NULL},
{"lr", "x30", NULL}, {"sp", NULL}};
const char* RegisterToken::kWAliases[kNumberOfRegisters][kMaxAliasNumber] =
{{"w0", NULL},
{"w1", NULL},
{"w2", NULL},
{"w3", NULL},
{"w4", NULL},
{"w5", NULL},
{"w6", NULL},
{"w7", NULL},
{"w8", NULL},
{"w9", NULL},
{"w10", NULL},
{"w11", NULL},
{"w12", NULL},
{"w13", NULL},
{"w14", NULL},
{"w15", NULL},
{"w16", NULL},
{"w17", NULL},
{"w18", NULL},
{"w19", NULL},
{"w20", NULL},
{"w21", NULL},
{"w22", NULL},
{"w23", NULL},
{"w24", NULL},
{"w25", NULL},
{"w26", NULL},
{"w27", NULL},
{"w28", NULL},
{"w29", NULL},
{"w30", NULL},
{"wsp", NULL}};
{{"w0", NULL}, {"w1", NULL}, {"w2", NULL}, {"w3", NULL}, {"w4", NULL},
{"w5", NULL}, {"w6", NULL}, {"w7", NULL}, {"w8", NULL}, {"w9", NULL},
{"w10", NULL}, {"w11", NULL}, {"w12", NULL}, {"w13", NULL}, {"w14", NULL},
{"w15", NULL}, {"w16", NULL}, {"w17", NULL}, {"w18", NULL}, {"w19", NULL},
{"w20", NULL}, {"w21", NULL}, {"w22", NULL}, {"w23", NULL}, {"w24", NULL},
{"w25", NULL}, {"w26", NULL}, {"w27", NULL}, {"w28", NULL}, {"w29", NULL},
{"w30", NULL}, {"wsp", NULL}};
Debugger::Debugger(Decoder* decoder, FILE* stream)
+136 -67
View File
@@ -2197,40 +2197,135 @@ void Disassembler::VisitNEON3Same(const Instruction *instr) {
}
nfd.SetFormatMaps(nfd.LogicalFormatMap());
} else {
static const char *mnemonics[] =
{"shadd", "uhadd", "shadd", "uhadd",
"sqadd", "uqadd", "sqadd", "uqadd",
"srhadd", "urhadd", "srhadd", "urhadd",
// Handled by logical cases above.
NULL, NULL, NULL, NULL,
"shsub", "uhsub", "shsub", "uhsub",
"sqsub", "uqsub", "sqsub", "uqsub",
"cmgt", "cmhi", "cmgt", "cmhi",
"cmge", "cmhs", "cmge", "cmhs",
"sshl", "ushl", "sshl", "ushl",
"sqshl", "uqshl", "sqshl", "uqshl",
"srshl", "urshl", "srshl", "urshl",
"sqrshl", "uqrshl", "sqrshl", "uqrshl",
"smax", "umax", "smax", "umax",
"smin", "umin", "smin", "umin",
"sabd", "uabd", "sabd", "uabd",
"saba", "uaba", "saba", "uaba",
"add", "sub", "add", "sub",
"cmtst", "cmeq", "cmtst", "cmeq",
"mla", "mls", "mla", "mls",
"mul", "pmul", "mul", "pmul",
"smaxp", "umaxp", "smaxp", "umaxp",
"sminp", "uminp", "sminp", "uminp",
"sqdmulh", "sqrdmulh", "sqdmulh", "sqrdmulh",
"addp", "unallocated", "addp", "unallocated",
"fmaxnm", "fmaxnmp", "fminnm", "fminnmp",
"fmla", "unallocated", "fmls", "unallocated",
"fadd", "faddp", "fsub", "fabd",
"fmulx", "fmul", "unallocated", "unallocated",
"fcmeq", "fcmge", "unallocated", "fcmgt",
"unallocated", "facge", "unallocated", "facgt",
"fmax", "fmaxp", "fmin", "fminp",
"frecps", "fdiv", "frsqrts", "unallocated"};
static const char *mnemonics[] = {"shadd",
"uhadd",
"shadd",
"uhadd",
"sqadd",
"uqadd",
"sqadd",
"uqadd",
"srhadd",
"urhadd",
"srhadd",
"urhadd",
// Handled by logical cases above.
NULL,
NULL,
NULL,
NULL,
"shsub",
"uhsub",
"shsub",
"uhsub",
"sqsub",
"uqsub",
"sqsub",
"uqsub",
"cmgt",
"cmhi",
"cmgt",
"cmhi",
"cmge",
"cmhs",
"cmge",
"cmhs",
"sshl",
"ushl",
"sshl",
"ushl",
"sqshl",
"uqshl",
"sqshl",
"uqshl",
"srshl",
"urshl",
"srshl",
"urshl",
"sqrshl",
"uqrshl",
"sqrshl",
"uqrshl",
"smax",
"umax",
"smax",
"umax",
"smin",
"umin",
"smin",
"umin",
"sabd",
"uabd",
"sabd",
"uabd",
"saba",
"uaba",
"saba",
"uaba",
"add",
"sub",
"add",
"sub",
"cmtst",
"cmeq",
"cmtst",
"cmeq",
"mla",
"mls",
"mla",
"mls",
"mul",
"pmul",
"mul",
"pmul",
"smaxp",
"umaxp",
"smaxp",
"umaxp",
"sminp",
"uminp",
"sminp",
"uminp",
"sqdmulh",
"sqrdmulh",
"sqdmulh",
"sqrdmulh",
"addp",
"unallocated",
"addp",
"unallocated",
"fmaxnm",
"fmaxnmp",
"fminnm",
"fminnmp",
"fmla",
"unallocated",
"fmls",
"unallocated",
"fadd",
"faddp",
"fsub",
"fabd",
"fmulx",
"fmul",
"unallocated",
"unallocated",
"fcmeq",
"fcmge",
"unallocated",
"fcmgt",
"unallocated",
"facge",
"unallocated",
"facgt",
"fmax",
"fmaxp",
"fmin",
"fminp",
"frecps",
"fdiv",
"frsqrts",
"unallocated"};
// Operation is determined by the opcode bits (15-11), the top bit of
// size (23) and the U bit (29).
@@ -3698,39 +3793,13 @@ void Disassembler::VisitNEONShiftImmediate(const Instruction *instr) {
// 00010->8B, 00011->16B, 001x0->4H, 001x1->8H,
// 01xx0->2S, 01xx1->4S, 1xxx1->2D, all others undefined.
static const NEONFormatMap map_shift_tb = {{22, 21, 20, 19, 30},
{NF_UNDEF,
NF_UNDEF,
NF_8B,
NF_16B,
NF_4H,
NF_8H,
NF_4H,
NF_8H,
NF_2S,
NF_4S,
NF_2S,
NF_4S,
NF_2S,
NF_4S,
NF_2S,
NF_4S,
NF_UNDEF,
NF_2D,
NF_UNDEF,
NF_2D,
NF_UNDEF,
NF_2D,
NF_UNDEF,
NF_2D,
NF_UNDEF,
NF_2D,
NF_UNDEF,
NF_2D,
NF_UNDEF,
NF_2D,
NF_UNDEF,
NF_2D}};
static const NEONFormatMap map_shift_tb =
{{22, 21, 20, 19, 30},
{NF_UNDEF, NF_UNDEF, NF_8B, NF_16B, NF_4H, NF_8H, NF_4H,
NF_8H, NF_2S, NF_4S, NF_2S, NF_4S, NF_2S, NF_4S,
NF_2S, NF_4S, NF_UNDEF, NF_2D, NF_UNDEF, NF_2D, NF_UNDEF,
NF_2D, NF_UNDEF, NF_2D, NF_UNDEF, NF_2D, NF_UNDEF, NF_2D,
NF_UNDEF, NF_2D, NF_UNDEF, NF_2D}};
NEONFormatDecoder nfd(instr, &map_shift_tb);
+1 -1
View File
@@ -24,8 +24,8 @@
// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "assembler-aarch64.h"
#include "instructions-aarch64.h"
#include "assembler-aarch64.h"
namespace vixl {
namespace aarch64 {
+6 -33
View File
@@ -723,39 +723,12 @@ class NEONFormatDecoder {
// xxx10->8B, xxx11->16B, xx100->4H, xx101->8H
// x1000->2S, x1001->4S, 10001->2D, all others undefined.
static const NEONFormatMap* TriangularFormatMap() {
static const NEONFormatMap map = {{19, 18, 17, 16, 30},
{NF_UNDEF,
NF_UNDEF,
NF_8B,
NF_16B,
NF_4H,
NF_8H,
NF_8B,
NF_16B,
NF_2S,
NF_4S,
NF_8B,
NF_16B,
NF_4H,
NF_8H,
NF_8B,
NF_16B,
NF_UNDEF,
NF_2D,
NF_8B,
NF_16B,
NF_4H,
NF_8H,
NF_8B,
NF_16B,
NF_2S,
NF_4S,
NF_8B,
NF_16B,
NF_4H,
NF_8H,
NF_8B,
NF_16B}};
static const NEONFormatMap map =
{{19, 18, 17, 16, 30},
{NF_UNDEF, NF_UNDEF, NF_8B, NF_16B, NF_4H, NF_8H, NF_8B, NF_16B,
NF_2S, NF_4S, NF_8B, NF_16B, NF_4H, NF_8H, NF_8B, NF_16B,
NF_UNDEF, NF_2D, NF_8B, NF_16B, NF_4H, NF_8H, NF_8B, NF_16B,
NF_2S, NF_4S, NF_8B, NF_16B, NF_4H, NF_8H, NF_8B, NF_16B}};
return &map;
}
+24 -24
View File
@@ -74,36 +74,36 @@ struct CounterDescriptor {
};
static const CounterDescriptor kCounterList[] = {{"Instruction", Cumulative},
static const CounterDescriptor kCounterList[] =
{{"Instruction", Cumulative},
{"Move Immediate", Gauge},
{"Add/Sub DP", Gauge},
{"Logical DP", Gauge},
{"Other Int DP", Gauge},
{"FP DP", Gauge},
{"Move Immediate", Gauge},
{"Add/Sub DP", Gauge},
{"Logical DP", Gauge},
{"Other Int DP", Gauge},
{"FP DP", Gauge},
{"Conditional Select", Gauge},
{"Conditional Compare", Gauge},
{"Conditional Select", Gauge},
{"Conditional Compare", Gauge},
{"Unconditional Branch",
Gauge},
{"Compare and Branch", Gauge},
{"Test and Branch", Gauge},
{"Conditional Branch", Gauge},
{"Unconditional Branch", Gauge},
{"Compare and Branch", Gauge},
{"Test and Branch", Gauge},
{"Conditional Branch", Gauge},
{"Load Integer", Gauge},
{"Load FP", Gauge},
{"Load Pair", Gauge},
{"Load Literal", Gauge},
{"Load Integer", Gauge},
{"Load FP", Gauge},
{"Load Pair", Gauge},
{"Load Literal", Gauge},
{"Store Integer", Gauge},
{"Store FP", Gauge},
{"Store Pair", Gauge},
{"Store Integer", Gauge},
{"Store FP", Gauge},
{"Store Pair", Gauge},
{"PC Addressing", Gauge},
{"Other", Gauge},
{"NEON", Gauge},
{"Crypto", Gauge}};
{"PC Addressing", Gauge},
{"Other", Gauge},
{"NEON", Gauge},
{"Crypto", Gauge}};
Instrument::Instrument(const char* datafile, uint64_t sample_period)
+2 -2
View File
@@ -65,7 +65,7 @@ LiteralPool::~LiteralPool() {
void LiteralPool::Reset() {
std::vector<RawLiteral*>::iterator it, end;
std::vector<RawLiteral *>::iterator it, end;
for (it = entries_.begin(), end = entries_.end(); it != end; ++it) {
RawLiteral* literal = *it;
if (literal->deletion_policy_ == RawLiteral::kDeletedOnPlacementByPool) {
@@ -145,7 +145,7 @@ void LiteralPool::Emit(EmitOption option) {
}
// Now populate the literal pool.
std::vector<RawLiteral*>::iterator it, end;
std::vector<RawLiteral *>::iterator it, end;
for (it = entries_.begin(), end = entries_.end(); it != end; ++it) {
VIXL_ASSERT((*it)->IsUsed());
masm_->place(*it);
+2 -1
View File
@@ -303,7 +303,8 @@ class VeneerPool : public Pool {
ptrdiff_t,
kInvalidOffset,
kReclaimFrom,
kReclaimFactor> BranchInfoTypedSetBase;
kReclaimFactor>
BranchInfoTypedSetBase;
typedef InvalSetIterator<BranchInfoTypedSetBase> BranchInfoTypedSetIterBase;
class BranchInfoTypedSet : public BranchInfoTypedSetBase {
+9 -33
View File
@@ -26,8 +26,8 @@
#ifdef VIXL_INCLUDE_SIMULATOR_AARCH64
#include <cstring>
#include <cmath>
#include <cstring>
#include <limits>
#include "simulator-aarch64.h"
@@ -4940,38 +4940,14 @@ void Simulator::VisitNEONShiftImmediate(const Instruction* instr) {
// 00010->8B, 00011->16B, 001x0->4H, 001x1->8H,
// 01xx0->2S, 01xx1->4S, 1xxx1->2D, all others undefined.
static const NEONFormatMap map = {{22, 21, 20, 19, 30},
{NF_UNDEF,
NF_UNDEF,
NF_8B,
NF_16B,
NF_4H,
NF_8H,
NF_4H,
NF_8H,
NF_2S,
NF_4S,
NF_2S,
NF_4S,
NF_2S,
NF_4S,
NF_2S,
NF_4S,
NF_UNDEF,
NF_2D,
NF_UNDEF,
NF_2D,
NF_UNDEF,
NF_2D,
NF_UNDEF,
NF_2D,
NF_UNDEF,
NF_2D,
NF_UNDEF,
NF_2D,
NF_UNDEF,
NF_2D,
NF_UNDEF,
NF_2D}};
{NF_UNDEF, NF_UNDEF, NF_8B, NF_16B,
NF_4H, NF_8H, NF_4H, NF_8H,
NF_2S, NF_4S, NF_2S, NF_4S,
NF_2S, NF_4S, NF_2S, NF_4S,
NF_UNDEF, NF_2D, NF_UNDEF, NF_2D,
NF_UNDEF, NF_2D, NF_UNDEF, NF_2D,
NF_UNDEF, NF_2D, NF_UNDEF, NF_2D,
NF_UNDEF, NF_2D, NF_UNDEF, NF_2D}};
NEONFormatDecoder nfd(instr, &map);
VectorFormat vf = nfd.GetVectorFormat();
+2 -2
View File
@@ -54,9 +54,9 @@ extern "C" {
#include "platform-vixl.h"
#ifdef VIXL_NEGATIVE_TESTING
#include <sstream>
#include <stdexcept>
#include <string>
#include <sstream>
#endif
namespace vixl {
@@ -89,7 +89,7 @@ struct Unsigned<64> {
// Detect the host's pointer size.
#if (UINTPTR_MAX == UINT32_MAX)
#define VIXL_HOST_POINTER_32
#elif(UINTPTR_MAX == UINT64_MAX)
#elif (UINTPTR_MAX == UINT64_MAX)
#define VIXL_HOST_POINTER_64
#else
#error "Unsupported host pointer size."
+1 -1
View File
@@ -497,7 +497,7 @@ PoolManager<T>::~PoolManager<T>() {
}
#endif
// Delete objects the pool manager owns.
for (typename std::vector<LocationBase<T>*>::iterator
for (typename std::vector<LocationBase<T> *>::iterator
iter = delete_on_destruction_.begin(),
end = delete_on_destruction_.end();
iter != end;
+2 -2
View File
@@ -25,15 +25,15 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <cstdio>
#include <string>
#include <iostream>
#include <string>
#include "test-runner.h"
#include "test-utils.h"
#include "aarch32/test-utils-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
namespace vixl {
namespace aarch32 {
@@ -206,15 +206,15 @@ const TestData kTests[] =
// These headers each contain an array of `TestResult` with the reference output
// values. The reference arrays are names `kReference{mnemonic}`.
#include "aarch32/traces/assembler-cond-dt-drt-drd-drn-drm-float-f32-only-vceq-a32.h"
#include "aarch32/traces/assembler-cond-dt-drt-drd-drn-drm-float-f32-only-vpadd-a32.h"
#include "aarch32/traces/assembler-cond-dt-drt-drd-drn-drm-float-f32-only-vabd-a32.h"
#include "aarch32/traces/assembler-cond-dt-drt-drd-drn-drm-float-f32-only-vceq-a32.h"
#include "aarch32/traces/assembler-cond-dt-drt-drd-drn-drm-float-f32-only-vcge-a32.h"
#include "aarch32/traces/assembler-cond-dt-drt-drd-drn-drm-float-f32-only-vcgt-a32.h"
#include "aarch32/traces/assembler-cond-dt-drt-drd-drn-drm-float-f32-only-vcle-a32.h"
#include "aarch32/traces/assembler-cond-dt-drt-drd-drn-drm-float-f32-only-vclt-a32.h"
#include "aarch32/traces/assembler-cond-dt-drt-drd-drn-drm-float-f32-only-vmax-a32.h"
#include "aarch32/traces/assembler-cond-dt-drt-drd-drn-drm-float-f32-only-vmin-a32.h"
#include "aarch32/traces/assembler-cond-dt-drt-drd-drn-drm-float-f32-only-vpadd-a32.h"
#include "aarch32/traces/assembler-cond-dt-drt-drd-drn-drm-float-f32-only-vpmax-a32.h"
#include "aarch32/traces/assembler-cond-dt-drt-drd-drn-drm-float-f32-only-vpmin-a32.h"
@@ -206,15 +206,15 @@ const TestData kTests[] =
// These headers each contain an array of `TestResult` with the reference output
// values. The reference arrays are names `kReference{mnemonic}`.
#include "aarch32/traces/assembler-cond-dt-drt-drd-drn-drm-float-f32-only-vceq-t32.h"
#include "aarch32/traces/assembler-cond-dt-drt-drd-drn-drm-float-f32-only-vpadd-t32.h"
#include "aarch32/traces/assembler-cond-dt-drt-drd-drn-drm-float-f32-only-vabd-t32.h"
#include "aarch32/traces/assembler-cond-dt-drt-drd-drn-drm-float-f32-only-vceq-t32.h"
#include "aarch32/traces/assembler-cond-dt-drt-drd-drn-drm-float-f32-only-vcge-t32.h"
#include "aarch32/traces/assembler-cond-dt-drt-drd-drn-drm-float-f32-only-vcgt-t32.h"
#include "aarch32/traces/assembler-cond-dt-drt-drd-drn-drm-float-f32-only-vcle-t32.h"
#include "aarch32/traces/assembler-cond-dt-drt-drd-drn-drm-float-f32-only-vclt-t32.h"
#include "aarch32/traces/assembler-cond-dt-drt-drd-drn-drm-float-f32-only-vmax-t32.h"
#include "aarch32/traces/assembler-cond-dt-drt-drd-drn-drm-float-f32-only-vmin-t32.h"
#include "aarch32/traces/assembler-cond-dt-drt-drd-drn-drm-float-f32-only-vpadd-t32.h"
#include "aarch32/traces/assembler-cond-dt-drt-drd-drn-drm-float-f32-only-vpmax-t32.h"
#include "aarch32/traces/assembler-cond-dt-drt-drd-drn-drm-float-f32-only-vpmin-t32.h"
@@ -3601,8 +3601,8 @@ const TestData kTests[] = {{{pl, r13, r0, plus, 0, Offset},
// These headers each contain an array of `TestResult` with the reference output
// values. The reference arrays are names `kReference{mnemonic}`.
#include "aarch32/traces/assembler-cond-rd-memop-immediate-512-ldrh-a32.h"
#include "aarch32/traces/assembler-cond-rd-memop-immediate-512-ldrsh-a32.h"
#include "aarch32/traces/assembler-cond-rd-memop-immediate-512-ldrsb-a32.h"
#include "aarch32/traces/assembler-cond-rd-memop-immediate-512-ldrsh-a32.h"
#include "aarch32/traces/assembler-cond-rd-memop-immediate-512-strh-a32.h"
@@ -1114,11 +1114,11 @@ const TestData kTests[] =
#include "aarch32/traces/assembler-cond-rd-operand-rn-movs-a32.h"
#include "aarch32/traces/assembler-cond-rd-operand-rn-mvn-a32.h"
#include "aarch32/traces/assembler-cond-rd-operand-rn-mvns-a32.h"
#include "aarch32/traces/assembler-cond-rd-operand-rn-teq-a32.h"
#include "aarch32/traces/assembler-cond-rd-operand-rn-tst-a32.h"
#include "aarch32/traces/assembler-cond-rd-operand-rn-sxtb-a32.h"
#include "aarch32/traces/assembler-cond-rd-operand-rn-sxtb16-a32.h"
#include "aarch32/traces/assembler-cond-rd-operand-rn-sxth-a32.h"
#include "aarch32/traces/assembler-cond-rd-operand-rn-teq-a32.h"
#include "aarch32/traces/assembler-cond-rd-operand-rn-tst-a32.h"
#include "aarch32/traces/assembler-cond-rd-operand-rn-uxtb-a32.h"
#include "aarch32/traces/assembler-cond-rd-operand-rn-uxtb16-a32.h"
#include "aarch32/traces/assembler-cond-rd-operand-rn-uxth-a32.h"
@@ -339,11 +339,11 @@ const TestData kTests[] =
#include "aarch32/traces/assembler-cond-rd-operand-rn-movs-t32.h"
#include "aarch32/traces/assembler-cond-rd-operand-rn-mvn-t32.h"
#include "aarch32/traces/assembler-cond-rd-operand-rn-mvns-t32.h"
#include "aarch32/traces/assembler-cond-rd-operand-rn-teq-t32.h"
#include "aarch32/traces/assembler-cond-rd-operand-rn-tst-t32.h"
#include "aarch32/traces/assembler-cond-rd-operand-rn-sxtb-t32.h"
#include "aarch32/traces/assembler-cond-rd-operand-rn-sxtb16-t32.h"
#include "aarch32/traces/assembler-cond-rd-operand-rn-sxth-t32.h"
#include "aarch32/traces/assembler-cond-rd-operand-rn-teq-t32.h"
#include "aarch32/traces/assembler-cond-rd-operand-rn-tst-t32.h"
#include "aarch32/traces/assembler-cond-rd-operand-rn-uxtb-t32.h"
#include "aarch32/traces/assembler-cond-rd-operand-rn-uxtb16-t32.h"
#include "aarch32/traces/assembler-cond-rd-operand-rn-uxth-t32.h"
@@ -635,12 +635,20 @@ const TestData kTests[] =
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-adds-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-and-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-ands-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-asr-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-asrs-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-bic-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-bics-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-eor-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-eors-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-lsl-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-lsls-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-lsr-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-lsrs-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-orr-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-orrs-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-ror-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-rors-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-rsb-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-rsbs-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-rsc-a32.h"
@@ -655,14 +663,6 @@ const TestData kTests[] =
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-uxtab-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-uxtab16-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-uxtah-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-asr-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-asrs-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-lsl-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-lsls-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-lsr-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-lsrs-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-ror-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-rors-a32.h"
// The maximum number of errors to report in detail for each test.
@@ -635,14 +635,22 @@ const TestData kTests[] =
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-adds-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-and-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-ands-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-asr-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-asrs-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-bic-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-bics-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-eor-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-eors-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-lsl-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-lsls-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-lsr-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-lsrs-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-orn-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-orns-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-orr-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-orrs-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-ror-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-rors-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-rsb-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-rsbs-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-sbc-t32.h"
@@ -655,14 +663,6 @@ const TestData kTests[] =
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-uxtab-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-uxtab16-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-uxtah-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-asr-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-asrs-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-lsl-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-lsls-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-lsr-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-lsrs-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-ror-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-operand-rm-rors-t32.h"
// The maximum number of errors to report in detail for each test.
@@ -455,13 +455,21 @@ const TestData kTests[] =
// values. The reference arrays are names `kReference{mnemonic}`.
#include "aarch32/traces/assembler-cond-rd-rn-rm-mul-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-muls-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qadd-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qadd16-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qadd8-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qasx-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qdadd-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qdsub-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qsax-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qsub-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qsub16-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qsub8-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-sadd16-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-sadd8-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-sasx-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-sdiv-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-sel-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-shadd16-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-shadd8-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-shasx-a32.h"
@@ -480,6 +488,12 @@ const TestData kTests[] =
#include "aarch32/traces/assembler-cond-rd-rn-rm-smulwt-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-smusd-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-smusdx-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-ssax-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-ssub16-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-ssub8-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-uadd16-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-uadd8-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-uasx-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-udiv-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-uhadd16-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-uhadd8-a32.h"
@@ -494,23 +508,9 @@ const TestData kTests[] =
#include "aarch32/traces/assembler-cond-rd-rn-rm-uqsub16-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-uqsub8-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-usad8-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-sadd16-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-sadd8-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-sasx-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-sel-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-ssax-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-ssub16-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-ssub8-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-uadd16-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-uadd8-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-uasx-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-usax-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-usub16-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-usub8-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qadd-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qdadd-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qdsub-a32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qsub-a32.h"
// The maximum number of errors to report in detail for each test.
@@ -453,13 +453,21 @@ const TestData kTests[] =
// These headers each contain an array of `TestResult` with the reference output
// values. The reference arrays are names `kReference{mnemonic}`.
#include "aarch32/traces/assembler-cond-rd-rn-rm-mul-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qadd-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qadd16-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qadd8-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qasx-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qdadd-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qdsub-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qsax-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qsub-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qsub16-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qsub8-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-sadd16-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-sadd8-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-sasx-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-sdiv-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-sel-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-shadd16-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-shadd8-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-shasx-t32.h"
@@ -478,6 +486,12 @@ const TestData kTests[] =
#include "aarch32/traces/assembler-cond-rd-rn-rm-smulwt-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-smusd-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-smusdx-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-ssax-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-ssub16-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-ssub8-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-uadd16-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-uadd8-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-uasx-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-udiv-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-uhadd16-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-uhadd8-t32.h"
@@ -492,23 +506,9 @@ const TestData kTests[] =
#include "aarch32/traces/assembler-cond-rd-rn-rm-uqsub16-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-uqsub8-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-usad8-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-sadd16-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-sadd8-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-sasx-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-sel-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-ssax-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-ssub16-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-ssub8-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-uadd16-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-uadd8-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-uasx-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-usax-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-usub16-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-usub8-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qadd-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qdadd-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qdsub-t32.h"
#include "aarch32/traces/assembler-cond-rd-rn-rm-qsub-t32.h"
// The maximum number of errors to report in detail for each test.
+26 -18
View File
@@ -24,15 +24,15 @@
// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <list>
#include <sstream>
#include <string>
#include <list>
#include "test-runner.h"
#include "test-utils.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#ifdef VIXL_NEGATIVE_TESTING
#include <stdexcept>
@@ -3308,25 +3308,33 @@ TEST(unbound_label) {
SETUP();
#ifdef VIXL_DEBUG
MUST_FAIL_TEST_BOTH_BLOCK({
Label label;
masm.B(&label);
}, "Location, label or literal used but not bound.\n")
MUST_FAIL_TEST_BOTH_BLOCK(
{
Label label;
masm.B(&label);
},
"Location, label or literal used but not bound.\n")
MUST_FAIL_TEST_BOTH_BLOCK({
Label label;
masm.B(eq, &label);
}, "Location, label or literal used but not bound.\n")
MUST_FAIL_TEST_BOTH_BLOCK(
{
Label label;
masm.B(eq, &label);
},
"Location, label or literal used but not bound.\n")
MUST_FAIL_TEST_T32_BLOCK({
Label label;
masm.Cbz(r0, &label);
}, "Location, label or literal used but not bound.\n")
MUST_FAIL_TEST_T32_BLOCK(
{
Label label;
masm.Cbz(r0, &label);
},
"Location, label or literal used but not bound.\n")
MUST_FAIL_TEST_T32_BLOCK({
Label label;
masm.Cbnz(r1, &label);
}, "Location, label or literal used but not bound.\n")
MUST_FAIL_TEST_T32_BLOCK(
{
Label label;
masm.Cbnz(r1, &label);
},
"Location, label or literal used but not bound.\n")
#endif
CLEANUP();
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -3336,8 +3336,8 @@ struct TestResult {
// These headers each contain an array of `TestResult` with the reference output
// values. The reference arrays are names `kReference{mnemonic}`.
#include "aarch32/traces/simulator-cond-rd-memop-immediate-512-ldrh-a32.h"
#include "aarch32/traces/simulator-cond-rd-memop-immediate-512-ldrsh-a32.h"
#include "aarch32/traces/simulator-cond-rd-memop-immediate-512-ldrsb-a32.h"
#include "aarch32/traces/simulator-cond-rd-memop-immediate-512-ldrsh-a32.h"
#include "aarch32/traces/simulator-cond-rd-memop-immediate-512-strh-a32.h"
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -177,37 +177,18 @@ static const Inputs kCondition[] = {{NFlag, 0xabababab},
{ZCVFlag, 0xabababab},
{NZCVFlag, 0xabababab}};
static const Inputs kModifiedImmediate[] = {{NoFlag, 0x00000000},
{NoFlag, 0x00000001},
{NoFlag, 0x00000002},
{NoFlag, 0x00000020},
{NoFlag, 0x0000007d},
{NoFlag, 0x0000007e},
{NoFlag, 0x0000007f},
{NoFlag, 0x00007ffd},
{NoFlag, 0x00007ffe},
{NoFlag, 0x00007fff},
{NoFlag, 0x33333333},
{NoFlag, 0x55555555},
{NoFlag, 0x7ffffffd},
{NoFlag, 0x7ffffffe},
{NoFlag, 0x7fffffff},
{NoFlag, 0x80000000},
{NoFlag, 0x80000001},
{NoFlag, 0xaaaaaaaa},
{NoFlag, 0xcccccccc},
{NoFlag, 0xffff8000},
{NoFlag, 0xffff8001},
{NoFlag, 0xffff8002},
{NoFlag, 0xffff8003},
{NoFlag, 0xffffff80},
{NoFlag, 0xffffff81},
{NoFlag, 0xffffff82},
{NoFlag, 0xffffff83},
{NoFlag, 0xffffffe0},
{NoFlag, 0xfffffffd},
{NoFlag, 0xfffffffe},
{NoFlag, 0xffffffff}};
static const Inputs kModifiedImmediate[] =
{{NoFlag, 0x00000000}, {NoFlag, 0x00000001}, {NoFlag, 0x00000002},
{NoFlag, 0x00000020}, {NoFlag, 0x0000007d}, {NoFlag, 0x0000007e},
{NoFlag, 0x0000007f}, {NoFlag, 0x00007ffd}, {NoFlag, 0x00007ffe},
{NoFlag, 0x00007fff}, {NoFlag, 0x33333333}, {NoFlag, 0x55555555},
{NoFlag, 0x7ffffffd}, {NoFlag, 0x7ffffffe}, {NoFlag, 0x7fffffff},
{NoFlag, 0x80000000}, {NoFlag, 0x80000001}, {NoFlag, 0xaaaaaaaa},
{NoFlag, 0xcccccccc}, {NoFlag, 0xffff8000}, {NoFlag, 0xffff8001},
{NoFlag, 0xffff8002}, {NoFlag, 0xffff8003}, {NoFlag, 0xffffff80},
{NoFlag, 0xffffff81}, {NoFlag, 0xffffff82}, {NoFlag, 0xffffff83},
{NoFlag, 0xffffffe0}, {NoFlag, 0xfffffffd}, {NoFlag, 0xfffffffe},
{NoFlag, 0xffffffff}};
// A loop will be generated for each element of this array.
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -177,37 +177,18 @@ static const Inputs kCondition[] = {{NFlag, 0xabababab},
{ZCVFlag, 0xabababab},
{NZCVFlag, 0xabababab}};
static const Inputs kModifiedImmediate[] = {{NoFlag, 0x00000000},
{NoFlag, 0x00000001},
{NoFlag, 0x00000002},
{NoFlag, 0x00000020},
{NoFlag, 0x0000007d},
{NoFlag, 0x0000007e},
{NoFlag, 0x0000007f},
{NoFlag, 0x00007ffd},
{NoFlag, 0x00007ffe},
{NoFlag, 0x00007fff},
{NoFlag, 0x33333333},
{NoFlag, 0x55555555},
{NoFlag, 0x7ffffffd},
{NoFlag, 0x7ffffffe},
{NoFlag, 0x7fffffff},
{NoFlag, 0x80000000},
{NoFlag, 0x80000001},
{NoFlag, 0xaaaaaaaa},
{NoFlag, 0xcccccccc},
{NoFlag, 0xffff8000},
{NoFlag, 0xffff8001},
{NoFlag, 0xffff8002},
{NoFlag, 0xffff8003},
{NoFlag, 0xffffff80},
{NoFlag, 0xffffff81},
{NoFlag, 0xffffff82},
{NoFlag, 0xffffff83},
{NoFlag, 0xffffffe0},
{NoFlag, 0xfffffffd},
{NoFlag, 0xfffffffe},
{NoFlag, 0xffffffff}};
static const Inputs kModifiedImmediate[] =
{{NoFlag, 0x00000000}, {NoFlag, 0x00000001}, {NoFlag, 0x00000002},
{NoFlag, 0x00000020}, {NoFlag, 0x0000007d}, {NoFlag, 0x0000007e},
{NoFlag, 0x0000007f}, {NoFlag, 0x00007ffd}, {NoFlag, 0x00007ffe},
{NoFlag, 0x00007fff}, {NoFlag, 0x33333333}, {NoFlag, 0x55555555},
{NoFlag, 0x7ffffffd}, {NoFlag, 0x7ffffffe}, {NoFlag, 0x7fffffff},
{NoFlag, 0x80000000}, {NoFlag, 0x80000001}, {NoFlag, 0xaaaaaaaa},
{NoFlag, 0xcccccccc}, {NoFlag, 0xffff8000}, {NoFlag, 0xffff8001},
{NoFlag, 0xffff8002}, {NoFlag, 0xffff8003}, {NoFlag, 0xffffff80},
{NoFlag, 0xffffff81}, {NoFlag, 0xffffff82}, {NoFlag, 0xffffff83},
{NoFlag, 0xffffffe0}, {NoFlag, 0xfffffffd}, {NoFlag, 0xfffffffe},
{NoFlag, 0xffffffff}};
// A loop will be generated for each element of this array.
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -171,37 +171,18 @@ static const Inputs kCondition[] = {{NFlag, 0xabababab},
{ZCVFlag, 0xabababab},
{NZCVFlag, 0xabababab}};
static const Inputs kModifiedImmediate[] = {{NoFlag, 0x00000000},
{NoFlag, 0x00000001},
{NoFlag, 0x00000002},
{NoFlag, 0x00000020},
{NoFlag, 0x0000007d},
{NoFlag, 0x0000007e},
{NoFlag, 0x0000007f},
{NoFlag, 0x00007ffd},
{NoFlag, 0x00007ffe},
{NoFlag, 0x00007fff},
{NoFlag, 0x33333333},
{NoFlag, 0x55555555},
{NoFlag, 0x7ffffffd},
{NoFlag, 0x7ffffffe},
{NoFlag, 0x7fffffff},
{NoFlag, 0x80000000},
{NoFlag, 0x80000001},
{NoFlag, 0xaaaaaaaa},
{NoFlag, 0xcccccccc},
{NoFlag, 0xffff8000},
{NoFlag, 0xffff8001},
{NoFlag, 0xffff8002},
{NoFlag, 0xffff8003},
{NoFlag, 0xffffff80},
{NoFlag, 0xffffff81},
{NoFlag, 0xffffff82},
{NoFlag, 0xffffff83},
{NoFlag, 0xffffffe0},
{NoFlag, 0xfffffffd},
{NoFlag, 0xfffffffe},
{NoFlag, 0xffffffff}};
static const Inputs kModifiedImmediate[] =
{{NoFlag, 0x00000000}, {NoFlag, 0x00000001}, {NoFlag, 0x00000002},
{NoFlag, 0x00000020}, {NoFlag, 0x0000007d}, {NoFlag, 0x0000007e},
{NoFlag, 0x0000007f}, {NoFlag, 0x00007ffd}, {NoFlag, 0x00007ffe},
{NoFlag, 0x00007fff}, {NoFlag, 0x33333333}, {NoFlag, 0x55555555},
{NoFlag, 0x7ffffffd}, {NoFlag, 0x7ffffffe}, {NoFlag, 0x7fffffff},
{NoFlag, 0x80000000}, {NoFlag, 0x80000001}, {NoFlag, 0xaaaaaaaa},
{NoFlag, 0xcccccccc}, {NoFlag, 0xffff8000}, {NoFlag, 0xffff8001},
{NoFlag, 0xffff8002}, {NoFlag, 0xffff8003}, {NoFlag, 0xffffff80},
{NoFlag, 0xffffff81}, {NoFlag, 0xffffff82}, {NoFlag, 0xffffff83},
{NoFlag, 0xffffffe0}, {NoFlag, 0xfffffffd}, {NoFlag, 0xfffffffe},
{NoFlag, 0xffffffff}};
// A loop will be generated for each element of this array.
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -184,238 +184,125 @@ static const Inputs kCondition[] = {{NFlag, 0xabababab, 0xabababab},
{ZCVFlag, 0xabababab, 0xabababab},
{NZCVFlag, 0xabababab, 0xabababab}};
static const Inputs kRdIsRn[] = {{NoFlag, 0x00000000, 0x00000000},
{NoFlag, 0x00000001, 0x00000001},
{NoFlag, 0x00000002, 0x00000002},
{NoFlag, 0x00000020, 0x00000020},
{NoFlag, 0x0000007d, 0x0000007d},
{NoFlag, 0x0000007e, 0x0000007e},
{NoFlag, 0x0000007f, 0x0000007f},
{NoFlag, 0x00007ffd, 0x00007ffd},
{NoFlag, 0x00007ffe, 0x00007ffe},
{NoFlag, 0x00007fff, 0x00007fff},
{NoFlag, 0x33333333, 0x33333333},
{NoFlag, 0x55555555, 0x55555555},
{NoFlag, 0x7ffffffd, 0x7ffffffd},
{NoFlag, 0x7ffffffe, 0x7ffffffe},
{NoFlag, 0x7fffffff, 0x7fffffff},
{NoFlag, 0x80000000, 0x80000000},
{NoFlag, 0x80000001, 0x80000001},
{NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0xcccccccc, 0xcccccccc},
{NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0xffff8001, 0xffff8001},
{NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0xffff8003, 0xffff8003},
{NoFlag, 0xffffff80, 0xffffff80},
{NoFlag, 0xffffff81, 0xffffff81},
{NoFlag, 0xffffff82, 0xffffff82},
{NoFlag, 0xffffff83, 0xffffff83},
{NoFlag, 0xffffffe0, 0xffffffe0},
{NoFlag, 0xfffffffd, 0xfffffffd},
{NoFlag, 0xfffffffe, 0xfffffffe},
{NoFlag, 0xffffffff, 0xffffffff}};
static const Inputs kRdIsRn[] =
{{NoFlag, 0x00000000, 0x00000000}, {NoFlag, 0x00000001, 0x00000001},
{NoFlag, 0x00000002, 0x00000002}, {NoFlag, 0x00000020, 0x00000020},
{NoFlag, 0x0000007d, 0x0000007d}, {NoFlag, 0x0000007e, 0x0000007e},
{NoFlag, 0x0000007f, 0x0000007f}, {NoFlag, 0x00007ffd, 0x00007ffd},
{NoFlag, 0x00007ffe, 0x00007ffe}, {NoFlag, 0x00007fff, 0x00007fff},
{NoFlag, 0x33333333, 0x33333333}, {NoFlag, 0x55555555, 0x55555555},
{NoFlag, 0x7ffffffd, 0x7ffffffd}, {NoFlag, 0x7ffffffe, 0x7ffffffe},
{NoFlag, 0x7fffffff, 0x7fffffff}, {NoFlag, 0x80000000, 0x80000000},
{NoFlag, 0x80000001, 0x80000001}, {NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0xcccccccc, 0xcccccccc}, {NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0xffff8001, 0xffff8001}, {NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0xffff8003, 0xffff8003}, {NoFlag, 0xffffff80, 0xffffff80},
{NoFlag, 0xffffff81, 0xffffff81}, {NoFlag, 0xffffff82, 0xffffff82},
{NoFlag, 0xffffff83, 0xffffff83}, {NoFlag, 0xffffffe0, 0xffffffe0},
{NoFlag, 0xfffffffd, 0xfffffffd}, {NoFlag, 0xfffffffe, 0xfffffffe},
{NoFlag, 0xffffffff, 0xffffffff}};
static const Inputs kRdIsNotRn[] = {{NoFlag, 0x00000002, 0xcccccccc},
{NoFlag, 0x7ffffffd, 0x00007ffe},
{NoFlag, 0xffffff80, 0x00000020},
{NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0x33333333, 0xffffff82},
{NoFlag, 0xffff8001, 0x7ffffffe},
{NoFlag, 0xfffffffd, 0x00007ffe},
{NoFlag, 0xffffff80, 0x80000000},
{NoFlag, 0x00000001, 0x33333333},
{NoFlag, 0xcccccccc, 0x7ffffffe},
{NoFlag, 0x00000000, 0xcccccccc},
{NoFlag, 0x00000000, 0x55555555},
{NoFlag, 0xffffffff, 0xffffffff},
{NoFlag, 0x0000007e, 0xffff8002},
{NoFlag, 0x80000000, 0x7ffffffd},
{NoFlag, 0xffffff81, 0x0000007e},
{NoFlag, 0x0000007f, 0xffff8001},
{NoFlag, 0xffffffe0, 0x00007ffd},
{NoFlag, 0xffff8003, 0x00000002},
{NoFlag, 0xffffff83, 0x55555555},
{NoFlag, 0xffffff83, 0xffffff80},
{NoFlag, 0xffffff81, 0xffff8000},
{NoFlag, 0x00000020, 0x7ffffffe},
{NoFlag, 0xffffffe0, 0x00000000},
{NoFlag, 0x7fffffff, 0x0000007e},
{NoFlag, 0x80000001, 0xffffffff},
{NoFlag, 0x00000001, 0x80000001},
{NoFlag, 0x00000002, 0x0000007f},
{NoFlag, 0x7fffffff, 0xcccccccc},
{NoFlag, 0x80000001, 0x00007ffe},
{NoFlag, 0xffff8002, 0x0000007e},
{NoFlag, 0x00007ffe, 0xcccccccc},
{NoFlag, 0x80000000, 0xffff8002},
{NoFlag, 0xffffff83, 0x7ffffffe},
{NoFlag, 0xffff8001, 0x00000001},
{NoFlag, 0xffffff81, 0x00000020},
{NoFlag, 0xfffffffe, 0xffff8001},
{NoFlag, 0xffffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x55555555},
{NoFlag, 0x00000020, 0xffffff83},
{NoFlag, 0xffffff83, 0xffff8001},
{NoFlag, 0xffffff83, 0xffff8000},
{NoFlag, 0x00007fff, 0x00000002},
{NoFlag, 0x55555555, 0xffff8000},
{NoFlag, 0x80000001, 0xffffff81},
{NoFlag, 0x00000002, 0x00000000},
{NoFlag, 0x33333333, 0xffffff81},
{NoFlag, 0xffff8001, 0xffffff82},
{NoFlag, 0xcccccccc, 0xffff8003},
{NoFlag, 0xffff8003, 0x7ffffffd},
{NoFlag, 0x0000007d, 0x00007ffe},
{NoFlag, 0xffffff80, 0x0000007d},
{NoFlag, 0xaaaaaaaa, 0x00007ffd},
{NoFlag, 0x80000000, 0xffffff82},
{NoFlag, 0x00000002, 0x7ffffffe},
{NoFlag, 0x00000002, 0xffffff83},
{NoFlag, 0x55555555, 0x00000002},
{NoFlag, 0xffffffff, 0xffffff82},
{NoFlag, 0xaaaaaaaa, 0x00000020},
{NoFlag, 0x00000001, 0xffffff82},
{NoFlag, 0x0000007f, 0xffffff82},
{NoFlag, 0x7ffffffd, 0xaaaaaaaa},
{NoFlag, 0x00007ffe, 0x00000001},
{NoFlag, 0xfffffffd, 0xffffffe0},
{NoFlag, 0xffffff81, 0xffffff83},
{NoFlag, 0x0000007d, 0x00000000},
{NoFlag, 0x0000007d, 0xffff8000},
{NoFlag, 0xffffff81, 0x7fffffff},
{NoFlag, 0xffffffff, 0x80000000},
{NoFlag, 0x00000000, 0x00000001},
{NoFlag, 0x55555555, 0xffffff82},
{NoFlag, 0x00007ffe, 0x00007ffe},
{NoFlag, 0x80000001, 0xfffffffd},
{NoFlag, 0x00007fff, 0x33333333},
{NoFlag, 0x00007fff, 0x80000000},
{NoFlag, 0xcccccccc, 0x00007fff},
{NoFlag, 0xfffffffe, 0xffffffe0},
{NoFlag, 0x7ffffffe, 0x0000007f},
{NoFlag, 0x00007ffd, 0xffff8001},
{NoFlag, 0x00000002, 0x00000001},
{NoFlag, 0x80000000, 0xffffffff},
{NoFlag, 0xffffff83, 0xcccccccc},
{NoFlag, 0xffff8002, 0x7ffffffe},
{NoFlag, 0xaaaaaaaa, 0x00000000},
{NoFlag, 0xffffff80, 0xcccccccc},
{NoFlag, 0x33333333, 0xffffff83},
{NoFlag, 0x0000007e, 0xffffffe0},
{NoFlag, 0x0000007e, 0x00007fff},
{NoFlag, 0x0000007f, 0x00000002},
{NoFlag, 0x7ffffffe, 0xcccccccc},
{NoFlag, 0x0000007d, 0xffffff80},
{NoFlag, 0x00007fff, 0x00000020},
{NoFlag, 0x7ffffffe, 0xfffffffe},
{NoFlag, 0xfffffffe, 0xffffff81},
{NoFlag, 0xffffffff, 0x0000007f},
{NoFlag, 0xffff8002, 0x7ffffffd},
{NoFlag, 0xffff8001, 0xfffffffe},
{NoFlag, 0x33333333, 0xffff8002},
{NoFlag, 0x00000000, 0xffffffff},
{NoFlag, 0x33333333, 0xffffff80},
{NoFlag, 0x0000007f, 0x00007fff},
{NoFlag, 0xffffffff, 0xffff8001},
{NoFlag, 0x7fffffff, 0xffff8002},
{NoFlag, 0x7ffffffd, 0xffffff83},
{NoFlag, 0x7fffffff, 0x0000007f},
{NoFlag, 0xffffff83, 0xfffffffe},
{NoFlag, 0x7ffffffe, 0xffff8003},
{NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0x80000001, 0x0000007f},
{NoFlag, 0x00000020, 0x00000002},
{NoFlag, 0xffffff82, 0xffff8001},
{NoFlag, 0xffffffff, 0x00000001},
{NoFlag, 0xffffff80, 0xffff8002},
{NoFlag, 0xffff8003, 0x7fffffff},
{NoFlag, 0xffffffff, 0xffff8000},
{NoFlag, 0xffff8002, 0x00007ffd},
{NoFlag, 0x00000020, 0xffffff81},
{NoFlag, 0x00000001, 0x55555555},
{NoFlag, 0x7ffffffe, 0x00000020},
{NoFlag, 0x80000000, 0x00000001},
{NoFlag, 0x00007ffd, 0xffff8002},
{NoFlag, 0x7fffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x00007ffd},
{NoFlag, 0x00000000, 0xfffffffd},
{NoFlag, 0xffff8003, 0xffffff80},
{NoFlag, 0x80000001, 0xffffff80},
{NoFlag, 0xffffffff, 0xffff8002},
{NoFlag, 0x00007ffe, 0xffff8002},
{NoFlag, 0xffffff80, 0x00007ffe},
{NoFlag, 0x80000001, 0xffff8001},
{NoFlag, 0x0000007f, 0xffffff80},
{NoFlag, 0xffffff81, 0x80000000},
{NoFlag, 0x00007fff, 0x00007ffe},
{NoFlag, 0x33333333, 0xffff8000},
{NoFlag, 0x33333333, 0x00007fff},
{NoFlag, 0x00000000, 0x0000007d},
{NoFlag, 0x80000001, 0x00000000},
{NoFlag, 0xffffffff, 0x55555555},
{NoFlag, 0x80000001, 0x80000000},
{NoFlag, 0xffffffff, 0xffffff80},
{NoFlag, 0xffffff81, 0xffff8003},
{NoFlag, 0x55555555, 0x80000001},
{NoFlag, 0x7fffffff, 0xffff8001},
{NoFlag, 0xffffff83, 0x00000002},
{NoFlag, 0x0000007e, 0xffffff81},
{NoFlag, 0x80000000, 0xffff8001},
{NoFlag, 0xffffff80, 0xfffffffe},
{NoFlag, 0x0000007e, 0xfffffffd},
{NoFlag, 0xffffffe0, 0xffffffff},
{NoFlag, 0x55555555, 0x80000000},
{NoFlag, 0x0000007d, 0x80000001},
{NoFlag, 0xffffffe0, 0x7ffffffd},
{NoFlag, 0x00000000, 0x00000000},
{NoFlag, 0x55555555, 0x00000001},
{NoFlag, 0x00007ffd, 0x7fffffff},
{NoFlag, 0x55555555, 0xffffffff},
{NoFlag, 0xffff8003, 0x00007fff},
{NoFlag, 0xffffff82, 0x00007fff},
{NoFlag, 0x33333333, 0x55555555},
{NoFlag, 0x00000020, 0x33333333},
{NoFlag, 0x7ffffffe, 0xfffffffd},
{NoFlag, 0x7ffffffe, 0x00000001},
{NoFlag, 0xffffff83, 0xffffffe0},
{NoFlag, 0xfffffffe, 0xaaaaaaaa},
{NoFlag, 0xffff8002, 0x33333333},
{NoFlag, 0xffff8002, 0xffff8003},
{NoFlag, 0x33333333, 0x7fffffff},
{NoFlag, 0xfffffffd, 0xffffff83},
{NoFlag, 0x00000000, 0xffff8000},
{NoFlag, 0xffffff82, 0x55555555},
{NoFlag, 0xffffff82, 0xffffff81},
{NoFlag, 0xcccccccc, 0xfffffffe},
{NoFlag, 0xfffffffd, 0x7fffffff},
{NoFlag, 0x00007fff, 0x7fffffff},
{NoFlag, 0xffffff83, 0xffff8003},
{NoFlag, 0xfffffffe, 0xffffffff},
{NoFlag, 0x7ffffffd, 0x00007ffd},
{NoFlag, 0x7ffffffd, 0x00007fff},
{NoFlag, 0x00007ffd, 0xffffffff},
{NoFlag, 0x00000001, 0xffff8003},
{NoFlag, 0xffffff80, 0xfffffffd},
{NoFlag, 0x33333333, 0x80000000},
{NoFlag, 0xffff8001, 0x00000020},
{NoFlag, 0xcccccccc, 0x00000002},
{NoFlag, 0x00000000, 0x00000002},
{NoFlag, 0x0000007d, 0x00007fff},
{NoFlag, 0xcccccccc, 0x00000001},
{NoFlag, 0xffffff83, 0x00007fff},
{NoFlag, 0x80000001, 0x00000020},
{NoFlag, 0xffff8003, 0xffffffe0},
{NoFlag, 0x00007ffd, 0xaaaaaaaa},
{NoFlag, 0x33333333, 0xffff8001},
{NoFlag, 0xffffff83, 0x80000001},
{NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0x00007ffe, 0xffff8001},
{NoFlag, 0x7ffffffd, 0x00000000},
{NoFlag, 0x00007ffe, 0x33333333},
{NoFlag, 0xffff8001, 0xffffff80},
{NoFlag, 0xfffffffe, 0x55555555},
{NoFlag, 0xffffff82, 0xffffffff}};
static const Inputs kRdIsNotRn[] =
{{NoFlag, 0x00000002, 0xcccccccc}, {NoFlag, 0x7ffffffd, 0x00007ffe},
{NoFlag, 0xffffff80, 0x00000020}, {NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0x33333333, 0xffffff82}, {NoFlag, 0xffff8001, 0x7ffffffe},
{NoFlag, 0xfffffffd, 0x00007ffe}, {NoFlag, 0xffffff80, 0x80000000},
{NoFlag, 0x00000001, 0x33333333}, {NoFlag, 0xcccccccc, 0x7ffffffe},
{NoFlag, 0x00000000, 0xcccccccc}, {NoFlag, 0x00000000, 0x55555555},
{NoFlag, 0xffffffff, 0xffffffff}, {NoFlag, 0x0000007e, 0xffff8002},
{NoFlag, 0x80000000, 0x7ffffffd}, {NoFlag, 0xffffff81, 0x0000007e},
{NoFlag, 0x0000007f, 0xffff8001}, {NoFlag, 0xffffffe0, 0x00007ffd},
{NoFlag, 0xffff8003, 0x00000002}, {NoFlag, 0xffffff83, 0x55555555},
{NoFlag, 0xffffff83, 0xffffff80}, {NoFlag, 0xffffff81, 0xffff8000},
{NoFlag, 0x00000020, 0x7ffffffe}, {NoFlag, 0xffffffe0, 0x00000000},
{NoFlag, 0x7fffffff, 0x0000007e}, {NoFlag, 0x80000001, 0xffffffff},
{NoFlag, 0x00000001, 0x80000001}, {NoFlag, 0x00000002, 0x0000007f},
{NoFlag, 0x7fffffff, 0xcccccccc}, {NoFlag, 0x80000001, 0x00007ffe},
{NoFlag, 0xffff8002, 0x0000007e}, {NoFlag, 0x00007ffe, 0xcccccccc},
{NoFlag, 0x80000000, 0xffff8002}, {NoFlag, 0xffffff83, 0x7ffffffe},
{NoFlag, 0xffff8001, 0x00000001}, {NoFlag, 0xffffff81, 0x00000020},
{NoFlag, 0xfffffffe, 0xffff8001}, {NoFlag, 0xffffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x55555555}, {NoFlag, 0x00000020, 0xffffff83},
{NoFlag, 0xffffff83, 0xffff8001}, {NoFlag, 0xffffff83, 0xffff8000},
{NoFlag, 0x00007fff, 0x00000002}, {NoFlag, 0x55555555, 0xffff8000},
{NoFlag, 0x80000001, 0xffffff81}, {NoFlag, 0x00000002, 0x00000000},
{NoFlag, 0x33333333, 0xffffff81}, {NoFlag, 0xffff8001, 0xffffff82},
{NoFlag, 0xcccccccc, 0xffff8003}, {NoFlag, 0xffff8003, 0x7ffffffd},
{NoFlag, 0x0000007d, 0x00007ffe}, {NoFlag, 0xffffff80, 0x0000007d},
{NoFlag, 0xaaaaaaaa, 0x00007ffd}, {NoFlag, 0x80000000, 0xffffff82},
{NoFlag, 0x00000002, 0x7ffffffe}, {NoFlag, 0x00000002, 0xffffff83},
{NoFlag, 0x55555555, 0x00000002}, {NoFlag, 0xffffffff, 0xffffff82},
{NoFlag, 0xaaaaaaaa, 0x00000020}, {NoFlag, 0x00000001, 0xffffff82},
{NoFlag, 0x0000007f, 0xffffff82}, {NoFlag, 0x7ffffffd, 0xaaaaaaaa},
{NoFlag, 0x00007ffe, 0x00000001}, {NoFlag, 0xfffffffd, 0xffffffe0},
{NoFlag, 0xffffff81, 0xffffff83}, {NoFlag, 0x0000007d, 0x00000000},
{NoFlag, 0x0000007d, 0xffff8000}, {NoFlag, 0xffffff81, 0x7fffffff},
{NoFlag, 0xffffffff, 0x80000000}, {NoFlag, 0x00000000, 0x00000001},
{NoFlag, 0x55555555, 0xffffff82}, {NoFlag, 0x00007ffe, 0x00007ffe},
{NoFlag, 0x80000001, 0xfffffffd}, {NoFlag, 0x00007fff, 0x33333333},
{NoFlag, 0x00007fff, 0x80000000}, {NoFlag, 0xcccccccc, 0x00007fff},
{NoFlag, 0xfffffffe, 0xffffffe0}, {NoFlag, 0x7ffffffe, 0x0000007f},
{NoFlag, 0x00007ffd, 0xffff8001}, {NoFlag, 0x00000002, 0x00000001},
{NoFlag, 0x80000000, 0xffffffff}, {NoFlag, 0xffffff83, 0xcccccccc},
{NoFlag, 0xffff8002, 0x7ffffffe}, {NoFlag, 0xaaaaaaaa, 0x00000000},
{NoFlag, 0xffffff80, 0xcccccccc}, {NoFlag, 0x33333333, 0xffffff83},
{NoFlag, 0x0000007e, 0xffffffe0}, {NoFlag, 0x0000007e, 0x00007fff},
{NoFlag, 0x0000007f, 0x00000002}, {NoFlag, 0x7ffffffe, 0xcccccccc},
{NoFlag, 0x0000007d, 0xffffff80}, {NoFlag, 0x00007fff, 0x00000020},
{NoFlag, 0x7ffffffe, 0xfffffffe}, {NoFlag, 0xfffffffe, 0xffffff81},
{NoFlag, 0xffffffff, 0x0000007f}, {NoFlag, 0xffff8002, 0x7ffffffd},
{NoFlag, 0xffff8001, 0xfffffffe}, {NoFlag, 0x33333333, 0xffff8002},
{NoFlag, 0x00000000, 0xffffffff}, {NoFlag, 0x33333333, 0xffffff80},
{NoFlag, 0x0000007f, 0x00007fff}, {NoFlag, 0xffffffff, 0xffff8001},
{NoFlag, 0x7fffffff, 0xffff8002}, {NoFlag, 0x7ffffffd, 0xffffff83},
{NoFlag, 0x7fffffff, 0x0000007f}, {NoFlag, 0xffffff83, 0xfffffffe},
{NoFlag, 0x7ffffffe, 0xffff8003}, {NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0x80000001, 0x0000007f}, {NoFlag, 0x00000020, 0x00000002},
{NoFlag, 0xffffff82, 0xffff8001}, {NoFlag, 0xffffffff, 0x00000001},
{NoFlag, 0xffffff80, 0xffff8002}, {NoFlag, 0xffff8003, 0x7fffffff},
{NoFlag, 0xffffffff, 0xffff8000}, {NoFlag, 0xffff8002, 0x00007ffd},
{NoFlag, 0x00000020, 0xffffff81}, {NoFlag, 0x00000001, 0x55555555},
{NoFlag, 0x7ffffffe, 0x00000020}, {NoFlag, 0x80000000, 0x00000001},
{NoFlag, 0x00007ffd, 0xffff8002}, {NoFlag, 0x7fffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x00007ffd}, {NoFlag, 0x00000000, 0xfffffffd},
{NoFlag, 0xffff8003, 0xffffff80}, {NoFlag, 0x80000001, 0xffffff80},
{NoFlag, 0xffffffff, 0xffff8002}, {NoFlag, 0x00007ffe, 0xffff8002},
{NoFlag, 0xffffff80, 0x00007ffe}, {NoFlag, 0x80000001, 0xffff8001},
{NoFlag, 0x0000007f, 0xffffff80}, {NoFlag, 0xffffff81, 0x80000000},
{NoFlag, 0x00007fff, 0x00007ffe}, {NoFlag, 0x33333333, 0xffff8000},
{NoFlag, 0x33333333, 0x00007fff}, {NoFlag, 0x00000000, 0x0000007d},
{NoFlag, 0x80000001, 0x00000000}, {NoFlag, 0xffffffff, 0x55555555},
{NoFlag, 0x80000001, 0x80000000}, {NoFlag, 0xffffffff, 0xffffff80},
{NoFlag, 0xffffff81, 0xffff8003}, {NoFlag, 0x55555555, 0x80000001},
{NoFlag, 0x7fffffff, 0xffff8001}, {NoFlag, 0xffffff83, 0x00000002},
{NoFlag, 0x0000007e, 0xffffff81}, {NoFlag, 0x80000000, 0xffff8001},
{NoFlag, 0xffffff80, 0xfffffffe}, {NoFlag, 0x0000007e, 0xfffffffd},
{NoFlag, 0xffffffe0, 0xffffffff}, {NoFlag, 0x55555555, 0x80000000},
{NoFlag, 0x0000007d, 0x80000001}, {NoFlag, 0xffffffe0, 0x7ffffffd},
{NoFlag, 0x00000000, 0x00000000}, {NoFlag, 0x55555555, 0x00000001},
{NoFlag, 0x00007ffd, 0x7fffffff}, {NoFlag, 0x55555555, 0xffffffff},
{NoFlag, 0xffff8003, 0x00007fff}, {NoFlag, 0xffffff82, 0x00007fff},
{NoFlag, 0x33333333, 0x55555555}, {NoFlag, 0x00000020, 0x33333333},
{NoFlag, 0x7ffffffe, 0xfffffffd}, {NoFlag, 0x7ffffffe, 0x00000001},
{NoFlag, 0xffffff83, 0xffffffe0}, {NoFlag, 0xfffffffe, 0xaaaaaaaa},
{NoFlag, 0xffff8002, 0x33333333}, {NoFlag, 0xffff8002, 0xffff8003},
{NoFlag, 0x33333333, 0x7fffffff}, {NoFlag, 0xfffffffd, 0xffffff83},
{NoFlag, 0x00000000, 0xffff8000}, {NoFlag, 0xffffff82, 0x55555555},
{NoFlag, 0xffffff82, 0xffffff81}, {NoFlag, 0xcccccccc, 0xfffffffe},
{NoFlag, 0xfffffffd, 0x7fffffff}, {NoFlag, 0x00007fff, 0x7fffffff},
{NoFlag, 0xffffff83, 0xffff8003}, {NoFlag, 0xfffffffe, 0xffffffff},
{NoFlag, 0x7ffffffd, 0x00007ffd}, {NoFlag, 0x7ffffffd, 0x00007fff},
{NoFlag, 0x00007ffd, 0xffffffff}, {NoFlag, 0x00000001, 0xffff8003},
{NoFlag, 0xffffff80, 0xfffffffd}, {NoFlag, 0x33333333, 0x80000000},
{NoFlag, 0xffff8001, 0x00000020}, {NoFlag, 0xcccccccc, 0x00000002},
{NoFlag, 0x00000000, 0x00000002}, {NoFlag, 0x0000007d, 0x00007fff},
{NoFlag, 0xcccccccc, 0x00000001}, {NoFlag, 0xffffff83, 0x00007fff},
{NoFlag, 0x80000001, 0x00000020}, {NoFlag, 0xffff8003, 0xffffffe0},
{NoFlag, 0x00007ffd, 0xaaaaaaaa}, {NoFlag, 0x33333333, 0xffff8001},
{NoFlag, 0xffffff83, 0x80000001}, {NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0x00007ffe, 0xffff8001}, {NoFlag, 0x7ffffffd, 0x00000000},
{NoFlag, 0x00007ffe, 0x33333333}, {NoFlag, 0xffff8001, 0xffffff80},
{NoFlag, 0xfffffffe, 0x55555555}, {NoFlag, 0xffffff82, 0xffffffff}};
// A loop will be generated for each element of this array.
@@ -591,11 +478,11 @@ struct TestResult {
#include "aarch32/traces/simulator-cond-rd-operand-rn-movs-a32.h"
#include "aarch32/traces/simulator-cond-rd-operand-rn-mvn-a32.h"
#include "aarch32/traces/simulator-cond-rd-operand-rn-mvns-a32.h"
#include "aarch32/traces/simulator-cond-rd-operand-rn-teq-a32.h"
#include "aarch32/traces/simulator-cond-rd-operand-rn-tst-a32.h"
#include "aarch32/traces/simulator-cond-rd-operand-rn-sxtb-a32.h"
#include "aarch32/traces/simulator-cond-rd-operand-rn-sxtb16-a32.h"
#include "aarch32/traces/simulator-cond-rd-operand-rn-sxth-a32.h"
#include "aarch32/traces/simulator-cond-rd-operand-rn-teq-a32.h"
#include "aarch32/traces/simulator-cond-rd-operand-rn-tst-a32.h"
#include "aarch32/traces/simulator-cond-rd-operand-rn-uxtb-a32.h"
#include "aarch32/traces/simulator-cond-rd-operand-rn-uxtb16-a32.h"
#include "aarch32/traces/simulator-cond-rd-operand-rn-uxth-a32.h"
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -178,270 +178,143 @@ static const Inputs kCondition[] = {{NFlag, 0xabababab, 0xabababab},
{ZCVFlag, 0xabababab, 0xabababab},
{NZCVFlag, 0xabababab, 0xabababab}};
static const Inputs kRdIsRn[] = {{NoFlag, 0x00000000, 0x00000000},
{NoFlag, 0x00000001, 0x00000001},
{NoFlag, 0x00000002, 0x00000002},
{NoFlag, 0x00000020, 0x00000020},
{NoFlag, 0x0000007d, 0x0000007d},
{NoFlag, 0x0000007e, 0x0000007e},
{NoFlag, 0x0000007f, 0x0000007f},
{NoFlag, 0x00007ffd, 0x00007ffd},
{NoFlag, 0x00007ffe, 0x00007ffe},
{NoFlag, 0x00007fff, 0x00007fff},
{NoFlag, 0x33333333, 0x33333333},
{NoFlag, 0x55555555, 0x55555555},
{NoFlag, 0x7ffffffd, 0x7ffffffd},
{NoFlag, 0x7ffffffe, 0x7ffffffe},
{NoFlag, 0x7fffffff, 0x7fffffff},
{NoFlag, 0x80000000, 0x80000000},
{NoFlag, 0x80000001, 0x80000001},
{NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0xcccccccc, 0xcccccccc},
{NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0xffff8001, 0xffff8001},
{NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0xffff8003, 0xffff8003},
{NoFlag, 0xffffff80, 0xffffff80},
{NoFlag, 0xffffff81, 0xffffff81},
{NoFlag, 0xffffff82, 0xffffff82},
{NoFlag, 0xffffff83, 0xffffff83},
{NoFlag, 0xffffffe0, 0xffffffe0},
{NoFlag, 0xfffffffd, 0xfffffffd},
{NoFlag, 0xfffffffe, 0xfffffffe},
{NoFlag, 0xffffffff, 0xffffffff}};
static const Inputs kRdIsRn[] =
{{NoFlag, 0x00000000, 0x00000000}, {NoFlag, 0x00000001, 0x00000001},
{NoFlag, 0x00000002, 0x00000002}, {NoFlag, 0x00000020, 0x00000020},
{NoFlag, 0x0000007d, 0x0000007d}, {NoFlag, 0x0000007e, 0x0000007e},
{NoFlag, 0x0000007f, 0x0000007f}, {NoFlag, 0x00007ffd, 0x00007ffd},
{NoFlag, 0x00007ffe, 0x00007ffe}, {NoFlag, 0x00007fff, 0x00007fff},
{NoFlag, 0x33333333, 0x33333333}, {NoFlag, 0x55555555, 0x55555555},
{NoFlag, 0x7ffffffd, 0x7ffffffd}, {NoFlag, 0x7ffffffe, 0x7ffffffe},
{NoFlag, 0x7fffffff, 0x7fffffff}, {NoFlag, 0x80000000, 0x80000000},
{NoFlag, 0x80000001, 0x80000001}, {NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0xcccccccc, 0xcccccccc}, {NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0xffff8001, 0xffff8001}, {NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0xffff8003, 0xffff8003}, {NoFlag, 0xffffff80, 0xffffff80},
{NoFlag, 0xffffff81, 0xffffff81}, {NoFlag, 0xffffff82, 0xffffff82},
{NoFlag, 0xffffff83, 0xffffff83}, {NoFlag, 0xffffffe0, 0xffffffe0},
{NoFlag, 0xfffffffd, 0xfffffffd}, {NoFlag, 0xfffffffe, 0xfffffffe},
{NoFlag, 0xffffffff, 0xffffffff}};
static const Inputs kRdIsNotRn[] = {{NoFlag, 0x00000002, 0xcccccccc},
{NoFlag, 0x7ffffffd, 0x00007ffe},
{NoFlag, 0xffffff80, 0x00000020},
{NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0x33333333, 0xffffff82},
{NoFlag, 0xffff8001, 0x7ffffffe},
{NoFlag, 0xfffffffd, 0x00007ffe},
{NoFlag, 0xffffff80, 0x80000000},
{NoFlag, 0x00000001, 0x33333333},
{NoFlag, 0xcccccccc, 0x7ffffffe},
{NoFlag, 0x00000000, 0xcccccccc},
{NoFlag, 0x00000000, 0x55555555},
{NoFlag, 0xffffffff, 0xffffffff},
{NoFlag, 0x0000007e, 0xffff8002},
{NoFlag, 0x80000000, 0x7ffffffd},
{NoFlag, 0xffffff81, 0x0000007e},
{NoFlag, 0x0000007f, 0xffff8001},
{NoFlag, 0xffffffe0, 0x00007ffd},
{NoFlag, 0xffff8003, 0x00000002},
{NoFlag, 0xffffff83, 0x55555555},
{NoFlag, 0xffffff83, 0xffffff80},
{NoFlag, 0xffffff81, 0xffff8000},
{NoFlag, 0x00000020, 0x7ffffffe},
{NoFlag, 0xffffffe0, 0x00000000},
{NoFlag, 0x7fffffff, 0x0000007e},
{NoFlag, 0x80000001, 0xffffffff},
{NoFlag, 0x00000001, 0x80000001},
{NoFlag, 0x00000002, 0x0000007f},
{NoFlag, 0x7fffffff, 0xcccccccc},
{NoFlag, 0x80000001, 0x00007ffe},
{NoFlag, 0xffff8002, 0x0000007e},
{NoFlag, 0x00007ffe, 0xcccccccc},
{NoFlag, 0x80000000, 0xffff8002},
{NoFlag, 0xffffff83, 0x7ffffffe},
{NoFlag, 0xffff8001, 0x00000001},
{NoFlag, 0xffffff81, 0x00000020},
{NoFlag, 0xfffffffe, 0xffff8001},
{NoFlag, 0xffffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x55555555},
{NoFlag, 0x00000020, 0xffffff83},
{NoFlag, 0xffffff83, 0xffff8001},
{NoFlag, 0xffffff83, 0xffff8000},
{NoFlag, 0x00007fff, 0x00000002},
{NoFlag, 0x55555555, 0xffff8000},
{NoFlag, 0x80000001, 0xffffff81},
{NoFlag, 0x00000002, 0x00000000},
{NoFlag, 0x33333333, 0xffffff81},
{NoFlag, 0xffff8001, 0xffffff82},
{NoFlag, 0xcccccccc, 0xffff8003},
{NoFlag, 0xffff8003, 0x7ffffffd},
{NoFlag, 0x0000007d, 0x00007ffe},
{NoFlag, 0xffffff80, 0x0000007d},
{NoFlag, 0xaaaaaaaa, 0x00007ffd},
{NoFlag, 0x80000000, 0xffffff82},
{NoFlag, 0x00000002, 0x7ffffffe},
{NoFlag, 0x00000002, 0xffffff83},
{NoFlag, 0x55555555, 0x00000002},
{NoFlag, 0xffffffff, 0xffffff82},
{NoFlag, 0xaaaaaaaa, 0x00000020},
{NoFlag, 0x00000001, 0xffffff82},
{NoFlag, 0x0000007f, 0xffffff82},
{NoFlag, 0x7ffffffd, 0xaaaaaaaa},
{NoFlag, 0x00007ffe, 0x00000001},
{NoFlag, 0xfffffffd, 0xffffffe0},
{NoFlag, 0xffffff81, 0xffffff83},
{NoFlag, 0x0000007d, 0x00000000},
{NoFlag, 0x0000007d, 0xffff8000},
{NoFlag, 0xffffff81, 0x7fffffff},
{NoFlag, 0xffffffff, 0x80000000},
{NoFlag, 0x00000000, 0x00000001},
{NoFlag, 0x55555555, 0xffffff82},
{NoFlag, 0x00007ffe, 0x00007ffe},
{NoFlag, 0x80000001, 0xfffffffd},
{NoFlag, 0x00007fff, 0x33333333},
{NoFlag, 0x00007fff, 0x80000000},
{NoFlag, 0xcccccccc, 0x00007fff},
{NoFlag, 0xfffffffe, 0xffffffe0},
{NoFlag, 0x7ffffffe, 0x0000007f},
{NoFlag, 0x00007ffd, 0xffff8001},
{NoFlag, 0x00000002, 0x00000001},
{NoFlag, 0x80000000, 0xffffffff},
{NoFlag, 0xffffff83, 0xcccccccc},
{NoFlag, 0xffff8002, 0x7ffffffe},
{NoFlag, 0xaaaaaaaa, 0x00000000},
{NoFlag, 0xffffff80, 0xcccccccc},
{NoFlag, 0x33333333, 0xffffff83},
{NoFlag, 0x0000007e, 0xffffffe0},
{NoFlag, 0x0000007e, 0x00007fff},
{NoFlag, 0x0000007f, 0x00000002},
{NoFlag, 0x7ffffffe, 0xcccccccc},
{NoFlag, 0x0000007d, 0xffffff80},
{NoFlag, 0x00007fff, 0x00000020},
{NoFlag, 0x7ffffffe, 0xfffffffe},
{NoFlag, 0xfffffffe, 0xffffff81},
{NoFlag, 0xffffffff, 0x0000007f},
{NoFlag, 0xffff8002, 0x7ffffffd},
{NoFlag, 0xffff8001, 0xfffffffe},
{NoFlag, 0x33333333, 0xffff8002},
{NoFlag, 0x00000000, 0xffffffff},
{NoFlag, 0x33333333, 0xffffff80},
{NoFlag, 0x0000007f, 0x00007fff},
{NoFlag, 0xffffffff, 0xffff8001},
{NoFlag, 0x7fffffff, 0xffff8002},
{NoFlag, 0x7ffffffd, 0xffffff83},
{NoFlag, 0x7fffffff, 0x0000007f},
{NoFlag, 0xffffff83, 0xfffffffe},
{NoFlag, 0x7ffffffe, 0xffff8003},
{NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0x80000001, 0x0000007f},
{NoFlag, 0x00000020, 0x00000002},
{NoFlag, 0xffffff82, 0xffff8001},
{NoFlag, 0xffffffff, 0x00000001},
{NoFlag, 0xffffff80, 0xffff8002},
{NoFlag, 0xffff8003, 0x7fffffff},
{NoFlag, 0xffffffff, 0xffff8000},
{NoFlag, 0xffff8002, 0x00007ffd},
{NoFlag, 0x00000020, 0xffffff81},
{NoFlag, 0x00000001, 0x55555555},
{NoFlag, 0x7ffffffe, 0x00000020},
{NoFlag, 0x80000000, 0x00000001},
{NoFlag, 0x00007ffd, 0xffff8002},
{NoFlag, 0x7fffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x00007ffd},
{NoFlag, 0x00000000, 0xfffffffd},
{NoFlag, 0xffff8003, 0xffffff80},
{NoFlag, 0x80000001, 0xffffff80},
{NoFlag, 0xffffffff, 0xffff8002},
{NoFlag, 0x00007ffe, 0xffff8002},
{NoFlag, 0xffffff80, 0x00007ffe},
{NoFlag, 0x80000001, 0xffff8001},
{NoFlag, 0x0000007f, 0xffffff80},
{NoFlag, 0xffffff81, 0x80000000},
{NoFlag, 0x00007fff, 0x00007ffe},
{NoFlag, 0x33333333, 0xffff8000},
{NoFlag, 0x33333333, 0x00007fff},
{NoFlag, 0x00000000, 0x0000007d},
{NoFlag, 0x80000001, 0x00000000},
{NoFlag, 0xffffffff, 0x55555555},
{NoFlag, 0x80000001, 0x80000000},
{NoFlag, 0xffffffff, 0xffffff80},
{NoFlag, 0xffffff81, 0xffff8003},
{NoFlag, 0x55555555, 0x80000001},
{NoFlag, 0x7fffffff, 0xffff8001},
{NoFlag, 0xffffff83, 0x00000002},
{NoFlag, 0x0000007e, 0xffffff81},
{NoFlag, 0x80000000, 0xffff8001},
{NoFlag, 0xffffff80, 0xfffffffe},
{NoFlag, 0x0000007e, 0xfffffffd},
{NoFlag, 0xffffffe0, 0xffffffff},
{NoFlag, 0x55555555, 0x80000000},
{NoFlag, 0x0000007d, 0x80000001},
{NoFlag, 0xffffffe0, 0x7ffffffd},
{NoFlag, 0x00000000, 0x00000000},
{NoFlag, 0x55555555, 0x00000001},
{NoFlag, 0x00007ffd, 0x7fffffff},
{NoFlag, 0x55555555, 0xffffffff},
{NoFlag, 0xffff8003, 0x00007fff},
{NoFlag, 0xffffff82, 0x00007fff},
{NoFlag, 0x33333333, 0x55555555},
{NoFlag, 0x00000020, 0x33333333},
{NoFlag, 0x7ffffffe, 0xfffffffd},
{NoFlag, 0x7ffffffe, 0x00000001},
{NoFlag, 0xffffff83, 0xffffffe0},
{NoFlag, 0xfffffffe, 0xaaaaaaaa},
{NoFlag, 0xffff8002, 0x33333333},
{NoFlag, 0xffff8002, 0xffff8003},
{NoFlag, 0x33333333, 0x7fffffff},
{NoFlag, 0xfffffffd, 0xffffff83},
{NoFlag, 0x00000000, 0xffff8000},
{NoFlag, 0xffffff82, 0x55555555},
{NoFlag, 0xffffff82, 0xffffff81},
{NoFlag, 0xcccccccc, 0xfffffffe},
{NoFlag, 0xfffffffd, 0x7fffffff},
{NoFlag, 0x00007fff, 0x7fffffff},
{NoFlag, 0xffffff83, 0xffff8003},
{NoFlag, 0xfffffffe, 0xffffffff},
{NoFlag, 0x7ffffffd, 0x00007ffd},
{NoFlag, 0x7ffffffd, 0x00007fff},
{NoFlag, 0x00007ffd, 0xffffffff},
{NoFlag, 0x00000001, 0xffff8003},
{NoFlag, 0xffffff80, 0xfffffffd},
{NoFlag, 0x33333333, 0x80000000},
{NoFlag, 0xffff8001, 0x00000020},
{NoFlag, 0xcccccccc, 0x00000002},
{NoFlag, 0x00000000, 0x00000002},
{NoFlag, 0x0000007d, 0x00007fff},
{NoFlag, 0xcccccccc, 0x00000001},
{NoFlag, 0xffffff83, 0x00007fff},
{NoFlag, 0x80000001, 0x00000020},
{NoFlag, 0xffff8003, 0xffffffe0},
{NoFlag, 0x00007ffd, 0xaaaaaaaa},
{NoFlag, 0x33333333, 0xffff8001},
{NoFlag, 0xffffff83, 0x80000001},
{NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0x00007ffe, 0xffff8001},
{NoFlag, 0x7ffffffd, 0x00000000},
{NoFlag, 0x00007ffe, 0x33333333},
{NoFlag, 0xffff8001, 0xffffff80},
{NoFlag, 0xfffffffe, 0x55555555},
{NoFlag, 0xffffff82, 0xffffffff}};
static const Inputs kRdIsNotRn[] =
{{NoFlag, 0x00000002, 0xcccccccc}, {NoFlag, 0x7ffffffd, 0x00007ffe},
{NoFlag, 0xffffff80, 0x00000020}, {NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0x33333333, 0xffffff82}, {NoFlag, 0xffff8001, 0x7ffffffe},
{NoFlag, 0xfffffffd, 0x00007ffe}, {NoFlag, 0xffffff80, 0x80000000},
{NoFlag, 0x00000001, 0x33333333}, {NoFlag, 0xcccccccc, 0x7ffffffe},
{NoFlag, 0x00000000, 0xcccccccc}, {NoFlag, 0x00000000, 0x55555555},
{NoFlag, 0xffffffff, 0xffffffff}, {NoFlag, 0x0000007e, 0xffff8002},
{NoFlag, 0x80000000, 0x7ffffffd}, {NoFlag, 0xffffff81, 0x0000007e},
{NoFlag, 0x0000007f, 0xffff8001}, {NoFlag, 0xffffffe0, 0x00007ffd},
{NoFlag, 0xffff8003, 0x00000002}, {NoFlag, 0xffffff83, 0x55555555},
{NoFlag, 0xffffff83, 0xffffff80}, {NoFlag, 0xffffff81, 0xffff8000},
{NoFlag, 0x00000020, 0x7ffffffe}, {NoFlag, 0xffffffe0, 0x00000000},
{NoFlag, 0x7fffffff, 0x0000007e}, {NoFlag, 0x80000001, 0xffffffff},
{NoFlag, 0x00000001, 0x80000001}, {NoFlag, 0x00000002, 0x0000007f},
{NoFlag, 0x7fffffff, 0xcccccccc}, {NoFlag, 0x80000001, 0x00007ffe},
{NoFlag, 0xffff8002, 0x0000007e}, {NoFlag, 0x00007ffe, 0xcccccccc},
{NoFlag, 0x80000000, 0xffff8002}, {NoFlag, 0xffffff83, 0x7ffffffe},
{NoFlag, 0xffff8001, 0x00000001}, {NoFlag, 0xffffff81, 0x00000020},
{NoFlag, 0xfffffffe, 0xffff8001}, {NoFlag, 0xffffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x55555555}, {NoFlag, 0x00000020, 0xffffff83},
{NoFlag, 0xffffff83, 0xffff8001}, {NoFlag, 0xffffff83, 0xffff8000},
{NoFlag, 0x00007fff, 0x00000002}, {NoFlag, 0x55555555, 0xffff8000},
{NoFlag, 0x80000001, 0xffffff81}, {NoFlag, 0x00000002, 0x00000000},
{NoFlag, 0x33333333, 0xffffff81}, {NoFlag, 0xffff8001, 0xffffff82},
{NoFlag, 0xcccccccc, 0xffff8003}, {NoFlag, 0xffff8003, 0x7ffffffd},
{NoFlag, 0x0000007d, 0x00007ffe}, {NoFlag, 0xffffff80, 0x0000007d},
{NoFlag, 0xaaaaaaaa, 0x00007ffd}, {NoFlag, 0x80000000, 0xffffff82},
{NoFlag, 0x00000002, 0x7ffffffe}, {NoFlag, 0x00000002, 0xffffff83},
{NoFlag, 0x55555555, 0x00000002}, {NoFlag, 0xffffffff, 0xffffff82},
{NoFlag, 0xaaaaaaaa, 0x00000020}, {NoFlag, 0x00000001, 0xffffff82},
{NoFlag, 0x0000007f, 0xffffff82}, {NoFlag, 0x7ffffffd, 0xaaaaaaaa},
{NoFlag, 0x00007ffe, 0x00000001}, {NoFlag, 0xfffffffd, 0xffffffe0},
{NoFlag, 0xffffff81, 0xffffff83}, {NoFlag, 0x0000007d, 0x00000000},
{NoFlag, 0x0000007d, 0xffff8000}, {NoFlag, 0xffffff81, 0x7fffffff},
{NoFlag, 0xffffffff, 0x80000000}, {NoFlag, 0x00000000, 0x00000001},
{NoFlag, 0x55555555, 0xffffff82}, {NoFlag, 0x00007ffe, 0x00007ffe},
{NoFlag, 0x80000001, 0xfffffffd}, {NoFlag, 0x00007fff, 0x33333333},
{NoFlag, 0x00007fff, 0x80000000}, {NoFlag, 0xcccccccc, 0x00007fff},
{NoFlag, 0xfffffffe, 0xffffffe0}, {NoFlag, 0x7ffffffe, 0x0000007f},
{NoFlag, 0x00007ffd, 0xffff8001}, {NoFlag, 0x00000002, 0x00000001},
{NoFlag, 0x80000000, 0xffffffff}, {NoFlag, 0xffffff83, 0xcccccccc},
{NoFlag, 0xffff8002, 0x7ffffffe}, {NoFlag, 0xaaaaaaaa, 0x00000000},
{NoFlag, 0xffffff80, 0xcccccccc}, {NoFlag, 0x33333333, 0xffffff83},
{NoFlag, 0x0000007e, 0xffffffe0}, {NoFlag, 0x0000007e, 0x00007fff},
{NoFlag, 0x0000007f, 0x00000002}, {NoFlag, 0x7ffffffe, 0xcccccccc},
{NoFlag, 0x0000007d, 0xffffff80}, {NoFlag, 0x00007fff, 0x00000020},
{NoFlag, 0x7ffffffe, 0xfffffffe}, {NoFlag, 0xfffffffe, 0xffffff81},
{NoFlag, 0xffffffff, 0x0000007f}, {NoFlag, 0xffff8002, 0x7ffffffd},
{NoFlag, 0xffff8001, 0xfffffffe}, {NoFlag, 0x33333333, 0xffff8002},
{NoFlag, 0x00000000, 0xffffffff}, {NoFlag, 0x33333333, 0xffffff80},
{NoFlag, 0x0000007f, 0x00007fff}, {NoFlag, 0xffffffff, 0xffff8001},
{NoFlag, 0x7fffffff, 0xffff8002}, {NoFlag, 0x7ffffffd, 0xffffff83},
{NoFlag, 0x7fffffff, 0x0000007f}, {NoFlag, 0xffffff83, 0xfffffffe},
{NoFlag, 0x7ffffffe, 0xffff8003}, {NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0x80000001, 0x0000007f}, {NoFlag, 0x00000020, 0x00000002},
{NoFlag, 0xffffff82, 0xffff8001}, {NoFlag, 0xffffffff, 0x00000001},
{NoFlag, 0xffffff80, 0xffff8002}, {NoFlag, 0xffff8003, 0x7fffffff},
{NoFlag, 0xffffffff, 0xffff8000}, {NoFlag, 0xffff8002, 0x00007ffd},
{NoFlag, 0x00000020, 0xffffff81}, {NoFlag, 0x00000001, 0x55555555},
{NoFlag, 0x7ffffffe, 0x00000020}, {NoFlag, 0x80000000, 0x00000001},
{NoFlag, 0x00007ffd, 0xffff8002}, {NoFlag, 0x7fffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x00007ffd}, {NoFlag, 0x00000000, 0xfffffffd},
{NoFlag, 0xffff8003, 0xffffff80}, {NoFlag, 0x80000001, 0xffffff80},
{NoFlag, 0xffffffff, 0xffff8002}, {NoFlag, 0x00007ffe, 0xffff8002},
{NoFlag, 0xffffff80, 0x00007ffe}, {NoFlag, 0x80000001, 0xffff8001},
{NoFlag, 0x0000007f, 0xffffff80}, {NoFlag, 0xffffff81, 0x80000000},
{NoFlag, 0x00007fff, 0x00007ffe}, {NoFlag, 0x33333333, 0xffff8000},
{NoFlag, 0x33333333, 0x00007fff}, {NoFlag, 0x00000000, 0x0000007d},
{NoFlag, 0x80000001, 0x00000000}, {NoFlag, 0xffffffff, 0x55555555},
{NoFlag, 0x80000001, 0x80000000}, {NoFlag, 0xffffffff, 0xffffff80},
{NoFlag, 0xffffff81, 0xffff8003}, {NoFlag, 0x55555555, 0x80000001},
{NoFlag, 0x7fffffff, 0xffff8001}, {NoFlag, 0xffffff83, 0x00000002},
{NoFlag, 0x0000007e, 0xffffff81}, {NoFlag, 0x80000000, 0xffff8001},
{NoFlag, 0xffffff80, 0xfffffffe}, {NoFlag, 0x0000007e, 0xfffffffd},
{NoFlag, 0xffffffe0, 0xffffffff}, {NoFlag, 0x55555555, 0x80000000},
{NoFlag, 0x0000007d, 0x80000001}, {NoFlag, 0xffffffe0, 0x7ffffffd},
{NoFlag, 0x00000000, 0x00000000}, {NoFlag, 0x55555555, 0x00000001},
{NoFlag, 0x00007ffd, 0x7fffffff}, {NoFlag, 0x55555555, 0xffffffff},
{NoFlag, 0xffff8003, 0x00007fff}, {NoFlag, 0xffffff82, 0x00007fff},
{NoFlag, 0x33333333, 0x55555555}, {NoFlag, 0x00000020, 0x33333333},
{NoFlag, 0x7ffffffe, 0xfffffffd}, {NoFlag, 0x7ffffffe, 0x00000001},
{NoFlag, 0xffffff83, 0xffffffe0}, {NoFlag, 0xfffffffe, 0xaaaaaaaa},
{NoFlag, 0xffff8002, 0x33333333}, {NoFlag, 0xffff8002, 0xffff8003},
{NoFlag, 0x33333333, 0x7fffffff}, {NoFlag, 0xfffffffd, 0xffffff83},
{NoFlag, 0x00000000, 0xffff8000}, {NoFlag, 0xffffff82, 0x55555555},
{NoFlag, 0xffffff82, 0xffffff81}, {NoFlag, 0xcccccccc, 0xfffffffe},
{NoFlag, 0xfffffffd, 0x7fffffff}, {NoFlag, 0x00007fff, 0x7fffffff},
{NoFlag, 0xffffff83, 0xffff8003}, {NoFlag, 0xfffffffe, 0xffffffff},
{NoFlag, 0x7ffffffd, 0x00007ffd}, {NoFlag, 0x7ffffffd, 0x00007fff},
{NoFlag, 0x00007ffd, 0xffffffff}, {NoFlag, 0x00000001, 0xffff8003},
{NoFlag, 0xffffff80, 0xfffffffd}, {NoFlag, 0x33333333, 0x80000000},
{NoFlag, 0xffff8001, 0x00000020}, {NoFlag, 0xcccccccc, 0x00000002},
{NoFlag, 0x00000000, 0x00000002}, {NoFlag, 0x0000007d, 0x00007fff},
{NoFlag, 0xcccccccc, 0x00000001}, {NoFlag, 0xffffff83, 0x00007fff},
{NoFlag, 0x80000001, 0x00000020}, {NoFlag, 0xffff8003, 0xffffffe0},
{NoFlag, 0x00007ffd, 0xaaaaaaaa}, {NoFlag, 0x33333333, 0xffff8001},
{NoFlag, 0xffffff83, 0x80000001}, {NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0x00007ffe, 0xffff8001}, {NoFlag, 0x7ffffffd, 0x00000000},
{NoFlag, 0x00007ffe, 0x33333333}, {NoFlag, 0xffff8001, 0xffffff80},
{NoFlag, 0xfffffffe, 0x55555555}, {NoFlag, 0xffffff82, 0xffffffff}};
static const Inputs kRotations[] = {{NoFlag, 0xabababab, 0x00000000},
{NoFlag, 0xabababab, 0x00000001},
{NoFlag, 0xabababab, 0x00000002},
{NoFlag, 0xabababab, 0x00000020},
{NoFlag, 0xabababab, 0x0000007d},
{NoFlag, 0xabababab, 0x0000007e},
{NoFlag, 0xabababab, 0x0000007f},
{NoFlag, 0xabababab, 0x00007ffd},
{NoFlag, 0xabababab, 0x00007ffe},
{NoFlag, 0xabababab, 0x00007fff},
{NoFlag, 0xabababab, 0x33333333},
{NoFlag, 0xabababab, 0x55555555},
{NoFlag, 0xabababab, 0x7ffffffd},
{NoFlag, 0xabababab, 0x7ffffffe},
{NoFlag, 0xabababab, 0x7fffffff},
{NoFlag, 0xabababab, 0x80000000},
{NoFlag, 0xabababab, 0x80000001},
{NoFlag, 0xabababab, 0xaaaaaaaa},
{NoFlag, 0xabababab, 0xcccccccc},
{NoFlag, 0xabababab, 0xffff8000},
{NoFlag, 0xabababab, 0xffff8001},
{NoFlag, 0xabababab, 0xffff8002},
{NoFlag, 0xabababab, 0xffff8003},
{NoFlag, 0xabababab, 0xffffff80},
{NoFlag, 0xabababab, 0xffffff81},
{NoFlag, 0xabababab, 0xffffff82},
{NoFlag, 0xabababab, 0xffffff83},
{NoFlag, 0xabababab, 0xffffffe0},
{NoFlag, 0xabababab, 0xfffffffd},
{NoFlag, 0xabababab, 0xfffffffe},
{NoFlag, 0xabababab, 0xffffffff}};
static const Inputs kRotations[] =
{{NoFlag, 0xabababab, 0x00000000}, {NoFlag, 0xabababab, 0x00000001},
{NoFlag, 0xabababab, 0x00000002}, {NoFlag, 0xabababab, 0x00000020},
{NoFlag, 0xabababab, 0x0000007d}, {NoFlag, 0xabababab, 0x0000007e},
{NoFlag, 0xabababab, 0x0000007f}, {NoFlag, 0xabababab, 0x00007ffd},
{NoFlag, 0xabababab, 0x00007ffe}, {NoFlag, 0xabababab, 0x00007fff},
{NoFlag, 0xabababab, 0x33333333}, {NoFlag, 0xabababab, 0x55555555},
{NoFlag, 0xabababab, 0x7ffffffd}, {NoFlag, 0xabababab, 0x7ffffffe},
{NoFlag, 0xabababab, 0x7fffffff}, {NoFlag, 0xabababab, 0x80000000},
{NoFlag, 0xabababab, 0x80000001}, {NoFlag, 0xabababab, 0xaaaaaaaa},
{NoFlag, 0xabababab, 0xcccccccc}, {NoFlag, 0xabababab, 0xffff8000},
{NoFlag, 0xabababab, 0xffff8001}, {NoFlag, 0xabababab, 0xffff8002},
{NoFlag, 0xabababab, 0xffff8003}, {NoFlag, 0xabababab, 0xffffff80},
{NoFlag, 0xabababab, 0xffffff81}, {NoFlag, 0xabababab, 0xffffff82},
{NoFlag, 0xabababab, 0xffffff83}, {NoFlag, 0xabababab, 0xffffffe0},
{NoFlag, 0xabababab, 0xfffffffd}, {NoFlag, 0xabababab, 0xfffffffe},
{NoFlag, 0xabababab, 0xffffffff}};
// A loop will be generated for each element of this array.
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -178,270 +178,143 @@ static const Inputs kCondition[] = {{NFlag, 0xabababab, 0xabababab},
{ZCVFlag, 0xabababab, 0xabababab},
{NZCVFlag, 0xabababab, 0xabababab}};
static const Inputs kRdIsRn[] = {{NoFlag, 0x00000000, 0x00000000},
{NoFlag, 0x00000001, 0x00000001},
{NoFlag, 0x00000002, 0x00000002},
{NoFlag, 0x00000020, 0x00000020},
{NoFlag, 0x0000007d, 0x0000007d},
{NoFlag, 0x0000007e, 0x0000007e},
{NoFlag, 0x0000007f, 0x0000007f},
{NoFlag, 0x00007ffd, 0x00007ffd},
{NoFlag, 0x00007ffe, 0x00007ffe},
{NoFlag, 0x00007fff, 0x00007fff},
{NoFlag, 0x33333333, 0x33333333},
{NoFlag, 0x55555555, 0x55555555},
{NoFlag, 0x7ffffffd, 0x7ffffffd},
{NoFlag, 0x7ffffffe, 0x7ffffffe},
{NoFlag, 0x7fffffff, 0x7fffffff},
{NoFlag, 0x80000000, 0x80000000},
{NoFlag, 0x80000001, 0x80000001},
{NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0xcccccccc, 0xcccccccc},
{NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0xffff8001, 0xffff8001},
{NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0xffff8003, 0xffff8003},
{NoFlag, 0xffffff80, 0xffffff80},
{NoFlag, 0xffffff81, 0xffffff81},
{NoFlag, 0xffffff82, 0xffffff82},
{NoFlag, 0xffffff83, 0xffffff83},
{NoFlag, 0xffffffe0, 0xffffffe0},
{NoFlag, 0xfffffffd, 0xfffffffd},
{NoFlag, 0xfffffffe, 0xfffffffe},
{NoFlag, 0xffffffff, 0xffffffff}};
static const Inputs kRdIsRn[] =
{{NoFlag, 0x00000000, 0x00000000}, {NoFlag, 0x00000001, 0x00000001},
{NoFlag, 0x00000002, 0x00000002}, {NoFlag, 0x00000020, 0x00000020},
{NoFlag, 0x0000007d, 0x0000007d}, {NoFlag, 0x0000007e, 0x0000007e},
{NoFlag, 0x0000007f, 0x0000007f}, {NoFlag, 0x00007ffd, 0x00007ffd},
{NoFlag, 0x00007ffe, 0x00007ffe}, {NoFlag, 0x00007fff, 0x00007fff},
{NoFlag, 0x33333333, 0x33333333}, {NoFlag, 0x55555555, 0x55555555},
{NoFlag, 0x7ffffffd, 0x7ffffffd}, {NoFlag, 0x7ffffffe, 0x7ffffffe},
{NoFlag, 0x7fffffff, 0x7fffffff}, {NoFlag, 0x80000000, 0x80000000},
{NoFlag, 0x80000001, 0x80000001}, {NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0xcccccccc, 0xcccccccc}, {NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0xffff8001, 0xffff8001}, {NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0xffff8003, 0xffff8003}, {NoFlag, 0xffffff80, 0xffffff80},
{NoFlag, 0xffffff81, 0xffffff81}, {NoFlag, 0xffffff82, 0xffffff82},
{NoFlag, 0xffffff83, 0xffffff83}, {NoFlag, 0xffffffe0, 0xffffffe0},
{NoFlag, 0xfffffffd, 0xfffffffd}, {NoFlag, 0xfffffffe, 0xfffffffe},
{NoFlag, 0xffffffff, 0xffffffff}};
static const Inputs kRdIsNotRn[] = {{NoFlag, 0x00000002, 0xcccccccc},
{NoFlag, 0x7ffffffd, 0x00007ffe},
{NoFlag, 0xffffff80, 0x00000020},
{NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0x33333333, 0xffffff82},
{NoFlag, 0xffff8001, 0x7ffffffe},
{NoFlag, 0xfffffffd, 0x00007ffe},
{NoFlag, 0xffffff80, 0x80000000},
{NoFlag, 0x00000001, 0x33333333},
{NoFlag, 0xcccccccc, 0x7ffffffe},
{NoFlag, 0x00000000, 0xcccccccc},
{NoFlag, 0x00000000, 0x55555555},
{NoFlag, 0xffffffff, 0xffffffff},
{NoFlag, 0x0000007e, 0xffff8002},
{NoFlag, 0x80000000, 0x7ffffffd},
{NoFlag, 0xffffff81, 0x0000007e},
{NoFlag, 0x0000007f, 0xffff8001},
{NoFlag, 0xffffffe0, 0x00007ffd},
{NoFlag, 0xffff8003, 0x00000002},
{NoFlag, 0xffffff83, 0x55555555},
{NoFlag, 0xffffff83, 0xffffff80},
{NoFlag, 0xffffff81, 0xffff8000},
{NoFlag, 0x00000020, 0x7ffffffe},
{NoFlag, 0xffffffe0, 0x00000000},
{NoFlag, 0x7fffffff, 0x0000007e},
{NoFlag, 0x80000001, 0xffffffff},
{NoFlag, 0x00000001, 0x80000001},
{NoFlag, 0x00000002, 0x0000007f},
{NoFlag, 0x7fffffff, 0xcccccccc},
{NoFlag, 0x80000001, 0x00007ffe},
{NoFlag, 0xffff8002, 0x0000007e},
{NoFlag, 0x00007ffe, 0xcccccccc},
{NoFlag, 0x80000000, 0xffff8002},
{NoFlag, 0xffffff83, 0x7ffffffe},
{NoFlag, 0xffff8001, 0x00000001},
{NoFlag, 0xffffff81, 0x00000020},
{NoFlag, 0xfffffffe, 0xffff8001},
{NoFlag, 0xffffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x55555555},
{NoFlag, 0x00000020, 0xffffff83},
{NoFlag, 0xffffff83, 0xffff8001},
{NoFlag, 0xffffff83, 0xffff8000},
{NoFlag, 0x00007fff, 0x00000002},
{NoFlag, 0x55555555, 0xffff8000},
{NoFlag, 0x80000001, 0xffffff81},
{NoFlag, 0x00000002, 0x00000000},
{NoFlag, 0x33333333, 0xffffff81},
{NoFlag, 0xffff8001, 0xffffff82},
{NoFlag, 0xcccccccc, 0xffff8003},
{NoFlag, 0xffff8003, 0x7ffffffd},
{NoFlag, 0x0000007d, 0x00007ffe},
{NoFlag, 0xffffff80, 0x0000007d},
{NoFlag, 0xaaaaaaaa, 0x00007ffd},
{NoFlag, 0x80000000, 0xffffff82},
{NoFlag, 0x00000002, 0x7ffffffe},
{NoFlag, 0x00000002, 0xffffff83},
{NoFlag, 0x55555555, 0x00000002},
{NoFlag, 0xffffffff, 0xffffff82},
{NoFlag, 0xaaaaaaaa, 0x00000020},
{NoFlag, 0x00000001, 0xffffff82},
{NoFlag, 0x0000007f, 0xffffff82},
{NoFlag, 0x7ffffffd, 0xaaaaaaaa},
{NoFlag, 0x00007ffe, 0x00000001},
{NoFlag, 0xfffffffd, 0xffffffe0},
{NoFlag, 0xffffff81, 0xffffff83},
{NoFlag, 0x0000007d, 0x00000000},
{NoFlag, 0x0000007d, 0xffff8000},
{NoFlag, 0xffffff81, 0x7fffffff},
{NoFlag, 0xffffffff, 0x80000000},
{NoFlag, 0x00000000, 0x00000001},
{NoFlag, 0x55555555, 0xffffff82},
{NoFlag, 0x00007ffe, 0x00007ffe},
{NoFlag, 0x80000001, 0xfffffffd},
{NoFlag, 0x00007fff, 0x33333333},
{NoFlag, 0x00007fff, 0x80000000},
{NoFlag, 0xcccccccc, 0x00007fff},
{NoFlag, 0xfffffffe, 0xffffffe0},
{NoFlag, 0x7ffffffe, 0x0000007f},
{NoFlag, 0x00007ffd, 0xffff8001},
{NoFlag, 0x00000002, 0x00000001},
{NoFlag, 0x80000000, 0xffffffff},
{NoFlag, 0xffffff83, 0xcccccccc},
{NoFlag, 0xffff8002, 0x7ffffffe},
{NoFlag, 0xaaaaaaaa, 0x00000000},
{NoFlag, 0xffffff80, 0xcccccccc},
{NoFlag, 0x33333333, 0xffffff83},
{NoFlag, 0x0000007e, 0xffffffe0},
{NoFlag, 0x0000007e, 0x00007fff},
{NoFlag, 0x0000007f, 0x00000002},
{NoFlag, 0x7ffffffe, 0xcccccccc},
{NoFlag, 0x0000007d, 0xffffff80},
{NoFlag, 0x00007fff, 0x00000020},
{NoFlag, 0x7ffffffe, 0xfffffffe},
{NoFlag, 0xfffffffe, 0xffffff81},
{NoFlag, 0xffffffff, 0x0000007f},
{NoFlag, 0xffff8002, 0x7ffffffd},
{NoFlag, 0xffff8001, 0xfffffffe},
{NoFlag, 0x33333333, 0xffff8002},
{NoFlag, 0x00000000, 0xffffffff},
{NoFlag, 0x33333333, 0xffffff80},
{NoFlag, 0x0000007f, 0x00007fff},
{NoFlag, 0xffffffff, 0xffff8001},
{NoFlag, 0x7fffffff, 0xffff8002},
{NoFlag, 0x7ffffffd, 0xffffff83},
{NoFlag, 0x7fffffff, 0x0000007f},
{NoFlag, 0xffffff83, 0xfffffffe},
{NoFlag, 0x7ffffffe, 0xffff8003},
{NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0x80000001, 0x0000007f},
{NoFlag, 0x00000020, 0x00000002},
{NoFlag, 0xffffff82, 0xffff8001},
{NoFlag, 0xffffffff, 0x00000001},
{NoFlag, 0xffffff80, 0xffff8002},
{NoFlag, 0xffff8003, 0x7fffffff},
{NoFlag, 0xffffffff, 0xffff8000},
{NoFlag, 0xffff8002, 0x00007ffd},
{NoFlag, 0x00000020, 0xffffff81},
{NoFlag, 0x00000001, 0x55555555},
{NoFlag, 0x7ffffffe, 0x00000020},
{NoFlag, 0x80000000, 0x00000001},
{NoFlag, 0x00007ffd, 0xffff8002},
{NoFlag, 0x7fffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x00007ffd},
{NoFlag, 0x00000000, 0xfffffffd},
{NoFlag, 0xffff8003, 0xffffff80},
{NoFlag, 0x80000001, 0xffffff80},
{NoFlag, 0xffffffff, 0xffff8002},
{NoFlag, 0x00007ffe, 0xffff8002},
{NoFlag, 0xffffff80, 0x00007ffe},
{NoFlag, 0x80000001, 0xffff8001},
{NoFlag, 0x0000007f, 0xffffff80},
{NoFlag, 0xffffff81, 0x80000000},
{NoFlag, 0x00007fff, 0x00007ffe},
{NoFlag, 0x33333333, 0xffff8000},
{NoFlag, 0x33333333, 0x00007fff},
{NoFlag, 0x00000000, 0x0000007d},
{NoFlag, 0x80000001, 0x00000000},
{NoFlag, 0xffffffff, 0x55555555},
{NoFlag, 0x80000001, 0x80000000},
{NoFlag, 0xffffffff, 0xffffff80},
{NoFlag, 0xffffff81, 0xffff8003},
{NoFlag, 0x55555555, 0x80000001},
{NoFlag, 0x7fffffff, 0xffff8001},
{NoFlag, 0xffffff83, 0x00000002},
{NoFlag, 0x0000007e, 0xffffff81},
{NoFlag, 0x80000000, 0xffff8001},
{NoFlag, 0xffffff80, 0xfffffffe},
{NoFlag, 0x0000007e, 0xfffffffd},
{NoFlag, 0xffffffe0, 0xffffffff},
{NoFlag, 0x55555555, 0x80000000},
{NoFlag, 0x0000007d, 0x80000001},
{NoFlag, 0xffffffe0, 0x7ffffffd},
{NoFlag, 0x00000000, 0x00000000},
{NoFlag, 0x55555555, 0x00000001},
{NoFlag, 0x00007ffd, 0x7fffffff},
{NoFlag, 0x55555555, 0xffffffff},
{NoFlag, 0xffff8003, 0x00007fff},
{NoFlag, 0xffffff82, 0x00007fff},
{NoFlag, 0x33333333, 0x55555555},
{NoFlag, 0x00000020, 0x33333333},
{NoFlag, 0x7ffffffe, 0xfffffffd},
{NoFlag, 0x7ffffffe, 0x00000001},
{NoFlag, 0xffffff83, 0xffffffe0},
{NoFlag, 0xfffffffe, 0xaaaaaaaa},
{NoFlag, 0xffff8002, 0x33333333},
{NoFlag, 0xffff8002, 0xffff8003},
{NoFlag, 0x33333333, 0x7fffffff},
{NoFlag, 0xfffffffd, 0xffffff83},
{NoFlag, 0x00000000, 0xffff8000},
{NoFlag, 0xffffff82, 0x55555555},
{NoFlag, 0xffffff82, 0xffffff81},
{NoFlag, 0xcccccccc, 0xfffffffe},
{NoFlag, 0xfffffffd, 0x7fffffff},
{NoFlag, 0x00007fff, 0x7fffffff},
{NoFlag, 0xffffff83, 0xffff8003},
{NoFlag, 0xfffffffe, 0xffffffff},
{NoFlag, 0x7ffffffd, 0x00007ffd},
{NoFlag, 0x7ffffffd, 0x00007fff},
{NoFlag, 0x00007ffd, 0xffffffff},
{NoFlag, 0x00000001, 0xffff8003},
{NoFlag, 0xffffff80, 0xfffffffd},
{NoFlag, 0x33333333, 0x80000000},
{NoFlag, 0xffff8001, 0x00000020},
{NoFlag, 0xcccccccc, 0x00000002},
{NoFlag, 0x00000000, 0x00000002},
{NoFlag, 0x0000007d, 0x00007fff},
{NoFlag, 0xcccccccc, 0x00000001},
{NoFlag, 0xffffff83, 0x00007fff},
{NoFlag, 0x80000001, 0x00000020},
{NoFlag, 0xffff8003, 0xffffffe0},
{NoFlag, 0x00007ffd, 0xaaaaaaaa},
{NoFlag, 0x33333333, 0xffff8001},
{NoFlag, 0xffffff83, 0x80000001},
{NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0x00007ffe, 0xffff8001},
{NoFlag, 0x7ffffffd, 0x00000000},
{NoFlag, 0x00007ffe, 0x33333333},
{NoFlag, 0xffff8001, 0xffffff80},
{NoFlag, 0xfffffffe, 0x55555555},
{NoFlag, 0xffffff82, 0xffffffff}};
static const Inputs kRdIsNotRn[] =
{{NoFlag, 0x00000002, 0xcccccccc}, {NoFlag, 0x7ffffffd, 0x00007ffe},
{NoFlag, 0xffffff80, 0x00000020}, {NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0x33333333, 0xffffff82}, {NoFlag, 0xffff8001, 0x7ffffffe},
{NoFlag, 0xfffffffd, 0x00007ffe}, {NoFlag, 0xffffff80, 0x80000000},
{NoFlag, 0x00000001, 0x33333333}, {NoFlag, 0xcccccccc, 0x7ffffffe},
{NoFlag, 0x00000000, 0xcccccccc}, {NoFlag, 0x00000000, 0x55555555},
{NoFlag, 0xffffffff, 0xffffffff}, {NoFlag, 0x0000007e, 0xffff8002},
{NoFlag, 0x80000000, 0x7ffffffd}, {NoFlag, 0xffffff81, 0x0000007e},
{NoFlag, 0x0000007f, 0xffff8001}, {NoFlag, 0xffffffe0, 0x00007ffd},
{NoFlag, 0xffff8003, 0x00000002}, {NoFlag, 0xffffff83, 0x55555555},
{NoFlag, 0xffffff83, 0xffffff80}, {NoFlag, 0xffffff81, 0xffff8000},
{NoFlag, 0x00000020, 0x7ffffffe}, {NoFlag, 0xffffffe0, 0x00000000},
{NoFlag, 0x7fffffff, 0x0000007e}, {NoFlag, 0x80000001, 0xffffffff},
{NoFlag, 0x00000001, 0x80000001}, {NoFlag, 0x00000002, 0x0000007f},
{NoFlag, 0x7fffffff, 0xcccccccc}, {NoFlag, 0x80000001, 0x00007ffe},
{NoFlag, 0xffff8002, 0x0000007e}, {NoFlag, 0x00007ffe, 0xcccccccc},
{NoFlag, 0x80000000, 0xffff8002}, {NoFlag, 0xffffff83, 0x7ffffffe},
{NoFlag, 0xffff8001, 0x00000001}, {NoFlag, 0xffffff81, 0x00000020},
{NoFlag, 0xfffffffe, 0xffff8001}, {NoFlag, 0xffffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x55555555}, {NoFlag, 0x00000020, 0xffffff83},
{NoFlag, 0xffffff83, 0xffff8001}, {NoFlag, 0xffffff83, 0xffff8000},
{NoFlag, 0x00007fff, 0x00000002}, {NoFlag, 0x55555555, 0xffff8000},
{NoFlag, 0x80000001, 0xffffff81}, {NoFlag, 0x00000002, 0x00000000},
{NoFlag, 0x33333333, 0xffffff81}, {NoFlag, 0xffff8001, 0xffffff82},
{NoFlag, 0xcccccccc, 0xffff8003}, {NoFlag, 0xffff8003, 0x7ffffffd},
{NoFlag, 0x0000007d, 0x00007ffe}, {NoFlag, 0xffffff80, 0x0000007d},
{NoFlag, 0xaaaaaaaa, 0x00007ffd}, {NoFlag, 0x80000000, 0xffffff82},
{NoFlag, 0x00000002, 0x7ffffffe}, {NoFlag, 0x00000002, 0xffffff83},
{NoFlag, 0x55555555, 0x00000002}, {NoFlag, 0xffffffff, 0xffffff82},
{NoFlag, 0xaaaaaaaa, 0x00000020}, {NoFlag, 0x00000001, 0xffffff82},
{NoFlag, 0x0000007f, 0xffffff82}, {NoFlag, 0x7ffffffd, 0xaaaaaaaa},
{NoFlag, 0x00007ffe, 0x00000001}, {NoFlag, 0xfffffffd, 0xffffffe0},
{NoFlag, 0xffffff81, 0xffffff83}, {NoFlag, 0x0000007d, 0x00000000},
{NoFlag, 0x0000007d, 0xffff8000}, {NoFlag, 0xffffff81, 0x7fffffff},
{NoFlag, 0xffffffff, 0x80000000}, {NoFlag, 0x00000000, 0x00000001},
{NoFlag, 0x55555555, 0xffffff82}, {NoFlag, 0x00007ffe, 0x00007ffe},
{NoFlag, 0x80000001, 0xfffffffd}, {NoFlag, 0x00007fff, 0x33333333},
{NoFlag, 0x00007fff, 0x80000000}, {NoFlag, 0xcccccccc, 0x00007fff},
{NoFlag, 0xfffffffe, 0xffffffe0}, {NoFlag, 0x7ffffffe, 0x0000007f},
{NoFlag, 0x00007ffd, 0xffff8001}, {NoFlag, 0x00000002, 0x00000001},
{NoFlag, 0x80000000, 0xffffffff}, {NoFlag, 0xffffff83, 0xcccccccc},
{NoFlag, 0xffff8002, 0x7ffffffe}, {NoFlag, 0xaaaaaaaa, 0x00000000},
{NoFlag, 0xffffff80, 0xcccccccc}, {NoFlag, 0x33333333, 0xffffff83},
{NoFlag, 0x0000007e, 0xffffffe0}, {NoFlag, 0x0000007e, 0x00007fff},
{NoFlag, 0x0000007f, 0x00000002}, {NoFlag, 0x7ffffffe, 0xcccccccc},
{NoFlag, 0x0000007d, 0xffffff80}, {NoFlag, 0x00007fff, 0x00000020},
{NoFlag, 0x7ffffffe, 0xfffffffe}, {NoFlag, 0xfffffffe, 0xffffff81},
{NoFlag, 0xffffffff, 0x0000007f}, {NoFlag, 0xffff8002, 0x7ffffffd},
{NoFlag, 0xffff8001, 0xfffffffe}, {NoFlag, 0x33333333, 0xffff8002},
{NoFlag, 0x00000000, 0xffffffff}, {NoFlag, 0x33333333, 0xffffff80},
{NoFlag, 0x0000007f, 0x00007fff}, {NoFlag, 0xffffffff, 0xffff8001},
{NoFlag, 0x7fffffff, 0xffff8002}, {NoFlag, 0x7ffffffd, 0xffffff83},
{NoFlag, 0x7fffffff, 0x0000007f}, {NoFlag, 0xffffff83, 0xfffffffe},
{NoFlag, 0x7ffffffe, 0xffff8003}, {NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0x80000001, 0x0000007f}, {NoFlag, 0x00000020, 0x00000002},
{NoFlag, 0xffffff82, 0xffff8001}, {NoFlag, 0xffffffff, 0x00000001},
{NoFlag, 0xffffff80, 0xffff8002}, {NoFlag, 0xffff8003, 0x7fffffff},
{NoFlag, 0xffffffff, 0xffff8000}, {NoFlag, 0xffff8002, 0x00007ffd},
{NoFlag, 0x00000020, 0xffffff81}, {NoFlag, 0x00000001, 0x55555555},
{NoFlag, 0x7ffffffe, 0x00000020}, {NoFlag, 0x80000000, 0x00000001},
{NoFlag, 0x00007ffd, 0xffff8002}, {NoFlag, 0x7fffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x00007ffd}, {NoFlag, 0x00000000, 0xfffffffd},
{NoFlag, 0xffff8003, 0xffffff80}, {NoFlag, 0x80000001, 0xffffff80},
{NoFlag, 0xffffffff, 0xffff8002}, {NoFlag, 0x00007ffe, 0xffff8002},
{NoFlag, 0xffffff80, 0x00007ffe}, {NoFlag, 0x80000001, 0xffff8001},
{NoFlag, 0x0000007f, 0xffffff80}, {NoFlag, 0xffffff81, 0x80000000},
{NoFlag, 0x00007fff, 0x00007ffe}, {NoFlag, 0x33333333, 0xffff8000},
{NoFlag, 0x33333333, 0x00007fff}, {NoFlag, 0x00000000, 0x0000007d},
{NoFlag, 0x80000001, 0x00000000}, {NoFlag, 0xffffffff, 0x55555555},
{NoFlag, 0x80000001, 0x80000000}, {NoFlag, 0xffffffff, 0xffffff80},
{NoFlag, 0xffffff81, 0xffff8003}, {NoFlag, 0x55555555, 0x80000001},
{NoFlag, 0x7fffffff, 0xffff8001}, {NoFlag, 0xffffff83, 0x00000002},
{NoFlag, 0x0000007e, 0xffffff81}, {NoFlag, 0x80000000, 0xffff8001},
{NoFlag, 0xffffff80, 0xfffffffe}, {NoFlag, 0x0000007e, 0xfffffffd},
{NoFlag, 0xffffffe0, 0xffffffff}, {NoFlag, 0x55555555, 0x80000000},
{NoFlag, 0x0000007d, 0x80000001}, {NoFlag, 0xffffffe0, 0x7ffffffd},
{NoFlag, 0x00000000, 0x00000000}, {NoFlag, 0x55555555, 0x00000001},
{NoFlag, 0x00007ffd, 0x7fffffff}, {NoFlag, 0x55555555, 0xffffffff},
{NoFlag, 0xffff8003, 0x00007fff}, {NoFlag, 0xffffff82, 0x00007fff},
{NoFlag, 0x33333333, 0x55555555}, {NoFlag, 0x00000020, 0x33333333},
{NoFlag, 0x7ffffffe, 0xfffffffd}, {NoFlag, 0x7ffffffe, 0x00000001},
{NoFlag, 0xffffff83, 0xffffffe0}, {NoFlag, 0xfffffffe, 0xaaaaaaaa},
{NoFlag, 0xffff8002, 0x33333333}, {NoFlag, 0xffff8002, 0xffff8003},
{NoFlag, 0x33333333, 0x7fffffff}, {NoFlag, 0xfffffffd, 0xffffff83},
{NoFlag, 0x00000000, 0xffff8000}, {NoFlag, 0xffffff82, 0x55555555},
{NoFlag, 0xffffff82, 0xffffff81}, {NoFlag, 0xcccccccc, 0xfffffffe},
{NoFlag, 0xfffffffd, 0x7fffffff}, {NoFlag, 0x00007fff, 0x7fffffff},
{NoFlag, 0xffffff83, 0xffff8003}, {NoFlag, 0xfffffffe, 0xffffffff},
{NoFlag, 0x7ffffffd, 0x00007ffd}, {NoFlag, 0x7ffffffd, 0x00007fff},
{NoFlag, 0x00007ffd, 0xffffffff}, {NoFlag, 0x00000001, 0xffff8003},
{NoFlag, 0xffffff80, 0xfffffffd}, {NoFlag, 0x33333333, 0x80000000},
{NoFlag, 0xffff8001, 0x00000020}, {NoFlag, 0xcccccccc, 0x00000002},
{NoFlag, 0x00000000, 0x00000002}, {NoFlag, 0x0000007d, 0x00007fff},
{NoFlag, 0xcccccccc, 0x00000001}, {NoFlag, 0xffffff83, 0x00007fff},
{NoFlag, 0x80000001, 0x00000020}, {NoFlag, 0xffff8003, 0xffffffe0},
{NoFlag, 0x00007ffd, 0xaaaaaaaa}, {NoFlag, 0x33333333, 0xffff8001},
{NoFlag, 0xffffff83, 0x80000001}, {NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0x00007ffe, 0xffff8001}, {NoFlag, 0x7ffffffd, 0x00000000},
{NoFlag, 0x00007ffe, 0x33333333}, {NoFlag, 0xffff8001, 0xffffff80},
{NoFlag, 0xfffffffe, 0x55555555}, {NoFlag, 0xffffff82, 0xffffffff}};
static const Inputs kRotations[] = {{NoFlag, 0xabababab, 0x00000000},
{NoFlag, 0xabababab, 0x00000001},
{NoFlag, 0xabababab, 0x00000002},
{NoFlag, 0xabababab, 0x00000020},
{NoFlag, 0xabababab, 0x0000007d},
{NoFlag, 0xabababab, 0x0000007e},
{NoFlag, 0xabababab, 0x0000007f},
{NoFlag, 0xabababab, 0x00007ffd},
{NoFlag, 0xabababab, 0x00007ffe},
{NoFlag, 0xabababab, 0x00007fff},
{NoFlag, 0xabababab, 0x33333333},
{NoFlag, 0xabababab, 0x55555555},
{NoFlag, 0xabababab, 0x7ffffffd},
{NoFlag, 0xabababab, 0x7ffffffe},
{NoFlag, 0xabababab, 0x7fffffff},
{NoFlag, 0xabababab, 0x80000000},
{NoFlag, 0xabababab, 0x80000001},
{NoFlag, 0xabababab, 0xaaaaaaaa},
{NoFlag, 0xabababab, 0xcccccccc},
{NoFlag, 0xabababab, 0xffff8000},
{NoFlag, 0xabababab, 0xffff8001},
{NoFlag, 0xabababab, 0xffff8002},
{NoFlag, 0xabababab, 0xffff8003},
{NoFlag, 0xabababab, 0xffffff80},
{NoFlag, 0xabababab, 0xffffff81},
{NoFlag, 0xabababab, 0xffffff82},
{NoFlag, 0xabababab, 0xffffff83},
{NoFlag, 0xabababab, 0xffffffe0},
{NoFlag, 0xabababab, 0xfffffffd},
{NoFlag, 0xabababab, 0xfffffffe},
{NoFlag, 0xabababab, 0xffffffff}};
static const Inputs kRotations[] =
{{NoFlag, 0xabababab, 0x00000000}, {NoFlag, 0xabababab, 0x00000001},
{NoFlag, 0xabababab, 0x00000002}, {NoFlag, 0xabababab, 0x00000020},
{NoFlag, 0xabababab, 0x0000007d}, {NoFlag, 0xabababab, 0x0000007e},
{NoFlag, 0xabababab, 0x0000007f}, {NoFlag, 0xabababab, 0x00007ffd},
{NoFlag, 0xabababab, 0x00007ffe}, {NoFlag, 0xabababab, 0x00007fff},
{NoFlag, 0xabababab, 0x33333333}, {NoFlag, 0xabababab, 0x55555555},
{NoFlag, 0xabababab, 0x7ffffffd}, {NoFlag, 0xabababab, 0x7ffffffe},
{NoFlag, 0xabababab, 0x7fffffff}, {NoFlag, 0xabababab, 0x80000000},
{NoFlag, 0xabababab, 0x80000001}, {NoFlag, 0xabababab, 0xaaaaaaaa},
{NoFlag, 0xabababab, 0xcccccccc}, {NoFlag, 0xabababab, 0xffff8000},
{NoFlag, 0xabababab, 0xffff8001}, {NoFlag, 0xabababab, 0xffff8002},
{NoFlag, 0xabababab, 0xffff8003}, {NoFlag, 0xabababab, 0xffffff80},
{NoFlag, 0xabababab, 0xffffff81}, {NoFlag, 0xabababab, 0xffffff82},
{NoFlag, 0xabababab, 0xffffff83}, {NoFlag, 0xabababab, 0xffffffe0},
{NoFlag, 0xabababab, 0xfffffffd}, {NoFlag, 0xabababab, 0xfffffffe},
{NoFlag, 0xabababab, 0xffffffff}};
// A loop will be generated for each element of this array.
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -180,270 +180,143 @@ static const Inputs kCondition[] = {{NFlag, 0xabababab, 0xabababab},
{ZCVFlag, 0xabababab, 0xabababab},
{NZCVFlag, 0xabababab, 0xabababab}};
static const Inputs kRdIsRn[] = {{NoFlag, 0x00000000, 0x00000000},
{NoFlag, 0x00000001, 0x00000001},
{NoFlag, 0x00000002, 0x00000002},
{NoFlag, 0x00000020, 0x00000020},
{NoFlag, 0x0000007d, 0x0000007d},
{NoFlag, 0x0000007e, 0x0000007e},
{NoFlag, 0x0000007f, 0x0000007f},
{NoFlag, 0x00007ffd, 0x00007ffd},
{NoFlag, 0x00007ffe, 0x00007ffe},
{NoFlag, 0x00007fff, 0x00007fff},
{NoFlag, 0x33333333, 0x33333333},
{NoFlag, 0x55555555, 0x55555555},
{NoFlag, 0x7ffffffd, 0x7ffffffd},
{NoFlag, 0x7ffffffe, 0x7ffffffe},
{NoFlag, 0x7fffffff, 0x7fffffff},
{NoFlag, 0x80000000, 0x80000000},
{NoFlag, 0x80000001, 0x80000001},
{NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0xcccccccc, 0xcccccccc},
{NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0xffff8001, 0xffff8001},
{NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0xffff8003, 0xffff8003},
{NoFlag, 0xffffff80, 0xffffff80},
{NoFlag, 0xffffff81, 0xffffff81},
{NoFlag, 0xffffff82, 0xffffff82},
{NoFlag, 0xffffff83, 0xffffff83},
{NoFlag, 0xffffffe0, 0xffffffe0},
{NoFlag, 0xfffffffd, 0xfffffffd},
{NoFlag, 0xfffffffe, 0xfffffffe},
{NoFlag, 0xffffffff, 0xffffffff}};
static const Inputs kRdIsRn[] =
{{NoFlag, 0x00000000, 0x00000000}, {NoFlag, 0x00000001, 0x00000001},
{NoFlag, 0x00000002, 0x00000002}, {NoFlag, 0x00000020, 0x00000020},
{NoFlag, 0x0000007d, 0x0000007d}, {NoFlag, 0x0000007e, 0x0000007e},
{NoFlag, 0x0000007f, 0x0000007f}, {NoFlag, 0x00007ffd, 0x00007ffd},
{NoFlag, 0x00007ffe, 0x00007ffe}, {NoFlag, 0x00007fff, 0x00007fff},
{NoFlag, 0x33333333, 0x33333333}, {NoFlag, 0x55555555, 0x55555555},
{NoFlag, 0x7ffffffd, 0x7ffffffd}, {NoFlag, 0x7ffffffe, 0x7ffffffe},
{NoFlag, 0x7fffffff, 0x7fffffff}, {NoFlag, 0x80000000, 0x80000000},
{NoFlag, 0x80000001, 0x80000001}, {NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0xcccccccc, 0xcccccccc}, {NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0xffff8001, 0xffff8001}, {NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0xffff8003, 0xffff8003}, {NoFlag, 0xffffff80, 0xffffff80},
{NoFlag, 0xffffff81, 0xffffff81}, {NoFlag, 0xffffff82, 0xffffff82},
{NoFlag, 0xffffff83, 0xffffff83}, {NoFlag, 0xffffffe0, 0xffffffe0},
{NoFlag, 0xfffffffd, 0xfffffffd}, {NoFlag, 0xfffffffe, 0xfffffffe},
{NoFlag, 0xffffffff, 0xffffffff}};
static const Inputs kRdIsNotRn[] = {{NoFlag, 0x00000002, 0xcccccccc},
{NoFlag, 0x7ffffffd, 0x00007ffe},
{NoFlag, 0xffffff80, 0x00000020},
{NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0x33333333, 0xffffff82},
{NoFlag, 0xffff8001, 0x7ffffffe},
{NoFlag, 0xfffffffd, 0x00007ffe},
{NoFlag, 0xffffff80, 0x80000000},
{NoFlag, 0x00000001, 0x33333333},
{NoFlag, 0xcccccccc, 0x7ffffffe},
{NoFlag, 0x00000000, 0xcccccccc},
{NoFlag, 0x00000000, 0x55555555},
{NoFlag, 0xffffffff, 0xffffffff},
{NoFlag, 0x0000007e, 0xffff8002},
{NoFlag, 0x80000000, 0x7ffffffd},
{NoFlag, 0xffffff81, 0x0000007e},
{NoFlag, 0x0000007f, 0xffff8001},
{NoFlag, 0xffffffe0, 0x00007ffd},
{NoFlag, 0xffff8003, 0x00000002},
{NoFlag, 0xffffff83, 0x55555555},
{NoFlag, 0xffffff83, 0xffffff80},
{NoFlag, 0xffffff81, 0xffff8000},
{NoFlag, 0x00000020, 0x7ffffffe},
{NoFlag, 0xffffffe0, 0x00000000},
{NoFlag, 0x7fffffff, 0x0000007e},
{NoFlag, 0x80000001, 0xffffffff},
{NoFlag, 0x00000001, 0x80000001},
{NoFlag, 0x00000002, 0x0000007f},
{NoFlag, 0x7fffffff, 0xcccccccc},
{NoFlag, 0x80000001, 0x00007ffe},
{NoFlag, 0xffff8002, 0x0000007e},
{NoFlag, 0x00007ffe, 0xcccccccc},
{NoFlag, 0x80000000, 0xffff8002},
{NoFlag, 0xffffff83, 0x7ffffffe},
{NoFlag, 0xffff8001, 0x00000001},
{NoFlag, 0xffffff81, 0x00000020},
{NoFlag, 0xfffffffe, 0xffff8001},
{NoFlag, 0xffffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x55555555},
{NoFlag, 0x00000020, 0xffffff83},
{NoFlag, 0xffffff83, 0xffff8001},
{NoFlag, 0xffffff83, 0xffff8000},
{NoFlag, 0x00007fff, 0x00000002},
{NoFlag, 0x55555555, 0xffff8000},
{NoFlag, 0x80000001, 0xffffff81},
{NoFlag, 0x00000002, 0x00000000},
{NoFlag, 0x33333333, 0xffffff81},
{NoFlag, 0xffff8001, 0xffffff82},
{NoFlag, 0xcccccccc, 0xffff8003},
{NoFlag, 0xffff8003, 0x7ffffffd},
{NoFlag, 0x0000007d, 0x00007ffe},
{NoFlag, 0xffffff80, 0x0000007d},
{NoFlag, 0xaaaaaaaa, 0x00007ffd},
{NoFlag, 0x80000000, 0xffffff82},
{NoFlag, 0x00000002, 0x7ffffffe},
{NoFlag, 0x00000002, 0xffffff83},
{NoFlag, 0x55555555, 0x00000002},
{NoFlag, 0xffffffff, 0xffffff82},
{NoFlag, 0xaaaaaaaa, 0x00000020},
{NoFlag, 0x00000001, 0xffffff82},
{NoFlag, 0x0000007f, 0xffffff82},
{NoFlag, 0x7ffffffd, 0xaaaaaaaa},
{NoFlag, 0x00007ffe, 0x00000001},
{NoFlag, 0xfffffffd, 0xffffffe0},
{NoFlag, 0xffffff81, 0xffffff83},
{NoFlag, 0x0000007d, 0x00000000},
{NoFlag, 0x0000007d, 0xffff8000},
{NoFlag, 0xffffff81, 0x7fffffff},
{NoFlag, 0xffffffff, 0x80000000},
{NoFlag, 0x00000000, 0x00000001},
{NoFlag, 0x55555555, 0xffffff82},
{NoFlag, 0x00007ffe, 0x00007ffe},
{NoFlag, 0x80000001, 0xfffffffd},
{NoFlag, 0x00007fff, 0x33333333},
{NoFlag, 0x00007fff, 0x80000000},
{NoFlag, 0xcccccccc, 0x00007fff},
{NoFlag, 0xfffffffe, 0xffffffe0},
{NoFlag, 0x7ffffffe, 0x0000007f},
{NoFlag, 0x00007ffd, 0xffff8001},
{NoFlag, 0x00000002, 0x00000001},
{NoFlag, 0x80000000, 0xffffffff},
{NoFlag, 0xffffff83, 0xcccccccc},
{NoFlag, 0xffff8002, 0x7ffffffe},
{NoFlag, 0xaaaaaaaa, 0x00000000},
{NoFlag, 0xffffff80, 0xcccccccc},
{NoFlag, 0x33333333, 0xffffff83},
{NoFlag, 0x0000007e, 0xffffffe0},
{NoFlag, 0x0000007e, 0x00007fff},
{NoFlag, 0x0000007f, 0x00000002},
{NoFlag, 0x7ffffffe, 0xcccccccc},
{NoFlag, 0x0000007d, 0xffffff80},
{NoFlag, 0x00007fff, 0x00000020},
{NoFlag, 0x7ffffffe, 0xfffffffe},
{NoFlag, 0xfffffffe, 0xffffff81},
{NoFlag, 0xffffffff, 0x0000007f},
{NoFlag, 0xffff8002, 0x7ffffffd},
{NoFlag, 0xffff8001, 0xfffffffe},
{NoFlag, 0x33333333, 0xffff8002},
{NoFlag, 0x00000000, 0xffffffff},
{NoFlag, 0x33333333, 0xffffff80},
{NoFlag, 0x0000007f, 0x00007fff},
{NoFlag, 0xffffffff, 0xffff8001},
{NoFlag, 0x7fffffff, 0xffff8002},
{NoFlag, 0x7ffffffd, 0xffffff83},
{NoFlag, 0x7fffffff, 0x0000007f},
{NoFlag, 0xffffff83, 0xfffffffe},
{NoFlag, 0x7ffffffe, 0xffff8003},
{NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0x80000001, 0x0000007f},
{NoFlag, 0x00000020, 0x00000002},
{NoFlag, 0xffffff82, 0xffff8001},
{NoFlag, 0xffffffff, 0x00000001},
{NoFlag, 0xffffff80, 0xffff8002},
{NoFlag, 0xffff8003, 0x7fffffff},
{NoFlag, 0xffffffff, 0xffff8000},
{NoFlag, 0xffff8002, 0x00007ffd},
{NoFlag, 0x00000020, 0xffffff81},
{NoFlag, 0x00000001, 0x55555555},
{NoFlag, 0x7ffffffe, 0x00000020},
{NoFlag, 0x80000000, 0x00000001},
{NoFlag, 0x00007ffd, 0xffff8002},
{NoFlag, 0x7fffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x00007ffd},
{NoFlag, 0x00000000, 0xfffffffd},
{NoFlag, 0xffff8003, 0xffffff80},
{NoFlag, 0x80000001, 0xffffff80},
{NoFlag, 0xffffffff, 0xffff8002},
{NoFlag, 0x00007ffe, 0xffff8002},
{NoFlag, 0xffffff80, 0x00007ffe},
{NoFlag, 0x80000001, 0xffff8001},
{NoFlag, 0x0000007f, 0xffffff80},
{NoFlag, 0xffffff81, 0x80000000},
{NoFlag, 0x00007fff, 0x00007ffe},
{NoFlag, 0x33333333, 0xffff8000},
{NoFlag, 0x33333333, 0x00007fff},
{NoFlag, 0x00000000, 0x0000007d},
{NoFlag, 0x80000001, 0x00000000},
{NoFlag, 0xffffffff, 0x55555555},
{NoFlag, 0x80000001, 0x80000000},
{NoFlag, 0xffffffff, 0xffffff80},
{NoFlag, 0xffffff81, 0xffff8003},
{NoFlag, 0x55555555, 0x80000001},
{NoFlag, 0x7fffffff, 0xffff8001},
{NoFlag, 0xffffff83, 0x00000002},
{NoFlag, 0x0000007e, 0xffffff81},
{NoFlag, 0x80000000, 0xffff8001},
{NoFlag, 0xffffff80, 0xfffffffe},
{NoFlag, 0x0000007e, 0xfffffffd},
{NoFlag, 0xffffffe0, 0xffffffff},
{NoFlag, 0x55555555, 0x80000000},
{NoFlag, 0x0000007d, 0x80000001},
{NoFlag, 0xffffffe0, 0x7ffffffd},
{NoFlag, 0x00000000, 0x00000000},
{NoFlag, 0x55555555, 0x00000001},
{NoFlag, 0x00007ffd, 0x7fffffff},
{NoFlag, 0x55555555, 0xffffffff},
{NoFlag, 0xffff8003, 0x00007fff},
{NoFlag, 0xffffff82, 0x00007fff},
{NoFlag, 0x33333333, 0x55555555},
{NoFlag, 0x00000020, 0x33333333},
{NoFlag, 0x7ffffffe, 0xfffffffd},
{NoFlag, 0x7ffffffe, 0x00000001},
{NoFlag, 0xffffff83, 0xffffffe0},
{NoFlag, 0xfffffffe, 0xaaaaaaaa},
{NoFlag, 0xffff8002, 0x33333333},
{NoFlag, 0xffff8002, 0xffff8003},
{NoFlag, 0x33333333, 0x7fffffff},
{NoFlag, 0xfffffffd, 0xffffff83},
{NoFlag, 0x00000000, 0xffff8000},
{NoFlag, 0xffffff82, 0x55555555},
{NoFlag, 0xffffff82, 0xffffff81},
{NoFlag, 0xcccccccc, 0xfffffffe},
{NoFlag, 0xfffffffd, 0x7fffffff},
{NoFlag, 0x00007fff, 0x7fffffff},
{NoFlag, 0xffffff83, 0xffff8003},
{NoFlag, 0xfffffffe, 0xffffffff},
{NoFlag, 0x7ffffffd, 0x00007ffd},
{NoFlag, 0x7ffffffd, 0x00007fff},
{NoFlag, 0x00007ffd, 0xffffffff},
{NoFlag, 0x00000001, 0xffff8003},
{NoFlag, 0xffffff80, 0xfffffffd},
{NoFlag, 0x33333333, 0x80000000},
{NoFlag, 0xffff8001, 0x00000020},
{NoFlag, 0xcccccccc, 0x00000002},
{NoFlag, 0x00000000, 0x00000002},
{NoFlag, 0x0000007d, 0x00007fff},
{NoFlag, 0xcccccccc, 0x00000001},
{NoFlag, 0xffffff83, 0x00007fff},
{NoFlag, 0x80000001, 0x00000020},
{NoFlag, 0xffff8003, 0xffffffe0},
{NoFlag, 0x00007ffd, 0xaaaaaaaa},
{NoFlag, 0x33333333, 0xffff8001},
{NoFlag, 0xffffff83, 0x80000001},
{NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0x00007ffe, 0xffff8001},
{NoFlag, 0x7ffffffd, 0x00000000},
{NoFlag, 0x00007ffe, 0x33333333},
{NoFlag, 0xffff8001, 0xffffff80},
{NoFlag, 0xfffffffe, 0x55555555},
{NoFlag, 0xffffff82, 0xffffffff}};
static const Inputs kRdIsNotRn[] =
{{NoFlag, 0x00000002, 0xcccccccc}, {NoFlag, 0x7ffffffd, 0x00007ffe},
{NoFlag, 0xffffff80, 0x00000020}, {NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0x33333333, 0xffffff82}, {NoFlag, 0xffff8001, 0x7ffffffe},
{NoFlag, 0xfffffffd, 0x00007ffe}, {NoFlag, 0xffffff80, 0x80000000},
{NoFlag, 0x00000001, 0x33333333}, {NoFlag, 0xcccccccc, 0x7ffffffe},
{NoFlag, 0x00000000, 0xcccccccc}, {NoFlag, 0x00000000, 0x55555555},
{NoFlag, 0xffffffff, 0xffffffff}, {NoFlag, 0x0000007e, 0xffff8002},
{NoFlag, 0x80000000, 0x7ffffffd}, {NoFlag, 0xffffff81, 0x0000007e},
{NoFlag, 0x0000007f, 0xffff8001}, {NoFlag, 0xffffffe0, 0x00007ffd},
{NoFlag, 0xffff8003, 0x00000002}, {NoFlag, 0xffffff83, 0x55555555},
{NoFlag, 0xffffff83, 0xffffff80}, {NoFlag, 0xffffff81, 0xffff8000},
{NoFlag, 0x00000020, 0x7ffffffe}, {NoFlag, 0xffffffe0, 0x00000000},
{NoFlag, 0x7fffffff, 0x0000007e}, {NoFlag, 0x80000001, 0xffffffff},
{NoFlag, 0x00000001, 0x80000001}, {NoFlag, 0x00000002, 0x0000007f},
{NoFlag, 0x7fffffff, 0xcccccccc}, {NoFlag, 0x80000001, 0x00007ffe},
{NoFlag, 0xffff8002, 0x0000007e}, {NoFlag, 0x00007ffe, 0xcccccccc},
{NoFlag, 0x80000000, 0xffff8002}, {NoFlag, 0xffffff83, 0x7ffffffe},
{NoFlag, 0xffff8001, 0x00000001}, {NoFlag, 0xffffff81, 0x00000020},
{NoFlag, 0xfffffffe, 0xffff8001}, {NoFlag, 0xffffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x55555555}, {NoFlag, 0x00000020, 0xffffff83},
{NoFlag, 0xffffff83, 0xffff8001}, {NoFlag, 0xffffff83, 0xffff8000},
{NoFlag, 0x00007fff, 0x00000002}, {NoFlag, 0x55555555, 0xffff8000},
{NoFlag, 0x80000001, 0xffffff81}, {NoFlag, 0x00000002, 0x00000000},
{NoFlag, 0x33333333, 0xffffff81}, {NoFlag, 0xffff8001, 0xffffff82},
{NoFlag, 0xcccccccc, 0xffff8003}, {NoFlag, 0xffff8003, 0x7ffffffd},
{NoFlag, 0x0000007d, 0x00007ffe}, {NoFlag, 0xffffff80, 0x0000007d},
{NoFlag, 0xaaaaaaaa, 0x00007ffd}, {NoFlag, 0x80000000, 0xffffff82},
{NoFlag, 0x00000002, 0x7ffffffe}, {NoFlag, 0x00000002, 0xffffff83},
{NoFlag, 0x55555555, 0x00000002}, {NoFlag, 0xffffffff, 0xffffff82},
{NoFlag, 0xaaaaaaaa, 0x00000020}, {NoFlag, 0x00000001, 0xffffff82},
{NoFlag, 0x0000007f, 0xffffff82}, {NoFlag, 0x7ffffffd, 0xaaaaaaaa},
{NoFlag, 0x00007ffe, 0x00000001}, {NoFlag, 0xfffffffd, 0xffffffe0},
{NoFlag, 0xffffff81, 0xffffff83}, {NoFlag, 0x0000007d, 0x00000000},
{NoFlag, 0x0000007d, 0xffff8000}, {NoFlag, 0xffffff81, 0x7fffffff},
{NoFlag, 0xffffffff, 0x80000000}, {NoFlag, 0x00000000, 0x00000001},
{NoFlag, 0x55555555, 0xffffff82}, {NoFlag, 0x00007ffe, 0x00007ffe},
{NoFlag, 0x80000001, 0xfffffffd}, {NoFlag, 0x00007fff, 0x33333333},
{NoFlag, 0x00007fff, 0x80000000}, {NoFlag, 0xcccccccc, 0x00007fff},
{NoFlag, 0xfffffffe, 0xffffffe0}, {NoFlag, 0x7ffffffe, 0x0000007f},
{NoFlag, 0x00007ffd, 0xffff8001}, {NoFlag, 0x00000002, 0x00000001},
{NoFlag, 0x80000000, 0xffffffff}, {NoFlag, 0xffffff83, 0xcccccccc},
{NoFlag, 0xffff8002, 0x7ffffffe}, {NoFlag, 0xaaaaaaaa, 0x00000000},
{NoFlag, 0xffffff80, 0xcccccccc}, {NoFlag, 0x33333333, 0xffffff83},
{NoFlag, 0x0000007e, 0xffffffe0}, {NoFlag, 0x0000007e, 0x00007fff},
{NoFlag, 0x0000007f, 0x00000002}, {NoFlag, 0x7ffffffe, 0xcccccccc},
{NoFlag, 0x0000007d, 0xffffff80}, {NoFlag, 0x00007fff, 0x00000020},
{NoFlag, 0x7ffffffe, 0xfffffffe}, {NoFlag, 0xfffffffe, 0xffffff81},
{NoFlag, 0xffffffff, 0x0000007f}, {NoFlag, 0xffff8002, 0x7ffffffd},
{NoFlag, 0xffff8001, 0xfffffffe}, {NoFlag, 0x33333333, 0xffff8002},
{NoFlag, 0x00000000, 0xffffffff}, {NoFlag, 0x33333333, 0xffffff80},
{NoFlag, 0x0000007f, 0x00007fff}, {NoFlag, 0xffffffff, 0xffff8001},
{NoFlag, 0x7fffffff, 0xffff8002}, {NoFlag, 0x7ffffffd, 0xffffff83},
{NoFlag, 0x7fffffff, 0x0000007f}, {NoFlag, 0xffffff83, 0xfffffffe},
{NoFlag, 0x7ffffffe, 0xffff8003}, {NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0x80000001, 0x0000007f}, {NoFlag, 0x00000020, 0x00000002},
{NoFlag, 0xffffff82, 0xffff8001}, {NoFlag, 0xffffffff, 0x00000001},
{NoFlag, 0xffffff80, 0xffff8002}, {NoFlag, 0xffff8003, 0x7fffffff},
{NoFlag, 0xffffffff, 0xffff8000}, {NoFlag, 0xffff8002, 0x00007ffd},
{NoFlag, 0x00000020, 0xffffff81}, {NoFlag, 0x00000001, 0x55555555},
{NoFlag, 0x7ffffffe, 0x00000020}, {NoFlag, 0x80000000, 0x00000001},
{NoFlag, 0x00007ffd, 0xffff8002}, {NoFlag, 0x7fffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x00007ffd}, {NoFlag, 0x00000000, 0xfffffffd},
{NoFlag, 0xffff8003, 0xffffff80}, {NoFlag, 0x80000001, 0xffffff80},
{NoFlag, 0xffffffff, 0xffff8002}, {NoFlag, 0x00007ffe, 0xffff8002},
{NoFlag, 0xffffff80, 0x00007ffe}, {NoFlag, 0x80000001, 0xffff8001},
{NoFlag, 0x0000007f, 0xffffff80}, {NoFlag, 0xffffff81, 0x80000000},
{NoFlag, 0x00007fff, 0x00007ffe}, {NoFlag, 0x33333333, 0xffff8000},
{NoFlag, 0x33333333, 0x00007fff}, {NoFlag, 0x00000000, 0x0000007d},
{NoFlag, 0x80000001, 0x00000000}, {NoFlag, 0xffffffff, 0x55555555},
{NoFlag, 0x80000001, 0x80000000}, {NoFlag, 0xffffffff, 0xffffff80},
{NoFlag, 0xffffff81, 0xffff8003}, {NoFlag, 0x55555555, 0x80000001},
{NoFlag, 0x7fffffff, 0xffff8001}, {NoFlag, 0xffffff83, 0x00000002},
{NoFlag, 0x0000007e, 0xffffff81}, {NoFlag, 0x80000000, 0xffff8001},
{NoFlag, 0xffffff80, 0xfffffffe}, {NoFlag, 0x0000007e, 0xfffffffd},
{NoFlag, 0xffffffe0, 0xffffffff}, {NoFlag, 0x55555555, 0x80000000},
{NoFlag, 0x0000007d, 0x80000001}, {NoFlag, 0xffffffe0, 0x7ffffffd},
{NoFlag, 0x00000000, 0x00000000}, {NoFlag, 0x55555555, 0x00000001},
{NoFlag, 0x00007ffd, 0x7fffffff}, {NoFlag, 0x55555555, 0xffffffff},
{NoFlag, 0xffff8003, 0x00007fff}, {NoFlag, 0xffffff82, 0x00007fff},
{NoFlag, 0x33333333, 0x55555555}, {NoFlag, 0x00000020, 0x33333333},
{NoFlag, 0x7ffffffe, 0xfffffffd}, {NoFlag, 0x7ffffffe, 0x00000001},
{NoFlag, 0xffffff83, 0xffffffe0}, {NoFlag, 0xfffffffe, 0xaaaaaaaa},
{NoFlag, 0xffff8002, 0x33333333}, {NoFlag, 0xffff8002, 0xffff8003},
{NoFlag, 0x33333333, 0x7fffffff}, {NoFlag, 0xfffffffd, 0xffffff83},
{NoFlag, 0x00000000, 0xffff8000}, {NoFlag, 0xffffff82, 0x55555555},
{NoFlag, 0xffffff82, 0xffffff81}, {NoFlag, 0xcccccccc, 0xfffffffe},
{NoFlag, 0xfffffffd, 0x7fffffff}, {NoFlag, 0x00007fff, 0x7fffffff},
{NoFlag, 0xffffff83, 0xffff8003}, {NoFlag, 0xfffffffe, 0xffffffff},
{NoFlag, 0x7ffffffd, 0x00007ffd}, {NoFlag, 0x7ffffffd, 0x00007fff},
{NoFlag, 0x00007ffd, 0xffffffff}, {NoFlag, 0x00000001, 0xffff8003},
{NoFlag, 0xffffff80, 0xfffffffd}, {NoFlag, 0x33333333, 0x80000000},
{NoFlag, 0xffff8001, 0x00000020}, {NoFlag, 0xcccccccc, 0x00000002},
{NoFlag, 0x00000000, 0x00000002}, {NoFlag, 0x0000007d, 0x00007fff},
{NoFlag, 0xcccccccc, 0x00000001}, {NoFlag, 0xffffff83, 0x00007fff},
{NoFlag, 0x80000001, 0x00000020}, {NoFlag, 0xffff8003, 0xffffffe0},
{NoFlag, 0x00007ffd, 0xaaaaaaaa}, {NoFlag, 0x33333333, 0xffff8001},
{NoFlag, 0xffffff83, 0x80000001}, {NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0x00007ffe, 0xffff8001}, {NoFlag, 0x7ffffffd, 0x00000000},
{NoFlag, 0x00007ffe, 0x33333333}, {NoFlag, 0xffff8001, 0xffffff80},
{NoFlag, 0xfffffffe, 0x55555555}, {NoFlag, 0xffffff82, 0xffffffff}};
static const Inputs kShiftTypes[] = {{NoFlag, 0xabababab, 0x00000000},
{NoFlag, 0xabababab, 0x00000001},
{NoFlag, 0xabababab, 0x00000002},
{NoFlag, 0xabababab, 0x00000020},
{NoFlag, 0xabababab, 0x0000007d},
{NoFlag, 0xabababab, 0x0000007e},
{NoFlag, 0xabababab, 0x0000007f},
{NoFlag, 0xabababab, 0x00007ffd},
{NoFlag, 0xabababab, 0x00007ffe},
{NoFlag, 0xabababab, 0x00007fff},
{NoFlag, 0xabababab, 0x33333333},
{NoFlag, 0xabababab, 0x55555555},
{NoFlag, 0xabababab, 0x7ffffffd},
{NoFlag, 0xabababab, 0x7ffffffe},
{NoFlag, 0xabababab, 0x7fffffff},
{NoFlag, 0xabababab, 0x80000000},
{NoFlag, 0xabababab, 0x80000001},
{NoFlag, 0xabababab, 0xaaaaaaaa},
{NoFlag, 0xabababab, 0xcccccccc},
{NoFlag, 0xabababab, 0xffff8000},
{NoFlag, 0xabababab, 0xffff8001},
{NoFlag, 0xabababab, 0xffff8002},
{NoFlag, 0xabababab, 0xffff8003},
{NoFlag, 0xabababab, 0xffffff80},
{NoFlag, 0xabababab, 0xffffff81},
{NoFlag, 0xabababab, 0xffffff82},
{NoFlag, 0xabababab, 0xffffff83},
{NoFlag, 0xabababab, 0xffffffe0},
{NoFlag, 0xabababab, 0xfffffffd},
{NoFlag, 0xabababab, 0xfffffffe},
{NoFlag, 0xabababab, 0xffffffff}};
static const Inputs kShiftTypes[] =
{{NoFlag, 0xabababab, 0x00000000}, {NoFlag, 0xabababab, 0x00000001},
{NoFlag, 0xabababab, 0x00000002}, {NoFlag, 0xabababab, 0x00000020},
{NoFlag, 0xabababab, 0x0000007d}, {NoFlag, 0xabababab, 0x0000007e},
{NoFlag, 0xabababab, 0x0000007f}, {NoFlag, 0xabababab, 0x00007ffd},
{NoFlag, 0xabababab, 0x00007ffe}, {NoFlag, 0xabababab, 0x00007fff},
{NoFlag, 0xabababab, 0x33333333}, {NoFlag, 0xabababab, 0x55555555},
{NoFlag, 0xabababab, 0x7ffffffd}, {NoFlag, 0xabababab, 0x7ffffffe},
{NoFlag, 0xabababab, 0x7fffffff}, {NoFlag, 0xabababab, 0x80000000},
{NoFlag, 0xabababab, 0x80000001}, {NoFlag, 0xabababab, 0xaaaaaaaa},
{NoFlag, 0xabababab, 0xcccccccc}, {NoFlag, 0xabababab, 0xffff8000},
{NoFlag, 0xabababab, 0xffff8001}, {NoFlag, 0xabababab, 0xffff8002},
{NoFlag, 0xabababab, 0xffff8003}, {NoFlag, 0xabababab, 0xffffff80},
{NoFlag, 0xabababab, 0xffffff81}, {NoFlag, 0xabababab, 0xffffff82},
{NoFlag, 0xabababab, 0xffffff83}, {NoFlag, 0xabababab, 0xffffffe0},
{NoFlag, 0xabababab, 0xfffffffd}, {NoFlag, 0xabababab, 0xfffffffe},
{NoFlag, 0xabababab, 0xffffffff}};
// A loop will be generated for each element of this array.
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -180,270 +180,143 @@ static const Inputs kCondition[] = {{NFlag, 0xabababab, 0xabababab},
{ZCVFlag, 0xabababab, 0xabababab},
{NZCVFlag, 0xabababab, 0xabababab}};
static const Inputs kRdIsRn[] = {{NoFlag, 0x00000000, 0x00000000},
{NoFlag, 0x00000001, 0x00000001},
{NoFlag, 0x00000002, 0x00000002},
{NoFlag, 0x00000020, 0x00000020},
{NoFlag, 0x0000007d, 0x0000007d},
{NoFlag, 0x0000007e, 0x0000007e},
{NoFlag, 0x0000007f, 0x0000007f},
{NoFlag, 0x00007ffd, 0x00007ffd},
{NoFlag, 0x00007ffe, 0x00007ffe},
{NoFlag, 0x00007fff, 0x00007fff},
{NoFlag, 0x33333333, 0x33333333},
{NoFlag, 0x55555555, 0x55555555},
{NoFlag, 0x7ffffffd, 0x7ffffffd},
{NoFlag, 0x7ffffffe, 0x7ffffffe},
{NoFlag, 0x7fffffff, 0x7fffffff},
{NoFlag, 0x80000000, 0x80000000},
{NoFlag, 0x80000001, 0x80000001},
{NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0xcccccccc, 0xcccccccc},
{NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0xffff8001, 0xffff8001},
{NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0xffff8003, 0xffff8003},
{NoFlag, 0xffffff80, 0xffffff80},
{NoFlag, 0xffffff81, 0xffffff81},
{NoFlag, 0xffffff82, 0xffffff82},
{NoFlag, 0xffffff83, 0xffffff83},
{NoFlag, 0xffffffe0, 0xffffffe0},
{NoFlag, 0xfffffffd, 0xfffffffd},
{NoFlag, 0xfffffffe, 0xfffffffe},
{NoFlag, 0xffffffff, 0xffffffff}};
static const Inputs kRdIsRn[] =
{{NoFlag, 0x00000000, 0x00000000}, {NoFlag, 0x00000001, 0x00000001},
{NoFlag, 0x00000002, 0x00000002}, {NoFlag, 0x00000020, 0x00000020},
{NoFlag, 0x0000007d, 0x0000007d}, {NoFlag, 0x0000007e, 0x0000007e},
{NoFlag, 0x0000007f, 0x0000007f}, {NoFlag, 0x00007ffd, 0x00007ffd},
{NoFlag, 0x00007ffe, 0x00007ffe}, {NoFlag, 0x00007fff, 0x00007fff},
{NoFlag, 0x33333333, 0x33333333}, {NoFlag, 0x55555555, 0x55555555},
{NoFlag, 0x7ffffffd, 0x7ffffffd}, {NoFlag, 0x7ffffffe, 0x7ffffffe},
{NoFlag, 0x7fffffff, 0x7fffffff}, {NoFlag, 0x80000000, 0x80000000},
{NoFlag, 0x80000001, 0x80000001}, {NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0xcccccccc, 0xcccccccc}, {NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0xffff8001, 0xffff8001}, {NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0xffff8003, 0xffff8003}, {NoFlag, 0xffffff80, 0xffffff80},
{NoFlag, 0xffffff81, 0xffffff81}, {NoFlag, 0xffffff82, 0xffffff82},
{NoFlag, 0xffffff83, 0xffffff83}, {NoFlag, 0xffffffe0, 0xffffffe0},
{NoFlag, 0xfffffffd, 0xfffffffd}, {NoFlag, 0xfffffffe, 0xfffffffe},
{NoFlag, 0xffffffff, 0xffffffff}};
static const Inputs kRdIsNotRn[] = {{NoFlag, 0x00000002, 0xcccccccc},
{NoFlag, 0x7ffffffd, 0x00007ffe},
{NoFlag, 0xffffff80, 0x00000020},
{NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0x33333333, 0xffffff82},
{NoFlag, 0xffff8001, 0x7ffffffe},
{NoFlag, 0xfffffffd, 0x00007ffe},
{NoFlag, 0xffffff80, 0x80000000},
{NoFlag, 0x00000001, 0x33333333},
{NoFlag, 0xcccccccc, 0x7ffffffe},
{NoFlag, 0x00000000, 0xcccccccc},
{NoFlag, 0x00000000, 0x55555555},
{NoFlag, 0xffffffff, 0xffffffff},
{NoFlag, 0x0000007e, 0xffff8002},
{NoFlag, 0x80000000, 0x7ffffffd},
{NoFlag, 0xffffff81, 0x0000007e},
{NoFlag, 0x0000007f, 0xffff8001},
{NoFlag, 0xffffffe0, 0x00007ffd},
{NoFlag, 0xffff8003, 0x00000002},
{NoFlag, 0xffffff83, 0x55555555},
{NoFlag, 0xffffff83, 0xffffff80},
{NoFlag, 0xffffff81, 0xffff8000},
{NoFlag, 0x00000020, 0x7ffffffe},
{NoFlag, 0xffffffe0, 0x00000000},
{NoFlag, 0x7fffffff, 0x0000007e},
{NoFlag, 0x80000001, 0xffffffff},
{NoFlag, 0x00000001, 0x80000001},
{NoFlag, 0x00000002, 0x0000007f},
{NoFlag, 0x7fffffff, 0xcccccccc},
{NoFlag, 0x80000001, 0x00007ffe},
{NoFlag, 0xffff8002, 0x0000007e},
{NoFlag, 0x00007ffe, 0xcccccccc},
{NoFlag, 0x80000000, 0xffff8002},
{NoFlag, 0xffffff83, 0x7ffffffe},
{NoFlag, 0xffff8001, 0x00000001},
{NoFlag, 0xffffff81, 0x00000020},
{NoFlag, 0xfffffffe, 0xffff8001},
{NoFlag, 0xffffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x55555555},
{NoFlag, 0x00000020, 0xffffff83},
{NoFlag, 0xffffff83, 0xffff8001},
{NoFlag, 0xffffff83, 0xffff8000},
{NoFlag, 0x00007fff, 0x00000002},
{NoFlag, 0x55555555, 0xffff8000},
{NoFlag, 0x80000001, 0xffffff81},
{NoFlag, 0x00000002, 0x00000000},
{NoFlag, 0x33333333, 0xffffff81},
{NoFlag, 0xffff8001, 0xffffff82},
{NoFlag, 0xcccccccc, 0xffff8003},
{NoFlag, 0xffff8003, 0x7ffffffd},
{NoFlag, 0x0000007d, 0x00007ffe},
{NoFlag, 0xffffff80, 0x0000007d},
{NoFlag, 0xaaaaaaaa, 0x00007ffd},
{NoFlag, 0x80000000, 0xffffff82},
{NoFlag, 0x00000002, 0x7ffffffe},
{NoFlag, 0x00000002, 0xffffff83},
{NoFlag, 0x55555555, 0x00000002},
{NoFlag, 0xffffffff, 0xffffff82},
{NoFlag, 0xaaaaaaaa, 0x00000020},
{NoFlag, 0x00000001, 0xffffff82},
{NoFlag, 0x0000007f, 0xffffff82},
{NoFlag, 0x7ffffffd, 0xaaaaaaaa},
{NoFlag, 0x00007ffe, 0x00000001},
{NoFlag, 0xfffffffd, 0xffffffe0},
{NoFlag, 0xffffff81, 0xffffff83},
{NoFlag, 0x0000007d, 0x00000000},
{NoFlag, 0x0000007d, 0xffff8000},
{NoFlag, 0xffffff81, 0x7fffffff},
{NoFlag, 0xffffffff, 0x80000000},
{NoFlag, 0x00000000, 0x00000001},
{NoFlag, 0x55555555, 0xffffff82},
{NoFlag, 0x00007ffe, 0x00007ffe},
{NoFlag, 0x80000001, 0xfffffffd},
{NoFlag, 0x00007fff, 0x33333333},
{NoFlag, 0x00007fff, 0x80000000},
{NoFlag, 0xcccccccc, 0x00007fff},
{NoFlag, 0xfffffffe, 0xffffffe0},
{NoFlag, 0x7ffffffe, 0x0000007f},
{NoFlag, 0x00007ffd, 0xffff8001},
{NoFlag, 0x00000002, 0x00000001},
{NoFlag, 0x80000000, 0xffffffff},
{NoFlag, 0xffffff83, 0xcccccccc},
{NoFlag, 0xffff8002, 0x7ffffffe},
{NoFlag, 0xaaaaaaaa, 0x00000000},
{NoFlag, 0xffffff80, 0xcccccccc},
{NoFlag, 0x33333333, 0xffffff83},
{NoFlag, 0x0000007e, 0xffffffe0},
{NoFlag, 0x0000007e, 0x00007fff},
{NoFlag, 0x0000007f, 0x00000002},
{NoFlag, 0x7ffffffe, 0xcccccccc},
{NoFlag, 0x0000007d, 0xffffff80},
{NoFlag, 0x00007fff, 0x00000020},
{NoFlag, 0x7ffffffe, 0xfffffffe},
{NoFlag, 0xfffffffe, 0xffffff81},
{NoFlag, 0xffffffff, 0x0000007f},
{NoFlag, 0xffff8002, 0x7ffffffd},
{NoFlag, 0xffff8001, 0xfffffffe},
{NoFlag, 0x33333333, 0xffff8002},
{NoFlag, 0x00000000, 0xffffffff},
{NoFlag, 0x33333333, 0xffffff80},
{NoFlag, 0x0000007f, 0x00007fff},
{NoFlag, 0xffffffff, 0xffff8001},
{NoFlag, 0x7fffffff, 0xffff8002},
{NoFlag, 0x7ffffffd, 0xffffff83},
{NoFlag, 0x7fffffff, 0x0000007f},
{NoFlag, 0xffffff83, 0xfffffffe},
{NoFlag, 0x7ffffffe, 0xffff8003},
{NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0x80000001, 0x0000007f},
{NoFlag, 0x00000020, 0x00000002},
{NoFlag, 0xffffff82, 0xffff8001},
{NoFlag, 0xffffffff, 0x00000001},
{NoFlag, 0xffffff80, 0xffff8002},
{NoFlag, 0xffff8003, 0x7fffffff},
{NoFlag, 0xffffffff, 0xffff8000},
{NoFlag, 0xffff8002, 0x00007ffd},
{NoFlag, 0x00000020, 0xffffff81},
{NoFlag, 0x00000001, 0x55555555},
{NoFlag, 0x7ffffffe, 0x00000020},
{NoFlag, 0x80000000, 0x00000001},
{NoFlag, 0x00007ffd, 0xffff8002},
{NoFlag, 0x7fffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x00007ffd},
{NoFlag, 0x00000000, 0xfffffffd},
{NoFlag, 0xffff8003, 0xffffff80},
{NoFlag, 0x80000001, 0xffffff80},
{NoFlag, 0xffffffff, 0xffff8002},
{NoFlag, 0x00007ffe, 0xffff8002},
{NoFlag, 0xffffff80, 0x00007ffe},
{NoFlag, 0x80000001, 0xffff8001},
{NoFlag, 0x0000007f, 0xffffff80},
{NoFlag, 0xffffff81, 0x80000000},
{NoFlag, 0x00007fff, 0x00007ffe},
{NoFlag, 0x33333333, 0xffff8000},
{NoFlag, 0x33333333, 0x00007fff},
{NoFlag, 0x00000000, 0x0000007d},
{NoFlag, 0x80000001, 0x00000000},
{NoFlag, 0xffffffff, 0x55555555},
{NoFlag, 0x80000001, 0x80000000},
{NoFlag, 0xffffffff, 0xffffff80},
{NoFlag, 0xffffff81, 0xffff8003},
{NoFlag, 0x55555555, 0x80000001},
{NoFlag, 0x7fffffff, 0xffff8001},
{NoFlag, 0xffffff83, 0x00000002},
{NoFlag, 0x0000007e, 0xffffff81},
{NoFlag, 0x80000000, 0xffff8001},
{NoFlag, 0xffffff80, 0xfffffffe},
{NoFlag, 0x0000007e, 0xfffffffd},
{NoFlag, 0xffffffe0, 0xffffffff},
{NoFlag, 0x55555555, 0x80000000},
{NoFlag, 0x0000007d, 0x80000001},
{NoFlag, 0xffffffe0, 0x7ffffffd},
{NoFlag, 0x00000000, 0x00000000},
{NoFlag, 0x55555555, 0x00000001},
{NoFlag, 0x00007ffd, 0x7fffffff},
{NoFlag, 0x55555555, 0xffffffff},
{NoFlag, 0xffff8003, 0x00007fff},
{NoFlag, 0xffffff82, 0x00007fff},
{NoFlag, 0x33333333, 0x55555555},
{NoFlag, 0x00000020, 0x33333333},
{NoFlag, 0x7ffffffe, 0xfffffffd},
{NoFlag, 0x7ffffffe, 0x00000001},
{NoFlag, 0xffffff83, 0xffffffe0},
{NoFlag, 0xfffffffe, 0xaaaaaaaa},
{NoFlag, 0xffff8002, 0x33333333},
{NoFlag, 0xffff8002, 0xffff8003},
{NoFlag, 0x33333333, 0x7fffffff},
{NoFlag, 0xfffffffd, 0xffffff83},
{NoFlag, 0x00000000, 0xffff8000},
{NoFlag, 0xffffff82, 0x55555555},
{NoFlag, 0xffffff82, 0xffffff81},
{NoFlag, 0xcccccccc, 0xfffffffe},
{NoFlag, 0xfffffffd, 0x7fffffff},
{NoFlag, 0x00007fff, 0x7fffffff},
{NoFlag, 0xffffff83, 0xffff8003},
{NoFlag, 0xfffffffe, 0xffffffff},
{NoFlag, 0x7ffffffd, 0x00007ffd},
{NoFlag, 0x7ffffffd, 0x00007fff},
{NoFlag, 0x00007ffd, 0xffffffff},
{NoFlag, 0x00000001, 0xffff8003},
{NoFlag, 0xffffff80, 0xfffffffd},
{NoFlag, 0x33333333, 0x80000000},
{NoFlag, 0xffff8001, 0x00000020},
{NoFlag, 0xcccccccc, 0x00000002},
{NoFlag, 0x00000000, 0x00000002},
{NoFlag, 0x0000007d, 0x00007fff},
{NoFlag, 0xcccccccc, 0x00000001},
{NoFlag, 0xffffff83, 0x00007fff},
{NoFlag, 0x80000001, 0x00000020},
{NoFlag, 0xffff8003, 0xffffffe0},
{NoFlag, 0x00007ffd, 0xaaaaaaaa},
{NoFlag, 0x33333333, 0xffff8001},
{NoFlag, 0xffffff83, 0x80000001},
{NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0x00007ffe, 0xffff8001},
{NoFlag, 0x7ffffffd, 0x00000000},
{NoFlag, 0x00007ffe, 0x33333333},
{NoFlag, 0xffff8001, 0xffffff80},
{NoFlag, 0xfffffffe, 0x55555555},
{NoFlag, 0xffffff82, 0xffffffff}};
static const Inputs kRdIsNotRn[] =
{{NoFlag, 0x00000002, 0xcccccccc}, {NoFlag, 0x7ffffffd, 0x00007ffe},
{NoFlag, 0xffffff80, 0x00000020}, {NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0x33333333, 0xffffff82}, {NoFlag, 0xffff8001, 0x7ffffffe},
{NoFlag, 0xfffffffd, 0x00007ffe}, {NoFlag, 0xffffff80, 0x80000000},
{NoFlag, 0x00000001, 0x33333333}, {NoFlag, 0xcccccccc, 0x7ffffffe},
{NoFlag, 0x00000000, 0xcccccccc}, {NoFlag, 0x00000000, 0x55555555},
{NoFlag, 0xffffffff, 0xffffffff}, {NoFlag, 0x0000007e, 0xffff8002},
{NoFlag, 0x80000000, 0x7ffffffd}, {NoFlag, 0xffffff81, 0x0000007e},
{NoFlag, 0x0000007f, 0xffff8001}, {NoFlag, 0xffffffe0, 0x00007ffd},
{NoFlag, 0xffff8003, 0x00000002}, {NoFlag, 0xffffff83, 0x55555555},
{NoFlag, 0xffffff83, 0xffffff80}, {NoFlag, 0xffffff81, 0xffff8000},
{NoFlag, 0x00000020, 0x7ffffffe}, {NoFlag, 0xffffffe0, 0x00000000},
{NoFlag, 0x7fffffff, 0x0000007e}, {NoFlag, 0x80000001, 0xffffffff},
{NoFlag, 0x00000001, 0x80000001}, {NoFlag, 0x00000002, 0x0000007f},
{NoFlag, 0x7fffffff, 0xcccccccc}, {NoFlag, 0x80000001, 0x00007ffe},
{NoFlag, 0xffff8002, 0x0000007e}, {NoFlag, 0x00007ffe, 0xcccccccc},
{NoFlag, 0x80000000, 0xffff8002}, {NoFlag, 0xffffff83, 0x7ffffffe},
{NoFlag, 0xffff8001, 0x00000001}, {NoFlag, 0xffffff81, 0x00000020},
{NoFlag, 0xfffffffe, 0xffff8001}, {NoFlag, 0xffffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x55555555}, {NoFlag, 0x00000020, 0xffffff83},
{NoFlag, 0xffffff83, 0xffff8001}, {NoFlag, 0xffffff83, 0xffff8000},
{NoFlag, 0x00007fff, 0x00000002}, {NoFlag, 0x55555555, 0xffff8000},
{NoFlag, 0x80000001, 0xffffff81}, {NoFlag, 0x00000002, 0x00000000},
{NoFlag, 0x33333333, 0xffffff81}, {NoFlag, 0xffff8001, 0xffffff82},
{NoFlag, 0xcccccccc, 0xffff8003}, {NoFlag, 0xffff8003, 0x7ffffffd},
{NoFlag, 0x0000007d, 0x00007ffe}, {NoFlag, 0xffffff80, 0x0000007d},
{NoFlag, 0xaaaaaaaa, 0x00007ffd}, {NoFlag, 0x80000000, 0xffffff82},
{NoFlag, 0x00000002, 0x7ffffffe}, {NoFlag, 0x00000002, 0xffffff83},
{NoFlag, 0x55555555, 0x00000002}, {NoFlag, 0xffffffff, 0xffffff82},
{NoFlag, 0xaaaaaaaa, 0x00000020}, {NoFlag, 0x00000001, 0xffffff82},
{NoFlag, 0x0000007f, 0xffffff82}, {NoFlag, 0x7ffffffd, 0xaaaaaaaa},
{NoFlag, 0x00007ffe, 0x00000001}, {NoFlag, 0xfffffffd, 0xffffffe0},
{NoFlag, 0xffffff81, 0xffffff83}, {NoFlag, 0x0000007d, 0x00000000},
{NoFlag, 0x0000007d, 0xffff8000}, {NoFlag, 0xffffff81, 0x7fffffff},
{NoFlag, 0xffffffff, 0x80000000}, {NoFlag, 0x00000000, 0x00000001},
{NoFlag, 0x55555555, 0xffffff82}, {NoFlag, 0x00007ffe, 0x00007ffe},
{NoFlag, 0x80000001, 0xfffffffd}, {NoFlag, 0x00007fff, 0x33333333},
{NoFlag, 0x00007fff, 0x80000000}, {NoFlag, 0xcccccccc, 0x00007fff},
{NoFlag, 0xfffffffe, 0xffffffe0}, {NoFlag, 0x7ffffffe, 0x0000007f},
{NoFlag, 0x00007ffd, 0xffff8001}, {NoFlag, 0x00000002, 0x00000001},
{NoFlag, 0x80000000, 0xffffffff}, {NoFlag, 0xffffff83, 0xcccccccc},
{NoFlag, 0xffff8002, 0x7ffffffe}, {NoFlag, 0xaaaaaaaa, 0x00000000},
{NoFlag, 0xffffff80, 0xcccccccc}, {NoFlag, 0x33333333, 0xffffff83},
{NoFlag, 0x0000007e, 0xffffffe0}, {NoFlag, 0x0000007e, 0x00007fff},
{NoFlag, 0x0000007f, 0x00000002}, {NoFlag, 0x7ffffffe, 0xcccccccc},
{NoFlag, 0x0000007d, 0xffffff80}, {NoFlag, 0x00007fff, 0x00000020},
{NoFlag, 0x7ffffffe, 0xfffffffe}, {NoFlag, 0xfffffffe, 0xffffff81},
{NoFlag, 0xffffffff, 0x0000007f}, {NoFlag, 0xffff8002, 0x7ffffffd},
{NoFlag, 0xffff8001, 0xfffffffe}, {NoFlag, 0x33333333, 0xffff8002},
{NoFlag, 0x00000000, 0xffffffff}, {NoFlag, 0x33333333, 0xffffff80},
{NoFlag, 0x0000007f, 0x00007fff}, {NoFlag, 0xffffffff, 0xffff8001},
{NoFlag, 0x7fffffff, 0xffff8002}, {NoFlag, 0x7ffffffd, 0xffffff83},
{NoFlag, 0x7fffffff, 0x0000007f}, {NoFlag, 0xffffff83, 0xfffffffe},
{NoFlag, 0x7ffffffe, 0xffff8003}, {NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0x80000001, 0x0000007f}, {NoFlag, 0x00000020, 0x00000002},
{NoFlag, 0xffffff82, 0xffff8001}, {NoFlag, 0xffffffff, 0x00000001},
{NoFlag, 0xffffff80, 0xffff8002}, {NoFlag, 0xffff8003, 0x7fffffff},
{NoFlag, 0xffffffff, 0xffff8000}, {NoFlag, 0xffff8002, 0x00007ffd},
{NoFlag, 0x00000020, 0xffffff81}, {NoFlag, 0x00000001, 0x55555555},
{NoFlag, 0x7ffffffe, 0x00000020}, {NoFlag, 0x80000000, 0x00000001},
{NoFlag, 0x00007ffd, 0xffff8002}, {NoFlag, 0x7fffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x00007ffd}, {NoFlag, 0x00000000, 0xfffffffd},
{NoFlag, 0xffff8003, 0xffffff80}, {NoFlag, 0x80000001, 0xffffff80},
{NoFlag, 0xffffffff, 0xffff8002}, {NoFlag, 0x00007ffe, 0xffff8002},
{NoFlag, 0xffffff80, 0x00007ffe}, {NoFlag, 0x80000001, 0xffff8001},
{NoFlag, 0x0000007f, 0xffffff80}, {NoFlag, 0xffffff81, 0x80000000},
{NoFlag, 0x00007fff, 0x00007ffe}, {NoFlag, 0x33333333, 0xffff8000},
{NoFlag, 0x33333333, 0x00007fff}, {NoFlag, 0x00000000, 0x0000007d},
{NoFlag, 0x80000001, 0x00000000}, {NoFlag, 0xffffffff, 0x55555555},
{NoFlag, 0x80000001, 0x80000000}, {NoFlag, 0xffffffff, 0xffffff80},
{NoFlag, 0xffffff81, 0xffff8003}, {NoFlag, 0x55555555, 0x80000001},
{NoFlag, 0x7fffffff, 0xffff8001}, {NoFlag, 0xffffff83, 0x00000002},
{NoFlag, 0x0000007e, 0xffffff81}, {NoFlag, 0x80000000, 0xffff8001},
{NoFlag, 0xffffff80, 0xfffffffe}, {NoFlag, 0x0000007e, 0xfffffffd},
{NoFlag, 0xffffffe0, 0xffffffff}, {NoFlag, 0x55555555, 0x80000000},
{NoFlag, 0x0000007d, 0x80000001}, {NoFlag, 0xffffffe0, 0x7ffffffd},
{NoFlag, 0x00000000, 0x00000000}, {NoFlag, 0x55555555, 0x00000001},
{NoFlag, 0x00007ffd, 0x7fffffff}, {NoFlag, 0x55555555, 0xffffffff},
{NoFlag, 0xffff8003, 0x00007fff}, {NoFlag, 0xffffff82, 0x00007fff},
{NoFlag, 0x33333333, 0x55555555}, {NoFlag, 0x00000020, 0x33333333},
{NoFlag, 0x7ffffffe, 0xfffffffd}, {NoFlag, 0x7ffffffe, 0x00000001},
{NoFlag, 0xffffff83, 0xffffffe0}, {NoFlag, 0xfffffffe, 0xaaaaaaaa},
{NoFlag, 0xffff8002, 0x33333333}, {NoFlag, 0xffff8002, 0xffff8003},
{NoFlag, 0x33333333, 0x7fffffff}, {NoFlag, 0xfffffffd, 0xffffff83},
{NoFlag, 0x00000000, 0xffff8000}, {NoFlag, 0xffffff82, 0x55555555},
{NoFlag, 0xffffff82, 0xffffff81}, {NoFlag, 0xcccccccc, 0xfffffffe},
{NoFlag, 0xfffffffd, 0x7fffffff}, {NoFlag, 0x00007fff, 0x7fffffff},
{NoFlag, 0xffffff83, 0xffff8003}, {NoFlag, 0xfffffffe, 0xffffffff},
{NoFlag, 0x7ffffffd, 0x00007ffd}, {NoFlag, 0x7ffffffd, 0x00007fff},
{NoFlag, 0x00007ffd, 0xffffffff}, {NoFlag, 0x00000001, 0xffff8003},
{NoFlag, 0xffffff80, 0xfffffffd}, {NoFlag, 0x33333333, 0x80000000},
{NoFlag, 0xffff8001, 0x00000020}, {NoFlag, 0xcccccccc, 0x00000002},
{NoFlag, 0x00000000, 0x00000002}, {NoFlag, 0x0000007d, 0x00007fff},
{NoFlag, 0xcccccccc, 0x00000001}, {NoFlag, 0xffffff83, 0x00007fff},
{NoFlag, 0x80000001, 0x00000020}, {NoFlag, 0xffff8003, 0xffffffe0},
{NoFlag, 0x00007ffd, 0xaaaaaaaa}, {NoFlag, 0x33333333, 0xffff8001},
{NoFlag, 0xffffff83, 0x80000001}, {NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0x00007ffe, 0xffff8001}, {NoFlag, 0x7ffffffd, 0x00000000},
{NoFlag, 0x00007ffe, 0x33333333}, {NoFlag, 0xffff8001, 0xffffff80},
{NoFlag, 0xfffffffe, 0x55555555}, {NoFlag, 0xffffff82, 0xffffffff}};
static const Inputs kShiftTypes[] = {{NoFlag, 0xabababab, 0x00000000},
{NoFlag, 0xabababab, 0x00000001},
{NoFlag, 0xabababab, 0x00000002},
{NoFlag, 0xabababab, 0x00000020},
{NoFlag, 0xabababab, 0x0000007d},
{NoFlag, 0xabababab, 0x0000007e},
{NoFlag, 0xabababab, 0x0000007f},
{NoFlag, 0xabababab, 0x00007ffd},
{NoFlag, 0xabababab, 0x00007ffe},
{NoFlag, 0xabababab, 0x00007fff},
{NoFlag, 0xabababab, 0x33333333},
{NoFlag, 0xabababab, 0x55555555},
{NoFlag, 0xabababab, 0x7ffffffd},
{NoFlag, 0xabababab, 0x7ffffffe},
{NoFlag, 0xabababab, 0x7fffffff},
{NoFlag, 0xabababab, 0x80000000},
{NoFlag, 0xabababab, 0x80000001},
{NoFlag, 0xabababab, 0xaaaaaaaa},
{NoFlag, 0xabababab, 0xcccccccc},
{NoFlag, 0xabababab, 0xffff8000},
{NoFlag, 0xabababab, 0xffff8001},
{NoFlag, 0xabababab, 0xffff8002},
{NoFlag, 0xabababab, 0xffff8003},
{NoFlag, 0xabababab, 0xffffff80},
{NoFlag, 0xabababab, 0xffffff81},
{NoFlag, 0xabababab, 0xffffff82},
{NoFlag, 0xabababab, 0xffffff83},
{NoFlag, 0xabababab, 0xffffffe0},
{NoFlag, 0xabababab, 0xfffffffd},
{NoFlag, 0xabababab, 0xfffffffe},
{NoFlag, 0xabababab, 0xffffffff}};
static const Inputs kShiftTypes[] =
{{NoFlag, 0xabababab, 0x00000000}, {NoFlag, 0xabababab, 0x00000001},
{NoFlag, 0xabababab, 0x00000002}, {NoFlag, 0xabababab, 0x00000020},
{NoFlag, 0xabababab, 0x0000007d}, {NoFlag, 0xabababab, 0x0000007e},
{NoFlag, 0xabababab, 0x0000007f}, {NoFlag, 0xabababab, 0x00007ffd},
{NoFlag, 0xabababab, 0x00007ffe}, {NoFlag, 0xabababab, 0x00007fff},
{NoFlag, 0xabababab, 0x33333333}, {NoFlag, 0xabababab, 0x55555555},
{NoFlag, 0xabababab, 0x7ffffffd}, {NoFlag, 0xabababab, 0x7ffffffe},
{NoFlag, 0xabababab, 0x7fffffff}, {NoFlag, 0xabababab, 0x80000000},
{NoFlag, 0xabababab, 0x80000001}, {NoFlag, 0xabababab, 0xaaaaaaaa},
{NoFlag, 0xabababab, 0xcccccccc}, {NoFlag, 0xabababab, 0xffff8000},
{NoFlag, 0xabababab, 0xffff8001}, {NoFlag, 0xabababab, 0xffff8002},
{NoFlag, 0xabababab, 0xffff8003}, {NoFlag, 0xabababab, 0xffffff80},
{NoFlag, 0xabababab, 0xffffff81}, {NoFlag, 0xabababab, 0xffffff82},
{NoFlag, 0xabababab, 0xffffff83}, {NoFlag, 0xabababab, 0xffffffe0},
{NoFlag, 0xabababab, 0xfffffffd}, {NoFlag, 0xabababab, 0xfffffffe},
{NoFlag, 0xabababab, 0xffffffff}};
// A loop will be generated for each element of this array.
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -180,270 +180,143 @@ static const Inputs kCondition[] = {{NFlag, 0xabababab, 0xabababab},
{ZCVFlag, 0xabababab, 0xabababab},
{NZCVFlag, 0xabababab, 0xabababab}};
static const Inputs kRdIsRn[] = {{NoFlag, 0x00000000, 0x00000000},
{NoFlag, 0x00000001, 0x00000001},
{NoFlag, 0x00000002, 0x00000002},
{NoFlag, 0x00000020, 0x00000020},
{NoFlag, 0x0000007d, 0x0000007d},
{NoFlag, 0x0000007e, 0x0000007e},
{NoFlag, 0x0000007f, 0x0000007f},
{NoFlag, 0x00007ffd, 0x00007ffd},
{NoFlag, 0x00007ffe, 0x00007ffe},
{NoFlag, 0x00007fff, 0x00007fff},
{NoFlag, 0x33333333, 0x33333333},
{NoFlag, 0x55555555, 0x55555555},
{NoFlag, 0x7ffffffd, 0x7ffffffd},
{NoFlag, 0x7ffffffe, 0x7ffffffe},
{NoFlag, 0x7fffffff, 0x7fffffff},
{NoFlag, 0x80000000, 0x80000000},
{NoFlag, 0x80000001, 0x80000001},
{NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0xcccccccc, 0xcccccccc},
{NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0xffff8001, 0xffff8001},
{NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0xffff8003, 0xffff8003},
{NoFlag, 0xffffff80, 0xffffff80},
{NoFlag, 0xffffff81, 0xffffff81},
{NoFlag, 0xffffff82, 0xffffff82},
{NoFlag, 0xffffff83, 0xffffff83},
{NoFlag, 0xffffffe0, 0xffffffe0},
{NoFlag, 0xfffffffd, 0xfffffffd},
{NoFlag, 0xfffffffe, 0xfffffffe},
{NoFlag, 0xffffffff, 0xffffffff}};
static const Inputs kRdIsRn[] =
{{NoFlag, 0x00000000, 0x00000000}, {NoFlag, 0x00000001, 0x00000001},
{NoFlag, 0x00000002, 0x00000002}, {NoFlag, 0x00000020, 0x00000020},
{NoFlag, 0x0000007d, 0x0000007d}, {NoFlag, 0x0000007e, 0x0000007e},
{NoFlag, 0x0000007f, 0x0000007f}, {NoFlag, 0x00007ffd, 0x00007ffd},
{NoFlag, 0x00007ffe, 0x00007ffe}, {NoFlag, 0x00007fff, 0x00007fff},
{NoFlag, 0x33333333, 0x33333333}, {NoFlag, 0x55555555, 0x55555555},
{NoFlag, 0x7ffffffd, 0x7ffffffd}, {NoFlag, 0x7ffffffe, 0x7ffffffe},
{NoFlag, 0x7fffffff, 0x7fffffff}, {NoFlag, 0x80000000, 0x80000000},
{NoFlag, 0x80000001, 0x80000001}, {NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0xcccccccc, 0xcccccccc}, {NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0xffff8001, 0xffff8001}, {NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0xffff8003, 0xffff8003}, {NoFlag, 0xffffff80, 0xffffff80},
{NoFlag, 0xffffff81, 0xffffff81}, {NoFlag, 0xffffff82, 0xffffff82},
{NoFlag, 0xffffff83, 0xffffff83}, {NoFlag, 0xffffffe0, 0xffffffe0},
{NoFlag, 0xfffffffd, 0xfffffffd}, {NoFlag, 0xfffffffe, 0xfffffffe},
{NoFlag, 0xffffffff, 0xffffffff}};
static const Inputs kRdIsNotRn[] = {{NoFlag, 0x00000002, 0xcccccccc},
{NoFlag, 0x7ffffffd, 0x00007ffe},
{NoFlag, 0xffffff80, 0x00000020},
{NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0x33333333, 0xffffff82},
{NoFlag, 0xffff8001, 0x7ffffffe},
{NoFlag, 0xfffffffd, 0x00007ffe},
{NoFlag, 0xffffff80, 0x80000000},
{NoFlag, 0x00000001, 0x33333333},
{NoFlag, 0xcccccccc, 0x7ffffffe},
{NoFlag, 0x00000000, 0xcccccccc},
{NoFlag, 0x00000000, 0x55555555},
{NoFlag, 0xffffffff, 0xffffffff},
{NoFlag, 0x0000007e, 0xffff8002},
{NoFlag, 0x80000000, 0x7ffffffd},
{NoFlag, 0xffffff81, 0x0000007e},
{NoFlag, 0x0000007f, 0xffff8001},
{NoFlag, 0xffffffe0, 0x00007ffd},
{NoFlag, 0xffff8003, 0x00000002},
{NoFlag, 0xffffff83, 0x55555555},
{NoFlag, 0xffffff83, 0xffffff80},
{NoFlag, 0xffffff81, 0xffff8000},
{NoFlag, 0x00000020, 0x7ffffffe},
{NoFlag, 0xffffffe0, 0x00000000},
{NoFlag, 0x7fffffff, 0x0000007e},
{NoFlag, 0x80000001, 0xffffffff},
{NoFlag, 0x00000001, 0x80000001},
{NoFlag, 0x00000002, 0x0000007f},
{NoFlag, 0x7fffffff, 0xcccccccc},
{NoFlag, 0x80000001, 0x00007ffe},
{NoFlag, 0xffff8002, 0x0000007e},
{NoFlag, 0x00007ffe, 0xcccccccc},
{NoFlag, 0x80000000, 0xffff8002},
{NoFlag, 0xffffff83, 0x7ffffffe},
{NoFlag, 0xffff8001, 0x00000001},
{NoFlag, 0xffffff81, 0x00000020},
{NoFlag, 0xfffffffe, 0xffff8001},
{NoFlag, 0xffffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x55555555},
{NoFlag, 0x00000020, 0xffffff83},
{NoFlag, 0xffffff83, 0xffff8001},
{NoFlag, 0xffffff83, 0xffff8000},
{NoFlag, 0x00007fff, 0x00000002},
{NoFlag, 0x55555555, 0xffff8000},
{NoFlag, 0x80000001, 0xffffff81},
{NoFlag, 0x00000002, 0x00000000},
{NoFlag, 0x33333333, 0xffffff81},
{NoFlag, 0xffff8001, 0xffffff82},
{NoFlag, 0xcccccccc, 0xffff8003},
{NoFlag, 0xffff8003, 0x7ffffffd},
{NoFlag, 0x0000007d, 0x00007ffe},
{NoFlag, 0xffffff80, 0x0000007d},
{NoFlag, 0xaaaaaaaa, 0x00007ffd},
{NoFlag, 0x80000000, 0xffffff82},
{NoFlag, 0x00000002, 0x7ffffffe},
{NoFlag, 0x00000002, 0xffffff83},
{NoFlag, 0x55555555, 0x00000002},
{NoFlag, 0xffffffff, 0xffffff82},
{NoFlag, 0xaaaaaaaa, 0x00000020},
{NoFlag, 0x00000001, 0xffffff82},
{NoFlag, 0x0000007f, 0xffffff82},
{NoFlag, 0x7ffffffd, 0xaaaaaaaa},
{NoFlag, 0x00007ffe, 0x00000001},
{NoFlag, 0xfffffffd, 0xffffffe0},
{NoFlag, 0xffffff81, 0xffffff83},
{NoFlag, 0x0000007d, 0x00000000},
{NoFlag, 0x0000007d, 0xffff8000},
{NoFlag, 0xffffff81, 0x7fffffff},
{NoFlag, 0xffffffff, 0x80000000},
{NoFlag, 0x00000000, 0x00000001},
{NoFlag, 0x55555555, 0xffffff82},
{NoFlag, 0x00007ffe, 0x00007ffe},
{NoFlag, 0x80000001, 0xfffffffd},
{NoFlag, 0x00007fff, 0x33333333},
{NoFlag, 0x00007fff, 0x80000000},
{NoFlag, 0xcccccccc, 0x00007fff},
{NoFlag, 0xfffffffe, 0xffffffe0},
{NoFlag, 0x7ffffffe, 0x0000007f},
{NoFlag, 0x00007ffd, 0xffff8001},
{NoFlag, 0x00000002, 0x00000001},
{NoFlag, 0x80000000, 0xffffffff},
{NoFlag, 0xffffff83, 0xcccccccc},
{NoFlag, 0xffff8002, 0x7ffffffe},
{NoFlag, 0xaaaaaaaa, 0x00000000},
{NoFlag, 0xffffff80, 0xcccccccc},
{NoFlag, 0x33333333, 0xffffff83},
{NoFlag, 0x0000007e, 0xffffffe0},
{NoFlag, 0x0000007e, 0x00007fff},
{NoFlag, 0x0000007f, 0x00000002},
{NoFlag, 0x7ffffffe, 0xcccccccc},
{NoFlag, 0x0000007d, 0xffffff80},
{NoFlag, 0x00007fff, 0x00000020},
{NoFlag, 0x7ffffffe, 0xfffffffe},
{NoFlag, 0xfffffffe, 0xffffff81},
{NoFlag, 0xffffffff, 0x0000007f},
{NoFlag, 0xffff8002, 0x7ffffffd},
{NoFlag, 0xffff8001, 0xfffffffe},
{NoFlag, 0x33333333, 0xffff8002},
{NoFlag, 0x00000000, 0xffffffff},
{NoFlag, 0x33333333, 0xffffff80},
{NoFlag, 0x0000007f, 0x00007fff},
{NoFlag, 0xffffffff, 0xffff8001},
{NoFlag, 0x7fffffff, 0xffff8002},
{NoFlag, 0x7ffffffd, 0xffffff83},
{NoFlag, 0x7fffffff, 0x0000007f},
{NoFlag, 0xffffff83, 0xfffffffe},
{NoFlag, 0x7ffffffe, 0xffff8003},
{NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0x80000001, 0x0000007f},
{NoFlag, 0x00000020, 0x00000002},
{NoFlag, 0xffffff82, 0xffff8001},
{NoFlag, 0xffffffff, 0x00000001},
{NoFlag, 0xffffff80, 0xffff8002},
{NoFlag, 0xffff8003, 0x7fffffff},
{NoFlag, 0xffffffff, 0xffff8000},
{NoFlag, 0xffff8002, 0x00007ffd},
{NoFlag, 0x00000020, 0xffffff81},
{NoFlag, 0x00000001, 0x55555555},
{NoFlag, 0x7ffffffe, 0x00000020},
{NoFlag, 0x80000000, 0x00000001},
{NoFlag, 0x00007ffd, 0xffff8002},
{NoFlag, 0x7fffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x00007ffd},
{NoFlag, 0x00000000, 0xfffffffd},
{NoFlag, 0xffff8003, 0xffffff80},
{NoFlag, 0x80000001, 0xffffff80},
{NoFlag, 0xffffffff, 0xffff8002},
{NoFlag, 0x00007ffe, 0xffff8002},
{NoFlag, 0xffffff80, 0x00007ffe},
{NoFlag, 0x80000001, 0xffff8001},
{NoFlag, 0x0000007f, 0xffffff80},
{NoFlag, 0xffffff81, 0x80000000},
{NoFlag, 0x00007fff, 0x00007ffe},
{NoFlag, 0x33333333, 0xffff8000},
{NoFlag, 0x33333333, 0x00007fff},
{NoFlag, 0x00000000, 0x0000007d},
{NoFlag, 0x80000001, 0x00000000},
{NoFlag, 0xffffffff, 0x55555555},
{NoFlag, 0x80000001, 0x80000000},
{NoFlag, 0xffffffff, 0xffffff80},
{NoFlag, 0xffffff81, 0xffff8003},
{NoFlag, 0x55555555, 0x80000001},
{NoFlag, 0x7fffffff, 0xffff8001},
{NoFlag, 0xffffff83, 0x00000002},
{NoFlag, 0x0000007e, 0xffffff81},
{NoFlag, 0x80000000, 0xffff8001},
{NoFlag, 0xffffff80, 0xfffffffe},
{NoFlag, 0x0000007e, 0xfffffffd},
{NoFlag, 0xffffffe0, 0xffffffff},
{NoFlag, 0x55555555, 0x80000000},
{NoFlag, 0x0000007d, 0x80000001},
{NoFlag, 0xffffffe0, 0x7ffffffd},
{NoFlag, 0x00000000, 0x00000000},
{NoFlag, 0x55555555, 0x00000001},
{NoFlag, 0x00007ffd, 0x7fffffff},
{NoFlag, 0x55555555, 0xffffffff},
{NoFlag, 0xffff8003, 0x00007fff},
{NoFlag, 0xffffff82, 0x00007fff},
{NoFlag, 0x33333333, 0x55555555},
{NoFlag, 0x00000020, 0x33333333},
{NoFlag, 0x7ffffffe, 0xfffffffd},
{NoFlag, 0x7ffffffe, 0x00000001},
{NoFlag, 0xffffff83, 0xffffffe0},
{NoFlag, 0xfffffffe, 0xaaaaaaaa},
{NoFlag, 0xffff8002, 0x33333333},
{NoFlag, 0xffff8002, 0xffff8003},
{NoFlag, 0x33333333, 0x7fffffff},
{NoFlag, 0xfffffffd, 0xffffff83},
{NoFlag, 0x00000000, 0xffff8000},
{NoFlag, 0xffffff82, 0x55555555},
{NoFlag, 0xffffff82, 0xffffff81},
{NoFlag, 0xcccccccc, 0xfffffffe},
{NoFlag, 0xfffffffd, 0x7fffffff},
{NoFlag, 0x00007fff, 0x7fffffff},
{NoFlag, 0xffffff83, 0xffff8003},
{NoFlag, 0xfffffffe, 0xffffffff},
{NoFlag, 0x7ffffffd, 0x00007ffd},
{NoFlag, 0x7ffffffd, 0x00007fff},
{NoFlag, 0x00007ffd, 0xffffffff},
{NoFlag, 0x00000001, 0xffff8003},
{NoFlag, 0xffffff80, 0xfffffffd},
{NoFlag, 0x33333333, 0x80000000},
{NoFlag, 0xffff8001, 0x00000020},
{NoFlag, 0xcccccccc, 0x00000002},
{NoFlag, 0x00000000, 0x00000002},
{NoFlag, 0x0000007d, 0x00007fff},
{NoFlag, 0xcccccccc, 0x00000001},
{NoFlag, 0xffffff83, 0x00007fff},
{NoFlag, 0x80000001, 0x00000020},
{NoFlag, 0xffff8003, 0xffffffe0},
{NoFlag, 0x00007ffd, 0xaaaaaaaa},
{NoFlag, 0x33333333, 0xffff8001},
{NoFlag, 0xffffff83, 0x80000001},
{NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0x00007ffe, 0xffff8001},
{NoFlag, 0x7ffffffd, 0x00000000},
{NoFlag, 0x00007ffe, 0x33333333},
{NoFlag, 0xffff8001, 0xffffff80},
{NoFlag, 0xfffffffe, 0x55555555},
{NoFlag, 0xffffff82, 0xffffffff}};
static const Inputs kRdIsNotRn[] =
{{NoFlag, 0x00000002, 0xcccccccc}, {NoFlag, 0x7ffffffd, 0x00007ffe},
{NoFlag, 0xffffff80, 0x00000020}, {NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0x33333333, 0xffffff82}, {NoFlag, 0xffff8001, 0x7ffffffe},
{NoFlag, 0xfffffffd, 0x00007ffe}, {NoFlag, 0xffffff80, 0x80000000},
{NoFlag, 0x00000001, 0x33333333}, {NoFlag, 0xcccccccc, 0x7ffffffe},
{NoFlag, 0x00000000, 0xcccccccc}, {NoFlag, 0x00000000, 0x55555555},
{NoFlag, 0xffffffff, 0xffffffff}, {NoFlag, 0x0000007e, 0xffff8002},
{NoFlag, 0x80000000, 0x7ffffffd}, {NoFlag, 0xffffff81, 0x0000007e},
{NoFlag, 0x0000007f, 0xffff8001}, {NoFlag, 0xffffffe0, 0x00007ffd},
{NoFlag, 0xffff8003, 0x00000002}, {NoFlag, 0xffffff83, 0x55555555},
{NoFlag, 0xffffff83, 0xffffff80}, {NoFlag, 0xffffff81, 0xffff8000},
{NoFlag, 0x00000020, 0x7ffffffe}, {NoFlag, 0xffffffe0, 0x00000000},
{NoFlag, 0x7fffffff, 0x0000007e}, {NoFlag, 0x80000001, 0xffffffff},
{NoFlag, 0x00000001, 0x80000001}, {NoFlag, 0x00000002, 0x0000007f},
{NoFlag, 0x7fffffff, 0xcccccccc}, {NoFlag, 0x80000001, 0x00007ffe},
{NoFlag, 0xffff8002, 0x0000007e}, {NoFlag, 0x00007ffe, 0xcccccccc},
{NoFlag, 0x80000000, 0xffff8002}, {NoFlag, 0xffffff83, 0x7ffffffe},
{NoFlag, 0xffff8001, 0x00000001}, {NoFlag, 0xffffff81, 0x00000020},
{NoFlag, 0xfffffffe, 0xffff8001}, {NoFlag, 0xffffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x55555555}, {NoFlag, 0x00000020, 0xffffff83},
{NoFlag, 0xffffff83, 0xffff8001}, {NoFlag, 0xffffff83, 0xffff8000},
{NoFlag, 0x00007fff, 0x00000002}, {NoFlag, 0x55555555, 0xffff8000},
{NoFlag, 0x80000001, 0xffffff81}, {NoFlag, 0x00000002, 0x00000000},
{NoFlag, 0x33333333, 0xffffff81}, {NoFlag, 0xffff8001, 0xffffff82},
{NoFlag, 0xcccccccc, 0xffff8003}, {NoFlag, 0xffff8003, 0x7ffffffd},
{NoFlag, 0x0000007d, 0x00007ffe}, {NoFlag, 0xffffff80, 0x0000007d},
{NoFlag, 0xaaaaaaaa, 0x00007ffd}, {NoFlag, 0x80000000, 0xffffff82},
{NoFlag, 0x00000002, 0x7ffffffe}, {NoFlag, 0x00000002, 0xffffff83},
{NoFlag, 0x55555555, 0x00000002}, {NoFlag, 0xffffffff, 0xffffff82},
{NoFlag, 0xaaaaaaaa, 0x00000020}, {NoFlag, 0x00000001, 0xffffff82},
{NoFlag, 0x0000007f, 0xffffff82}, {NoFlag, 0x7ffffffd, 0xaaaaaaaa},
{NoFlag, 0x00007ffe, 0x00000001}, {NoFlag, 0xfffffffd, 0xffffffe0},
{NoFlag, 0xffffff81, 0xffffff83}, {NoFlag, 0x0000007d, 0x00000000},
{NoFlag, 0x0000007d, 0xffff8000}, {NoFlag, 0xffffff81, 0x7fffffff},
{NoFlag, 0xffffffff, 0x80000000}, {NoFlag, 0x00000000, 0x00000001},
{NoFlag, 0x55555555, 0xffffff82}, {NoFlag, 0x00007ffe, 0x00007ffe},
{NoFlag, 0x80000001, 0xfffffffd}, {NoFlag, 0x00007fff, 0x33333333},
{NoFlag, 0x00007fff, 0x80000000}, {NoFlag, 0xcccccccc, 0x00007fff},
{NoFlag, 0xfffffffe, 0xffffffe0}, {NoFlag, 0x7ffffffe, 0x0000007f},
{NoFlag, 0x00007ffd, 0xffff8001}, {NoFlag, 0x00000002, 0x00000001},
{NoFlag, 0x80000000, 0xffffffff}, {NoFlag, 0xffffff83, 0xcccccccc},
{NoFlag, 0xffff8002, 0x7ffffffe}, {NoFlag, 0xaaaaaaaa, 0x00000000},
{NoFlag, 0xffffff80, 0xcccccccc}, {NoFlag, 0x33333333, 0xffffff83},
{NoFlag, 0x0000007e, 0xffffffe0}, {NoFlag, 0x0000007e, 0x00007fff},
{NoFlag, 0x0000007f, 0x00000002}, {NoFlag, 0x7ffffffe, 0xcccccccc},
{NoFlag, 0x0000007d, 0xffffff80}, {NoFlag, 0x00007fff, 0x00000020},
{NoFlag, 0x7ffffffe, 0xfffffffe}, {NoFlag, 0xfffffffe, 0xffffff81},
{NoFlag, 0xffffffff, 0x0000007f}, {NoFlag, 0xffff8002, 0x7ffffffd},
{NoFlag, 0xffff8001, 0xfffffffe}, {NoFlag, 0x33333333, 0xffff8002},
{NoFlag, 0x00000000, 0xffffffff}, {NoFlag, 0x33333333, 0xffffff80},
{NoFlag, 0x0000007f, 0x00007fff}, {NoFlag, 0xffffffff, 0xffff8001},
{NoFlag, 0x7fffffff, 0xffff8002}, {NoFlag, 0x7ffffffd, 0xffffff83},
{NoFlag, 0x7fffffff, 0x0000007f}, {NoFlag, 0xffffff83, 0xfffffffe},
{NoFlag, 0x7ffffffe, 0xffff8003}, {NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0x80000001, 0x0000007f}, {NoFlag, 0x00000020, 0x00000002},
{NoFlag, 0xffffff82, 0xffff8001}, {NoFlag, 0xffffffff, 0x00000001},
{NoFlag, 0xffffff80, 0xffff8002}, {NoFlag, 0xffff8003, 0x7fffffff},
{NoFlag, 0xffffffff, 0xffff8000}, {NoFlag, 0xffff8002, 0x00007ffd},
{NoFlag, 0x00000020, 0xffffff81}, {NoFlag, 0x00000001, 0x55555555},
{NoFlag, 0x7ffffffe, 0x00000020}, {NoFlag, 0x80000000, 0x00000001},
{NoFlag, 0x00007ffd, 0xffff8002}, {NoFlag, 0x7fffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x00007ffd}, {NoFlag, 0x00000000, 0xfffffffd},
{NoFlag, 0xffff8003, 0xffffff80}, {NoFlag, 0x80000001, 0xffffff80},
{NoFlag, 0xffffffff, 0xffff8002}, {NoFlag, 0x00007ffe, 0xffff8002},
{NoFlag, 0xffffff80, 0x00007ffe}, {NoFlag, 0x80000001, 0xffff8001},
{NoFlag, 0x0000007f, 0xffffff80}, {NoFlag, 0xffffff81, 0x80000000},
{NoFlag, 0x00007fff, 0x00007ffe}, {NoFlag, 0x33333333, 0xffff8000},
{NoFlag, 0x33333333, 0x00007fff}, {NoFlag, 0x00000000, 0x0000007d},
{NoFlag, 0x80000001, 0x00000000}, {NoFlag, 0xffffffff, 0x55555555},
{NoFlag, 0x80000001, 0x80000000}, {NoFlag, 0xffffffff, 0xffffff80},
{NoFlag, 0xffffff81, 0xffff8003}, {NoFlag, 0x55555555, 0x80000001},
{NoFlag, 0x7fffffff, 0xffff8001}, {NoFlag, 0xffffff83, 0x00000002},
{NoFlag, 0x0000007e, 0xffffff81}, {NoFlag, 0x80000000, 0xffff8001},
{NoFlag, 0xffffff80, 0xfffffffe}, {NoFlag, 0x0000007e, 0xfffffffd},
{NoFlag, 0xffffffe0, 0xffffffff}, {NoFlag, 0x55555555, 0x80000000},
{NoFlag, 0x0000007d, 0x80000001}, {NoFlag, 0xffffffe0, 0x7ffffffd},
{NoFlag, 0x00000000, 0x00000000}, {NoFlag, 0x55555555, 0x00000001},
{NoFlag, 0x00007ffd, 0x7fffffff}, {NoFlag, 0x55555555, 0xffffffff},
{NoFlag, 0xffff8003, 0x00007fff}, {NoFlag, 0xffffff82, 0x00007fff},
{NoFlag, 0x33333333, 0x55555555}, {NoFlag, 0x00000020, 0x33333333},
{NoFlag, 0x7ffffffe, 0xfffffffd}, {NoFlag, 0x7ffffffe, 0x00000001},
{NoFlag, 0xffffff83, 0xffffffe0}, {NoFlag, 0xfffffffe, 0xaaaaaaaa},
{NoFlag, 0xffff8002, 0x33333333}, {NoFlag, 0xffff8002, 0xffff8003},
{NoFlag, 0x33333333, 0x7fffffff}, {NoFlag, 0xfffffffd, 0xffffff83},
{NoFlag, 0x00000000, 0xffff8000}, {NoFlag, 0xffffff82, 0x55555555},
{NoFlag, 0xffffff82, 0xffffff81}, {NoFlag, 0xcccccccc, 0xfffffffe},
{NoFlag, 0xfffffffd, 0x7fffffff}, {NoFlag, 0x00007fff, 0x7fffffff},
{NoFlag, 0xffffff83, 0xffff8003}, {NoFlag, 0xfffffffe, 0xffffffff},
{NoFlag, 0x7ffffffd, 0x00007ffd}, {NoFlag, 0x7ffffffd, 0x00007fff},
{NoFlag, 0x00007ffd, 0xffffffff}, {NoFlag, 0x00000001, 0xffff8003},
{NoFlag, 0xffffff80, 0xfffffffd}, {NoFlag, 0x33333333, 0x80000000},
{NoFlag, 0xffff8001, 0x00000020}, {NoFlag, 0xcccccccc, 0x00000002},
{NoFlag, 0x00000000, 0x00000002}, {NoFlag, 0x0000007d, 0x00007fff},
{NoFlag, 0xcccccccc, 0x00000001}, {NoFlag, 0xffffff83, 0x00007fff},
{NoFlag, 0x80000001, 0x00000020}, {NoFlag, 0xffff8003, 0xffffffe0},
{NoFlag, 0x00007ffd, 0xaaaaaaaa}, {NoFlag, 0x33333333, 0xffff8001},
{NoFlag, 0xffffff83, 0x80000001}, {NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0x00007ffe, 0xffff8001}, {NoFlag, 0x7ffffffd, 0x00000000},
{NoFlag, 0x00007ffe, 0x33333333}, {NoFlag, 0xffff8001, 0xffffff80},
{NoFlag, 0xfffffffe, 0x55555555}, {NoFlag, 0xffffff82, 0xffffffff}};
static const Inputs kShiftTypes[] = {{NoFlag, 0xabababab, 0x00000000},
{NoFlag, 0xabababab, 0x00000001},
{NoFlag, 0xabababab, 0x00000002},
{NoFlag, 0xabababab, 0x00000020},
{NoFlag, 0xabababab, 0x0000007d},
{NoFlag, 0xabababab, 0x0000007e},
{NoFlag, 0xabababab, 0x0000007f},
{NoFlag, 0xabababab, 0x00007ffd},
{NoFlag, 0xabababab, 0x00007ffe},
{NoFlag, 0xabababab, 0x00007fff},
{NoFlag, 0xabababab, 0x33333333},
{NoFlag, 0xabababab, 0x55555555},
{NoFlag, 0xabababab, 0x7ffffffd},
{NoFlag, 0xabababab, 0x7ffffffe},
{NoFlag, 0xabababab, 0x7fffffff},
{NoFlag, 0xabababab, 0x80000000},
{NoFlag, 0xabababab, 0x80000001},
{NoFlag, 0xabababab, 0xaaaaaaaa},
{NoFlag, 0xabababab, 0xcccccccc},
{NoFlag, 0xabababab, 0xffff8000},
{NoFlag, 0xabababab, 0xffff8001},
{NoFlag, 0xabababab, 0xffff8002},
{NoFlag, 0xabababab, 0xffff8003},
{NoFlag, 0xabababab, 0xffffff80},
{NoFlag, 0xabababab, 0xffffff81},
{NoFlag, 0xabababab, 0xffffff82},
{NoFlag, 0xabababab, 0xffffff83},
{NoFlag, 0xabababab, 0xffffffe0},
{NoFlag, 0xabababab, 0xfffffffd},
{NoFlag, 0xabababab, 0xfffffffe},
{NoFlag, 0xabababab, 0xffffffff}};
static const Inputs kShiftTypes[] =
{{NoFlag, 0xabababab, 0x00000000}, {NoFlag, 0xabababab, 0x00000001},
{NoFlag, 0xabababab, 0x00000002}, {NoFlag, 0xabababab, 0x00000020},
{NoFlag, 0xabababab, 0x0000007d}, {NoFlag, 0xabababab, 0x0000007e},
{NoFlag, 0xabababab, 0x0000007f}, {NoFlag, 0xabababab, 0x00007ffd},
{NoFlag, 0xabababab, 0x00007ffe}, {NoFlag, 0xabababab, 0x00007fff},
{NoFlag, 0xabababab, 0x33333333}, {NoFlag, 0xabababab, 0x55555555},
{NoFlag, 0xabababab, 0x7ffffffd}, {NoFlag, 0xabababab, 0x7ffffffe},
{NoFlag, 0xabababab, 0x7fffffff}, {NoFlag, 0xabababab, 0x80000000},
{NoFlag, 0xabababab, 0x80000001}, {NoFlag, 0xabababab, 0xaaaaaaaa},
{NoFlag, 0xabababab, 0xcccccccc}, {NoFlag, 0xabababab, 0xffff8000},
{NoFlag, 0xabababab, 0xffff8001}, {NoFlag, 0xabababab, 0xffff8002},
{NoFlag, 0xabababab, 0xffff8003}, {NoFlag, 0xabababab, 0xffffff80},
{NoFlag, 0xabababab, 0xffffff81}, {NoFlag, 0xabababab, 0xffffff82},
{NoFlag, 0xabababab, 0xffffff83}, {NoFlag, 0xabababab, 0xffffffe0},
{NoFlag, 0xabababab, 0xfffffffd}, {NoFlag, 0xabababab, 0xfffffffe},
{NoFlag, 0xabababab, 0xffffffff}};
// A loop will be generated for each element of this array.
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -180,270 +180,143 @@ static const Inputs kCondition[] = {{NFlag, 0xabababab, 0xabababab},
{ZCVFlag, 0xabababab, 0xabababab},
{NZCVFlag, 0xabababab, 0xabababab}};
static const Inputs kRdIsRn[] = {{NoFlag, 0x00000000, 0x00000000},
{NoFlag, 0x00000001, 0x00000001},
{NoFlag, 0x00000002, 0x00000002},
{NoFlag, 0x00000020, 0x00000020},
{NoFlag, 0x0000007d, 0x0000007d},
{NoFlag, 0x0000007e, 0x0000007e},
{NoFlag, 0x0000007f, 0x0000007f},
{NoFlag, 0x00007ffd, 0x00007ffd},
{NoFlag, 0x00007ffe, 0x00007ffe},
{NoFlag, 0x00007fff, 0x00007fff},
{NoFlag, 0x33333333, 0x33333333},
{NoFlag, 0x55555555, 0x55555555},
{NoFlag, 0x7ffffffd, 0x7ffffffd},
{NoFlag, 0x7ffffffe, 0x7ffffffe},
{NoFlag, 0x7fffffff, 0x7fffffff},
{NoFlag, 0x80000000, 0x80000000},
{NoFlag, 0x80000001, 0x80000001},
{NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0xcccccccc, 0xcccccccc},
{NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0xffff8001, 0xffff8001},
{NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0xffff8003, 0xffff8003},
{NoFlag, 0xffffff80, 0xffffff80},
{NoFlag, 0xffffff81, 0xffffff81},
{NoFlag, 0xffffff82, 0xffffff82},
{NoFlag, 0xffffff83, 0xffffff83},
{NoFlag, 0xffffffe0, 0xffffffe0},
{NoFlag, 0xfffffffd, 0xfffffffd},
{NoFlag, 0xfffffffe, 0xfffffffe},
{NoFlag, 0xffffffff, 0xffffffff}};
static const Inputs kRdIsRn[] =
{{NoFlag, 0x00000000, 0x00000000}, {NoFlag, 0x00000001, 0x00000001},
{NoFlag, 0x00000002, 0x00000002}, {NoFlag, 0x00000020, 0x00000020},
{NoFlag, 0x0000007d, 0x0000007d}, {NoFlag, 0x0000007e, 0x0000007e},
{NoFlag, 0x0000007f, 0x0000007f}, {NoFlag, 0x00007ffd, 0x00007ffd},
{NoFlag, 0x00007ffe, 0x00007ffe}, {NoFlag, 0x00007fff, 0x00007fff},
{NoFlag, 0x33333333, 0x33333333}, {NoFlag, 0x55555555, 0x55555555},
{NoFlag, 0x7ffffffd, 0x7ffffffd}, {NoFlag, 0x7ffffffe, 0x7ffffffe},
{NoFlag, 0x7fffffff, 0x7fffffff}, {NoFlag, 0x80000000, 0x80000000},
{NoFlag, 0x80000001, 0x80000001}, {NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0xcccccccc, 0xcccccccc}, {NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0xffff8001, 0xffff8001}, {NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0xffff8003, 0xffff8003}, {NoFlag, 0xffffff80, 0xffffff80},
{NoFlag, 0xffffff81, 0xffffff81}, {NoFlag, 0xffffff82, 0xffffff82},
{NoFlag, 0xffffff83, 0xffffff83}, {NoFlag, 0xffffffe0, 0xffffffe0},
{NoFlag, 0xfffffffd, 0xfffffffd}, {NoFlag, 0xfffffffe, 0xfffffffe},
{NoFlag, 0xffffffff, 0xffffffff}};
static const Inputs kRdIsNotRn[] = {{NoFlag, 0x00000002, 0xcccccccc},
{NoFlag, 0x7ffffffd, 0x00007ffe},
{NoFlag, 0xffffff80, 0x00000020},
{NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0x33333333, 0xffffff82},
{NoFlag, 0xffff8001, 0x7ffffffe},
{NoFlag, 0xfffffffd, 0x00007ffe},
{NoFlag, 0xffffff80, 0x80000000},
{NoFlag, 0x00000001, 0x33333333},
{NoFlag, 0xcccccccc, 0x7ffffffe},
{NoFlag, 0x00000000, 0xcccccccc},
{NoFlag, 0x00000000, 0x55555555},
{NoFlag, 0xffffffff, 0xffffffff},
{NoFlag, 0x0000007e, 0xffff8002},
{NoFlag, 0x80000000, 0x7ffffffd},
{NoFlag, 0xffffff81, 0x0000007e},
{NoFlag, 0x0000007f, 0xffff8001},
{NoFlag, 0xffffffe0, 0x00007ffd},
{NoFlag, 0xffff8003, 0x00000002},
{NoFlag, 0xffffff83, 0x55555555},
{NoFlag, 0xffffff83, 0xffffff80},
{NoFlag, 0xffffff81, 0xffff8000},
{NoFlag, 0x00000020, 0x7ffffffe},
{NoFlag, 0xffffffe0, 0x00000000},
{NoFlag, 0x7fffffff, 0x0000007e},
{NoFlag, 0x80000001, 0xffffffff},
{NoFlag, 0x00000001, 0x80000001},
{NoFlag, 0x00000002, 0x0000007f},
{NoFlag, 0x7fffffff, 0xcccccccc},
{NoFlag, 0x80000001, 0x00007ffe},
{NoFlag, 0xffff8002, 0x0000007e},
{NoFlag, 0x00007ffe, 0xcccccccc},
{NoFlag, 0x80000000, 0xffff8002},
{NoFlag, 0xffffff83, 0x7ffffffe},
{NoFlag, 0xffff8001, 0x00000001},
{NoFlag, 0xffffff81, 0x00000020},
{NoFlag, 0xfffffffe, 0xffff8001},
{NoFlag, 0xffffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x55555555},
{NoFlag, 0x00000020, 0xffffff83},
{NoFlag, 0xffffff83, 0xffff8001},
{NoFlag, 0xffffff83, 0xffff8000},
{NoFlag, 0x00007fff, 0x00000002},
{NoFlag, 0x55555555, 0xffff8000},
{NoFlag, 0x80000001, 0xffffff81},
{NoFlag, 0x00000002, 0x00000000},
{NoFlag, 0x33333333, 0xffffff81},
{NoFlag, 0xffff8001, 0xffffff82},
{NoFlag, 0xcccccccc, 0xffff8003},
{NoFlag, 0xffff8003, 0x7ffffffd},
{NoFlag, 0x0000007d, 0x00007ffe},
{NoFlag, 0xffffff80, 0x0000007d},
{NoFlag, 0xaaaaaaaa, 0x00007ffd},
{NoFlag, 0x80000000, 0xffffff82},
{NoFlag, 0x00000002, 0x7ffffffe},
{NoFlag, 0x00000002, 0xffffff83},
{NoFlag, 0x55555555, 0x00000002},
{NoFlag, 0xffffffff, 0xffffff82},
{NoFlag, 0xaaaaaaaa, 0x00000020},
{NoFlag, 0x00000001, 0xffffff82},
{NoFlag, 0x0000007f, 0xffffff82},
{NoFlag, 0x7ffffffd, 0xaaaaaaaa},
{NoFlag, 0x00007ffe, 0x00000001},
{NoFlag, 0xfffffffd, 0xffffffe0},
{NoFlag, 0xffffff81, 0xffffff83},
{NoFlag, 0x0000007d, 0x00000000},
{NoFlag, 0x0000007d, 0xffff8000},
{NoFlag, 0xffffff81, 0x7fffffff},
{NoFlag, 0xffffffff, 0x80000000},
{NoFlag, 0x00000000, 0x00000001},
{NoFlag, 0x55555555, 0xffffff82},
{NoFlag, 0x00007ffe, 0x00007ffe},
{NoFlag, 0x80000001, 0xfffffffd},
{NoFlag, 0x00007fff, 0x33333333},
{NoFlag, 0x00007fff, 0x80000000},
{NoFlag, 0xcccccccc, 0x00007fff},
{NoFlag, 0xfffffffe, 0xffffffe0},
{NoFlag, 0x7ffffffe, 0x0000007f},
{NoFlag, 0x00007ffd, 0xffff8001},
{NoFlag, 0x00000002, 0x00000001},
{NoFlag, 0x80000000, 0xffffffff},
{NoFlag, 0xffffff83, 0xcccccccc},
{NoFlag, 0xffff8002, 0x7ffffffe},
{NoFlag, 0xaaaaaaaa, 0x00000000},
{NoFlag, 0xffffff80, 0xcccccccc},
{NoFlag, 0x33333333, 0xffffff83},
{NoFlag, 0x0000007e, 0xffffffe0},
{NoFlag, 0x0000007e, 0x00007fff},
{NoFlag, 0x0000007f, 0x00000002},
{NoFlag, 0x7ffffffe, 0xcccccccc},
{NoFlag, 0x0000007d, 0xffffff80},
{NoFlag, 0x00007fff, 0x00000020},
{NoFlag, 0x7ffffffe, 0xfffffffe},
{NoFlag, 0xfffffffe, 0xffffff81},
{NoFlag, 0xffffffff, 0x0000007f},
{NoFlag, 0xffff8002, 0x7ffffffd},
{NoFlag, 0xffff8001, 0xfffffffe},
{NoFlag, 0x33333333, 0xffff8002},
{NoFlag, 0x00000000, 0xffffffff},
{NoFlag, 0x33333333, 0xffffff80},
{NoFlag, 0x0000007f, 0x00007fff},
{NoFlag, 0xffffffff, 0xffff8001},
{NoFlag, 0x7fffffff, 0xffff8002},
{NoFlag, 0x7ffffffd, 0xffffff83},
{NoFlag, 0x7fffffff, 0x0000007f},
{NoFlag, 0xffffff83, 0xfffffffe},
{NoFlag, 0x7ffffffe, 0xffff8003},
{NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0x80000001, 0x0000007f},
{NoFlag, 0x00000020, 0x00000002},
{NoFlag, 0xffffff82, 0xffff8001},
{NoFlag, 0xffffffff, 0x00000001},
{NoFlag, 0xffffff80, 0xffff8002},
{NoFlag, 0xffff8003, 0x7fffffff},
{NoFlag, 0xffffffff, 0xffff8000},
{NoFlag, 0xffff8002, 0x00007ffd},
{NoFlag, 0x00000020, 0xffffff81},
{NoFlag, 0x00000001, 0x55555555},
{NoFlag, 0x7ffffffe, 0x00000020},
{NoFlag, 0x80000000, 0x00000001},
{NoFlag, 0x00007ffd, 0xffff8002},
{NoFlag, 0x7fffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x00007ffd},
{NoFlag, 0x00000000, 0xfffffffd},
{NoFlag, 0xffff8003, 0xffffff80},
{NoFlag, 0x80000001, 0xffffff80},
{NoFlag, 0xffffffff, 0xffff8002},
{NoFlag, 0x00007ffe, 0xffff8002},
{NoFlag, 0xffffff80, 0x00007ffe},
{NoFlag, 0x80000001, 0xffff8001},
{NoFlag, 0x0000007f, 0xffffff80},
{NoFlag, 0xffffff81, 0x80000000},
{NoFlag, 0x00007fff, 0x00007ffe},
{NoFlag, 0x33333333, 0xffff8000},
{NoFlag, 0x33333333, 0x00007fff},
{NoFlag, 0x00000000, 0x0000007d},
{NoFlag, 0x80000001, 0x00000000},
{NoFlag, 0xffffffff, 0x55555555},
{NoFlag, 0x80000001, 0x80000000},
{NoFlag, 0xffffffff, 0xffffff80},
{NoFlag, 0xffffff81, 0xffff8003},
{NoFlag, 0x55555555, 0x80000001},
{NoFlag, 0x7fffffff, 0xffff8001},
{NoFlag, 0xffffff83, 0x00000002},
{NoFlag, 0x0000007e, 0xffffff81},
{NoFlag, 0x80000000, 0xffff8001},
{NoFlag, 0xffffff80, 0xfffffffe},
{NoFlag, 0x0000007e, 0xfffffffd},
{NoFlag, 0xffffffe0, 0xffffffff},
{NoFlag, 0x55555555, 0x80000000},
{NoFlag, 0x0000007d, 0x80000001},
{NoFlag, 0xffffffe0, 0x7ffffffd},
{NoFlag, 0x00000000, 0x00000000},
{NoFlag, 0x55555555, 0x00000001},
{NoFlag, 0x00007ffd, 0x7fffffff},
{NoFlag, 0x55555555, 0xffffffff},
{NoFlag, 0xffff8003, 0x00007fff},
{NoFlag, 0xffffff82, 0x00007fff},
{NoFlag, 0x33333333, 0x55555555},
{NoFlag, 0x00000020, 0x33333333},
{NoFlag, 0x7ffffffe, 0xfffffffd},
{NoFlag, 0x7ffffffe, 0x00000001},
{NoFlag, 0xffffff83, 0xffffffe0},
{NoFlag, 0xfffffffe, 0xaaaaaaaa},
{NoFlag, 0xffff8002, 0x33333333},
{NoFlag, 0xffff8002, 0xffff8003},
{NoFlag, 0x33333333, 0x7fffffff},
{NoFlag, 0xfffffffd, 0xffffff83},
{NoFlag, 0x00000000, 0xffff8000},
{NoFlag, 0xffffff82, 0x55555555},
{NoFlag, 0xffffff82, 0xffffff81},
{NoFlag, 0xcccccccc, 0xfffffffe},
{NoFlag, 0xfffffffd, 0x7fffffff},
{NoFlag, 0x00007fff, 0x7fffffff},
{NoFlag, 0xffffff83, 0xffff8003},
{NoFlag, 0xfffffffe, 0xffffffff},
{NoFlag, 0x7ffffffd, 0x00007ffd},
{NoFlag, 0x7ffffffd, 0x00007fff},
{NoFlag, 0x00007ffd, 0xffffffff},
{NoFlag, 0x00000001, 0xffff8003},
{NoFlag, 0xffffff80, 0xfffffffd},
{NoFlag, 0x33333333, 0x80000000},
{NoFlag, 0xffff8001, 0x00000020},
{NoFlag, 0xcccccccc, 0x00000002},
{NoFlag, 0x00000000, 0x00000002},
{NoFlag, 0x0000007d, 0x00007fff},
{NoFlag, 0xcccccccc, 0x00000001},
{NoFlag, 0xffffff83, 0x00007fff},
{NoFlag, 0x80000001, 0x00000020},
{NoFlag, 0xffff8003, 0xffffffe0},
{NoFlag, 0x00007ffd, 0xaaaaaaaa},
{NoFlag, 0x33333333, 0xffff8001},
{NoFlag, 0xffffff83, 0x80000001},
{NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0x00007ffe, 0xffff8001},
{NoFlag, 0x7ffffffd, 0x00000000},
{NoFlag, 0x00007ffe, 0x33333333},
{NoFlag, 0xffff8001, 0xffffff80},
{NoFlag, 0xfffffffe, 0x55555555},
{NoFlag, 0xffffff82, 0xffffffff}};
static const Inputs kRdIsNotRn[] =
{{NoFlag, 0x00000002, 0xcccccccc}, {NoFlag, 0x7ffffffd, 0x00007ffe},
{NoFlag, 0xffffff80, 0x00000020}, {NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0x33333333, 0xffffff82}, {NoFlag, 0xffff8001, 0x7ffffffe},
{NoFlag, 0xfffffffd, 0x00007ffe}, {NoFlag, 0xffffff80, 0x80000000},
{NoFlag, 0x00000001, 0x33333333}, {NoFlag, 0xcccccccc, 0x7ffffffe},
{NoFlag, 0x00000000, 0xcccccccc}, {NoFlag, 0x00000000, 0x55555555},
{NoFlag, 0xffffffff, 0xffffffff}, {NoFlag, 0x0000007e, 0xffff8002},
{NoFlag, 0x80000000, 0x7ffffffd}, {NoFlag, 0xffffff81, 0x0000007e},
{NoFlag, 0x0000007f, 0xffff8001}, {NoFlag, 0xffffffe0, 0x00007ffd},
{NoFlag, 0xffff8003, 0x00000002}, {NoFlag, 0xffffff83, 0x55555555},
{NoFlag, 0xffffff83, 0xffffff80}, {NoFlag, 0xffffff81, 0xffff8000},
{NoFlag, 0x00000020, 0x7ffffffe}, {NoFlag, 0xffffffe0, 0x00000000},
{NoFlag, 0x7fffffff, 0x0000007e}, {NoFlag, 0x80000001, 0xffffffff},
{NoFlag, 0x00000001, 0x80000001}, {NoFlag, 0x00000002, 0x0000007f},
{NoFlag, 0x7fffffff, 0xcccccccc}, {NoFlag, 0x80000001, 0x00007ffe},
{NoFlag, 0xffff8002, 0x0000007e}, {NoFlag, 0x00007ffe, 0xcccccccc},
{NoFlag, 0x80000000, 0xffff8002}, {NoFlag, 0xffffff83, 0x7ffffffe},
{NoFlag, 0xffff8001, 0x00000001}, {NoFlag, 0xffffff81, 0x00000020},
{NoFlag, 0xfffffffe, 0xffff8001}, {NoFlag, 0xffffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x55555555}, {NoFlag, 0x00000020, 0xffffff83},
{NoFlag, 0xffffff83, 0xffff8001}, {NoFlag, 0xffffff83, 0xffff8000},
{NoFlag, 0x00007fff, 0x00000002}, {NoFlag, 0x55555555, 0xffff8000},
{NoFlag, 0x80000001, 0xffffff81}, {NoFlag, 0x00000002, 0x00000000},
{NoFlag, 0x33333333, 0xffffff81}, {NoFlag, 0xffff8001, 0xffffff82},
{NoFlag, 0xcccccccc, 0xffff8003}, {NoFlag, 0xffff8003, 0x7ffffffd},
{NoFlag, 0x0000007d, 0x00007ffe}, {NoFlag, 0xffffff80, 0x0000007d},
{NoFlag, 0xaaaaaaaa, 0x00007ffd}, {NoFlag, 0x80000000, 0xffffff82},
{NoFlag, 0x00000002, 0x7ffffffe}, {NoFlag, 0x00000002, 0xffffff83},
{NoFlag, 0x55555555, 0x00000002}, {NoFlag, 0xffffffff, 0xffffff82},
{NoFlag, 0xaaaaaaaa, 0x00000020}, {NoFlag, 0x00000001, 0xffffff82},
{NoFlag, 0x0000007f, 0xffffff82}, {NoFlag, 0x7ffffffd, 0xaaaaaaaa},
{NoFlag, 0x00007ffe, 0x00000001}, {NoFlag, 0xfffffffd, 0xffffffe0},
{NoFlag, 0xffffff81, 0xffffff83}, {NoFlag, 0x0000007d, 0x00000000},
{NoFlag, 0x0000007d, 0xffff8000}, {NoFlag, 0xffffff81, 0x7fffffff},
{NoFlag, 0xffffffff, 0x80000000}, {NoFlag, 0x00000000, 0x00000001},
{NoFlag, 0x55555555, 0xffffff82}, {NoFlag, 0x00007ffe, 0x00007ffe},
{NoFlag, 0x80000001, 0xfffffffd}, {NoFlag, 0x00007fff, 0x33333333},
{NoFlag, 0x00007fff, 0x80000000}, {NoFlag, 0xcccccccc, 0x00007fff},
{NoFlag, 0xfffffffe, 0xffffffe0}, {NoFlag, 0x7ffffffe, 0x0000007f},
{NoFlag, 0x00007ffd, 0xffff8001}, {NoFlag, 0x00000002, 0x00000001},
{NoFlag, 0x80000000, 0xffffffff}, {NoFlag, 0xffffff83, 0xcccccccc},
{NoFlag, 0xffff8002, 0x7ffffffe}, {NoFlag, 0xaaaaaaaa, 0x00000000},
{NoFlag, 0xffffff80, 0xcccccccc}, {NoFlag, 0x33333333, 0xffffff83},
{NoFlag, 0x0000007e, 0xffffffe0}, {NoFlag, 0x0000007e, 0x00007fff},
{NoFlag, 0x0000007f, 0x00000002}, {NoFlag, 0x7ffffffe, 0xcccccccc},
{NoFlag, 0x0000007d, 0xffffff80}, {NoFlag, 0x00007fff, 0x00000020},
{NoFlag, 0x7ffffffe, 0xfffffffe}, {NoFlag, 0xfffffffe, 0xffffff81},
{NoFlag, 0xffffffff, 0x0000007f}, {NoFlag, 0xffff8002, 0x7ffffffd},
{NoFlag, 0xffff8001, 0xfffffffe}, {NoFlag, 0x33333333, 0xffff8002},
{NoFlag, 0x00000000, 0xffffffff}, {NoFlag, 0x33333333, 0xffffff80},
{NoFlag, 0x0000007f, 0x00007fff}, {NoFlag, 0xffffffff, 0xffff8001},
{NoFlag, 0x7fffffff, 0xffff8002}, {NoFlag, 0x7ffffffd, 0xffffff83},
{NoFlag, 0x7fffffff, 0x0000007f}, {NoFlag, 0xffffff83, 0xfffffffe},
{NoFlag, 0x7ffffffe, 0xffff8003}, {NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0x80000001, 0x0000007f}, {NoFlag, 0x00000020, 0x00000002},
{NoFlag, 0xffffff82, 0xffff8001}, {NoFlag, 0xffffffff, 0x00000001},
{NoFlag, 0xffffff80, 0xffff8002}, {NoFlag, 0xffff8003, 0x7fffffff},
{NoFlag, 0xffffffff, 0xffff8000}, {NoFlag, 0xffff8002, 0x00007ffd},
{NoFlag, 0x00000020, 0xffffff81}, {NoFlag, 0x00000001, 0x55555555},
{NoFlag, 0x7ffffffe, 0x00000020}, {NoFlag, 0x80000000, 0x00000001},
{NoFlag, 0x00007ffd, 0xffff8002}, {NoFlag, 0x7fffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x00007ffd}, {NoFlag, 0x00000000, 0xfffffffd},
{NoFlag, 0xffff8003, 0xffffff80}, {NoFlag, 0x80000001, 0xffffff80},
{NoFlag, 0xffffffff, 0xffff8002}, {NoFlag, 0x00007ffe, 0xffff8002},
{NoFlag, 0xffffff80, 0x00007ffe}, {NoFlag, 0x80000001, 0xffff8001},
{NoFlag, 0x0000007f, 0xffffff80}, {NoFlag, 0xffffff81, 0x80000000},
{NoFlag, 0x00007fff, 0x00007ffe}, {NoFlag, 0x33333333, 0xffff8000},
{NoFlag, 0x33333333, 0x00007fff}, {NoFlag, 0x00000000, 0x0000007d},
{NoFlag, 0x80000001, 0x00000000}, {NoFlag, 0xffffffff, 0x55555555},
{NoFlag, 0x80000001, 0x80000000}, {NoFlag, 0xffffffff, 0xffffff80},
{NoFlag, 0xffffff81, 0xffff8003}, {NoFlag, 0x55555555, 0x80000001},
{NoFlag, 0x7fffffff, 0xffff8001}, {NoFlag, 0xffffff83, 0x00000002},
{NoFlag, 0x0000007e, 0xffffff81}, {NoFlag, 0x80000000, 0xffff8001},
{NoFlag, 0xffffff80, 0xfffffffe}, {NoFlag, 0x0000007e, 0xfffffffd},
{NoFlag, 0xffffffe0, 0xffffffff}, {NoFlag, 0x55555555, 0x80000000},
{NoFlag, 0x0000007d, 0x80000001}, {NoFlag, 0xffffffe0, 0x7ffffffd},
{NoFlag, 0x00000000, 0x00000000}, {NoFlag, 0x55555555, 0x00000001},
{NoFlag, 0x00007ffd, 0x7fffffff}, {NoFlag, 0x55555555, 0xffffffff},
{NoFlag, 0xffff8003, 0x00007fff}, {NoFlag, 0xffffff82, 0x00007fff},
{NoFlag, 0x33333333, 0x55555555}, {NoFlag, 0x00000020, 0x33333333},
{NoFlag, 0x7ffffffe, 0xfffffffd}, {NoFlag, 0x7ffffffe, 0x00000001},
{NoFlag, 0xffffff83, 0xffffffe0}, {NoFlag, 0xfffffffe, 0xaaaaaaaa},
{NoFlag, 0xffff8002, 0x33333333}, {NoFlag, 0xffff8002, 0xffff8003},
{NoFlag, 0x33333333, 0x7fffffff}, {NoFlag, 0xfffffffd, 0xffffff83},
{NoFlag, 0x00000000, 0xffff8000}, {NoFlag, 0xffffff82, 0x55555555},
{NoFlag, 0xffffff82, 0xffffff81}, {NoFlag, 0xcccccccc, 0xfffffffe},
{NoFlag, 0xfffffffd, 0x7fffffff}, {NoFlag, 0x00007fff, 0x7fffffff},
{NoFlag, 0xffffff83, 0xffff8003}, {NoFlag, 0xfffffffe, 0xffffffff},
{NoFlag, 0x7ffffffd, 0x00007ffd}, {NoFlag, 0x7ffffffd, 0x00007fff},
{NoFlag, 0x00007ffd, 0xffffffff}, {NoFlag, 0x00000001, 0xffff8003},
{NoFlag, 0xffffff80, 0xfffffffd}, {NoFlag, 0x33333333, 0x80000000},
{NoFlag, 0xffff8001, 0x00000020}, {NoFlag, 0xcccccccc, 0x00000002},
{NoFlag, 0x00000000, 0x00000002}, {NoFlag, 0x0000007d, 0x00007fff},
{NoFlag, 0xcccccccc, 0x00000001}, {NoFlag, 0xffffff83, 0x00007fff},
{NoFlag, 0x80000001, 0x00000020}, {NoFlag, 0xffff8003, 0xffffffe0},
{NoFlag, 0x00007ffd, 0xaaaaaaaa}, {NoFlag, 0x33333333, 0xffff8001},
{NoFlag, 0xffffff83, 0x80000001}, {NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0x00007ffe, 0xffff8001}, {NoFlag, 0x7ffffffd, 0x00000000},
{NoFlag, 0x00007ffe, 0x33333333}, {NoFlag, 0xffff8001, 0xffffff80},
{NoFlag, 0xfffffffe, 0x55555555}, {NoFlag, 0xffffff82, 0xffffffff}};
static const Inputs kShiftTypes[] = {{NoFlag, 0xabababab, 0x00000000},
{NoFlag, 0xabababab, 0x00000001},
{NoFlag, 0xabababab, 0x00000002},
{NoFlag, 0xabababab, 0x00000020},
{NoFlag, 0xabababab, 0x0000007d},
{NoFlag, 0xabababab, 0x0000007e},
{NoFlag, 0xabababab, 0x0000007f},
{NoFlag, 0xabababab, 0x00007ffd},
{NoFlag, 0xabababab, 0x00007ffe},
{NoFlag, 0xabababab, 0x00007fff},
{NoFlag, 0xabababab, 0x33333333},
{NoFlag, 0xabababab, 0x55555555},
{NoFlag, 0xabababab, 0x7ffffffd},
{NoFlag, 0xabababab, 0x7ffffffe},
{NoFlag, 0xabababab, 0x7fffffff},
{NoFlag, 0xabababab, 0x80000000},
{NoFlag, 0xabababab, 0x80000001},
{NoFlag, 0xabababab, 0xaaaaaaaa},
{NoFlag, 0xabababab, 0xcccccccc},
{NoFlag, 0xabababab, 0xffff8000},
{NoFlag, 0xabababab, 0xffff8001},
{NoFlag, 0xabababab, 0xffff8002},
{NoFlag, 0xabababab, 0xffff8003},
{NoFlag, 0xabababab, 0xffffff80},
{NoFlag, 0xabababab, 0xffffff81},
{NoFlag, 0xabababab, 0xffffff82},
{NoFlag, 0xabababab, 0xffffff83},
{NoFlag, 0xabababab, 0xffffffe0},
{NoFlag, 0xabababab, 0xfffffffd},
{NoFlag, 0xabababab, 0xfffffffe},
{NoFlag, 0xabababab, 0xffffffff}};
static const Inputs kShiftTypes[] =
{{NoFlag, 0xabababab, 0x00000000}, {NoFlag, 0xabababab, 0x00000001},
{NoFlag, 0xabababab, 0x00000002}, {NoFlag, 0xabababab, 0x00000020},
{NoFlag, 0xabababab, 0x0000007d}, {NoFlag, 0xabababab, 0x0000007e},
{NoFlag, 0xabababab, 0x0000007f}, {NoFlag, 0xabababab, 0x00007ffd},
{NoFlag, 0xabababab, 0x00007ffe}, {NoFlag, 0xabababab, 0x00007fff},
{NoFlag, 0xabababab, 0x33333333}, {NoFlag, 0xabababab, 0x55555555},
{NoFlag, 0xabababab, 0x7ffffffd}, {NoFlag, 0xabababab, 0x7ffffffe},
{NoFlag, 0xabababab, 0x7fffffff}, {NoFlag, 0xabababab, 0x80000000},
{NoFlag, 0xabababab, 0x80000001}, {NoFlag, 0xabababab, 0xaaaaaaaa},
{NoFlag, 0xabababab, 0xcccccccc}, {NoFlag, 0xabababab, 0xffff8000},
{NoFlag, 0xabababab, 0xffff8001}, {NoFlag, 0xabababab, 0xffff8002},
{NoFlag, 0xabababab, 0xffff8003}, {NoFlag, 0xabababab, 0xffffff80},
{NoFlag, 0xabababab, 0xffffff81}, {NoFlag, 0xabababab, 0xffffff82},
{NoFlag, 0xabababab, 0xffffff83}, {NoFlag, 0xabababab, 0xffffffe0},
{NoFlag, 0xabababab, 0xfffffffd}, {NoFlag, 0xabababab, 0xfffffffe},
{NoFlag, 0xabababab, 0xffffffff}};
// A loop will be generated for each element of this array.
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -184,238 +184,125 @@ static const Inputs kCondition[] = {{NFlag, 0xabababab, 0xabababab},
{ZCVFlag, 0xabababab, 0xabababab},
{NZCVFlag, 0xabababab, 0xabababab}};
static const Inputs kRdIsRn[] = {{NoFlag, 0x00000000, 0x00000000},
{NoFlag, 0x00000001, 0x00000001},
{NoFlag, 0x00000002, 0x00000002},
{NoFlag, 0x00000020, 0x00000020},
{NoFlag, 0x0000007d, 0x0000007d},
{NoFlag, 0x0000007e, 0x0000007e},
{NoFlag, 0x0000007f, 0x0000007f},
{NoFlag, 0x00007ffd, 0x00007ffd},
{NoFlag, 0x00007ffe, 0x00007ffe},
{NoFlag, 0x00007fff, 0x00007fff},
{NoFlag, 0x33333333, 0x33333333},
{NoFlag, 0x55555555, 0x55555555},
{NoFlag, 0x7ffffffd, 0x7ffffffd},
{NoFlag, 0x7ffffffe, 0x7ffffffe},
{NoFlag, 0x7fffffff, 0x7fffffff},
{NoFlag, 0x80000000, 0x80000000},
{NoFlag, 0x80000001, 0x80000001},
{NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0xcccccccc, 0xcccccccc},
{NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0xffff8001, 0xffff8001},
{NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0xffff8003, 0xffff8003},
{NoFlag, 0xffffff80, 0xffffff80},
{NoFlag, 0xffffff81, 0xffffff81},
{NoFlag, 0xffffff82, 0xffffff82},
{NoFlag, 0xffffff83, 0xffffff83},
{NoFlag, 0xffffffe0, 0xffffffe0},
{NoFlag, 0xfffffffd, 0xfffffffd},
{NoFlag, 0xfffffffe, 0xfffffffe},
{NoFlag, 0xffffffff, 0xffffffff}};
static const Inputs kRdIsRn[] =
{{NoFlag, 0x00000000, 0x00000000}, {NoFlag, 0x00000001, 0x00000001},
{NoFlag, 0x00000002, 0x00000002}, {NoFlag, 0x00000020, 0x00000020},
{NoFlag, 0x0000007d, 0x0000007d}, {NoFlag, 0x0000007e, 0x0000007e},
{NoFlag, 0x0000007f, 0x0000007f}, {NoFlag, 0x00007ffd, 0x00007ffd},
{NoFlag, 0x00007ffe, 0x00007ffe}, {NoFlag, 0x00007fff, 0x00007fff},
{NoFlag, 0x33333333, 0x33333333}, {NoFlag, 0x55555555, 0x55555555},
{NoFlag, 0x7ffffffd, 0x7ffffffd}, {NoFlag, 0x7ffffffe, 0x7ffffffe},
{NoFlag, 0x7fffffff, 0x7fffffff}, {NoFlag, 0x80000000, 0x80000000},
{NoFlag, 0x80000001, 0x80000001}, {NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0xcccccccc, 0xcccccccc}, {NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0xffff8001, 0xffff8001}, {NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0xffff8003, 0xffff8003}, {NoFlag, 0xffffff80, 0xffffff80},
{NoFlag, 0xffffff81, 0xffffff81}, {NoFlag, 0xffffff82, 0xffffff82},
{NoFlag, 0xffffff83, 0xffffff83}, {NoFlag, 0xffffffe0, 0xffffffe0},
{NoFlag, 0xfffffffd, 0xfffffffd}, {NoFlag, 0xfffffffe, 0xfffffffe},
{NoFlag, 0xffffffff, 0xffffffff}};
static const Inputs kRdIsNotRn[] = {{NoFlag, 0x00000002, 0xcccccccc},
{NoFlag, 0x7ffffffd, 0x00007ffe},
{NoFlag, 0xffffff80, 0x00000020},
{NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0x33333333, 0xffffff82},
{NoFlag, 0xffff8001, 0x7ffffffe},
{NoFlag, 0xfffffffd, 0x00007ffe},
{NoFlag, 0xffffff80, 0x80000000},
{NoFlag, 0x00000001, 0x33333333},
{NoFlag, 0xcccccccc, 0x7ffffffe},
{NoFlag, 0x00000000, 0xcccccccc},
{NoFlag, 0x00000000, 0x55555555},
{NoFlag, 0xffffffff, 0xffffffff},
{NoFlag, 0x0000007e, 0xffff8002},
{NoFlag, 0x80000000, 0x7ffffffd},
{NoFlag, 0xffffff81, 0x0000007e},
{NoFlag, 0x0000007f, 0xffff8001},
{NoFlag, 0xffffffe0, 0x00007ffd},
{NoFlag, 0xffff8003, 0x00000002},
{NoFlag, 0xffffff83, 0x55555555},
{NoFlag, 0xffffff83, 0xffffff80},
{NoFlag, 0xffffff81, 0xffff8000},
{NoFlag, 0x00000020, 0x7ffffffe},
{NoFlag, 0xffffffe0, 0x00000000},
{NoFlag, 0x7fffffff, 0x0000007e},
{NoFlag, 0x80000001, 0xffffffff},
{NoFlag, 0x00000001, 0x80000001},
{NoFlag, 0x00000002, 0x0000007f},
{NoFlag, 0x7fffffff, 0xcccccccc},
{NoFlag, 0x80000001, 0x00007ffe},
{NoFlag, 0xffff8002, 0x0000007e},
{NoFlag, 0x00007ffe, 0xcccccccc},
{NoFlag, 0x80000000, 0xffff8002},
{NoFlag, 0xffffff83, 0x7ffffffe},
{NoFlag, 0xffff8001, 0x00000001},
{NoFlag, 0xffffff81, 0x00000020},
{NoFlag, 0xfffffffe, 0xffff8001},
{NoFlag, 0xffffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x55555555},
{NoFlag, 0x00000020, 0xffffff83},
{NoFlag, 0xffffff83, 0xffff8001},
{NoFlag, 0xffffff83, 0xffff8000},
{NoFlag, 0x00007fff, 0x00000002},
{NoFlag, 0x55555555, 0xffff8000},
{NoFlag, 0x80000001, 0xffffff81},
{NoFlag, 0x00000002, 0x00000000},
{NoFlag, 0x33333333, 0xffffff81},
{NoFlag, 0xffff8001, 0xffffff82},
{NoFlag, 0xcccccccc, 0xffff8003},
{NoFlag, 0xffff8003, 0x7ffffffd},
{NoFlag, 0x0000007d, 0x00007ffe},
{NoFlag, 0xffffff80, 0x0000007d},
{NoFlag, 0xaaaaaaaa, 0x00007ffd},
{NoFlag, 0x80000000, 0xffffff82},
{NoFlag, 0x00000002, 0x7ffffffe},
{NoFlag, 0x00000002, 0xffffff83},
{NoFlag, 0x55555555, 0x00000002},
{NoFlag, 0xffffffff, 0xffffff82},
{NoFlag, 0xaaaaaaaa, 0x00000020},
{NoFlag, 0x00000001, 0xffffff82},
{NoFlag, 0x0000007f, 0xffffff82},
{NoFlag, 0x7ffffffd, 0xaaaaaaaa},
{NoFlag, 0x00007ffe, 0x00000001},
{NoFlag, 0xfffffffd, 0xffffffe0},
{NoFlag, 0xffffff81, 0xffffff83},
{NoFlag, 0x0000007d, 0x00000000},
{NoFlag, 0x0000007d, 0xffff8000},
{NoFlag, 0xffffff81, 0x7fffffff},
{NoFlag, 0xffffffff, 0x80000000},
{NoFlag, 0x00000000, 0x00000001},
{NoFlag, 0x55555555, 0xffffff82},
{NoFlag, 0x00007ffe, 0x00007ffe},
{NoFlag, 0x80000001, 0xfffffffd},
{NoFlag, 0x00007fff, 0x33333333},
{NoFlag, 0x00007fff, 0x80000000},
{NoFlag, 0xcccccccc, 0x00007fff},
{NoFlag, 0xfffffffe, 0xffffffe0},
{NoFlag, 0x7ffffffe, 0x0000007f},
{NoFlag, 0x00007ffd, 0xffff8001},
{NoFlag, 0x00000002, 0x00000001},
{NoFlag, 0x80000000, 0xffffffff},
{NoFlag, 0xffffff83, 0xcccccccc},
{NoFlag, 0xffff8002, 0x7ffffffe},
{NoFlag, 0xaaaaaaaa, 0x00000000},
{NoFlag, 0xffffff80, 0xcccccccc},
{NoFlag, 0x33333333, 0xffffff83},
{NoFlag, 0x0000007e, 0xffffffe0},
{NoFlag, 0x0000007e, 0x00007fff},
{NoFlag, 0x0000007f, 0x00000002},
{NoFlag, 0x7ffffffe, 0xcccccccc},
{NoFlag, 0x0000007d, 0xffffff80},
{NoFlag, 0x00007fff, 0x00000020},
{NoFlag, 0x7ffffffe, 0xfffffffe},
{NoFlag, 0xfffffffe, 0xffffff81},
{NoFlag, 0xffffffff, 0x0000007f},
{NoFlag, 0xffff8002, 0x7ffffffd},
{NoFlag, 0xffff8001, 0xfffffffe},
{NoFlag, 0x33333333, 0xffff8002},
{NoFlag, 0x00000000, 0xffffffff},
{NoFlag, 0x33333333, 0xffffff80},
{NoFlag, 0x0000007f, 0x00007fff},
{NoFlag, 0xffffffff, 0xffff8001},
{NoFlag, 0x7fffffff, 0xffff8002},
{NoFlag, 0x7ffffffd, 0xffffff83},
{NoFlag, 0x7fffffff, 0x0000007f},
{NoFlag, 0xffffff83, 0xfffffffe},
{NoFlag, 0x7ffffffe, 0xffff8003},
{NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0x80000001, 0x0000007f},
{NoFlag, 0x00000020, 0x00000002},
{NoFlag, 0xffffff82, 0xffff8001},
{NoFlag, 0xffffffff, 0x00000001},
{NoFlag, 0xffffff80, 0xffff8002},
{NoFlag, 0xffff8003, 0x7fffffff},
{NoFlag, 0xffffffff, 0xffff8000},
{NoFlag, 0xffff8002, 0x00007ffd},
{NoFlag, 0x00000020, 0xffffff81},
{NoFlag, 0x00000001, 0x55555555},
{NoFlag, 0x7ffffffe, 0x00000020},
{NoFlag, 0x80000000, 0x00000001},
{NoFlag, 0x00007ffd, 0xffff8002},
{NoFlag, 0x7fffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x00007ffd},
{NoFlag, 0x00000000, 0xfffffffd},
{NoFlag, 0xffff8003, 0xffffff80},
{NoFlag, 0x80000001, 0xffffff80},
{NoFlag, 0xffffffff, 0xffff8002},
{NoFlag, 0x00007ffe, 0xffff8002},
{NoFlag, 0xffffff80, 0x00007ffe},
{NoFlag, 0x80000001, 0xffff8001},
{NoFlag, 0x0000007f, 0xffffff80},
{NoFlag, 0xffffff81, 0x80000000},
{NoFlag, 0x00007fff, 0x00007ffe},
{NoFlag, 0x33333333, 0xffff8000},
{NoFlag, 0x33333333, 0x00007fff},
{NoFlag, 0x00000000, 0x0000007d},
{NoFlag, 0x80000001, 0x00000000},
{NoFlag, 0xffffffff, 0x55555555},
{NoFlag, 0x80000001, 0x80000000},
{NoFlag, 0xffffffff, 0xffffff80},
{NoFlag, 0xffffff81, 0xffff8003},
{NoFlag, 0x55555555, 0x80000001},
{NoFlag, 0x7fffffff, 0xffff8001},
{NoFlag, 0xffffff83, 0x00000002},
{NoFlag, 0x0000007e, 0xffffff81},
{NoFlag, 0x80000000, 0xffff8001},
{NoFlag, 0xffffff80, 0xfffffffe},
{NoFlag, 0x0000007e, 0xfffffffd},
{NoFlag, 0xffffffe0, 0xffffffff},
{NoFlag, 0x55555555, 0x80000000},
{NoFlag, 0x0000007d, 0x80000001},
{NoFlag, 0xffffffe0, 0x7ffffffd},
{NoFlag, 0x00000000, 0x00000000},
{NoFlag, 0x55555555, 0x00000001},
{NoFlag, 0x00007ffd, 0x7fffffff},
{NoFlag, 0x55555555, 0xffffffff},
{NoFlag, 0xffff8003, 0x00007fff},
{NoFlag, 0xffffff82, 0x00007fff},
{NoFlag, 0x33333333, 0x55555555},
{NoFlag, 0x00000020, 0x33333333},
{NoFlag, 0x7ffffffe, 0xfffffffd},
{NoFlag, 0x7ffffffe, 0x00000001},
{NoFlag, 0xffffff83, 0xffffffe0},
{NoFlag, 0xfffffffe, 0xaaaaaaaa},
{NoFlag, 0xffff8002, 0x33333333},
{NoFlag, 0xffff8002, 0xffff8003},
{NoFlag, 0x33333333, 0x7fffffff},
{NoFlag, 0xfffffffd, 0xffffff83},
{NoFlag, 0x00000000, 0xffff8000},
{NoFlag, 0xffffff82, 0x55555555},
{NoFlag, 0xffffff82, 0xffffff81},
{NoFlag, 0xcccccccc, 0xfffffffe},
{NoFlag, 0xfffffffd, 0x7fffffff},
{NoFlag, 0x00007fff, 0x7fffffff},
{NoFlag, 0xffffff83, 0xffff8003},
{NoFlag, 0xfffffffe, 0xffffffff},
{NoFlag, 0x7ffffffd, 0x00007ffd},
{NoFlag, 0x7ffffffd, 0x00007fff},
{NoFlag, 0x00007ffd, 0xffffffff},
{NoFlag, 0x00000001, 0xffff8003},
{NoFlag, 0xffffff80, 0xfffffffd},
{NoFlag, 0x33333333, 0x80000000},
{NoFlag, 0xffff8001, 0x00000020},
{NoFlag, 0xcccccccc, 0x00000002},
{NoFlag, 0x00000000, 0x00000002},
{NoFlag, 0x0000007d, 0x00007fff},
{NoFlag, 0xcccccccc, 0x00000001},
{NoFlag, 0xffffff83, 0x00007fff},
{NoFlag, 0x80000001, 0x00000020},
{NoFlag, 0xffff8003, 0xffffffe0},
{NoFlag, 0x00007ffd, 0xaaaaaaaa},
{NoFlag, 0x33333333, 0xffff8001},
{NoFlag, 0xffffff83, 0x80000001},
{NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0x00007ffe, 0xffff8001},
{NoFlag, 0x7ffffffd, 0x00000000},
{NoFlag, 0x00007ffe, 0x33333333},
{NoFlag, 0xffff8001, 0xffffff80},
{NoFlag, 0xfffffffe, 0x55555555},
{NoFlag, 0xffffff82, 0xffffffff}};
static const Inputs kRdIsNotRn[] =
{{NoFlag, 0x00000002, 0xcccccccc}, {NoFlag, 0x7ffffffd, 0x00007ffe},
{NoFlag, 0xffffff80, 0x00000020}, {NoFlag, 0xaaaaaaaa, 0xaaaaaaaa},
{NoFlag, 0x33333333, 0xffffff82}, {NoFlag, 0xffff8001, 0x7ffffffe},
{NoFlag, 0xfffffffd, 0x00007ffe}, {NoFlag, 0xffffff80, 0x80000000},
{NoFlag, 0x00000001, 0x33333333}, {NoFlag, 0xcccccccc, 0x7ffffffe},
{NoFlag, 0x00000000, 0xcccccccc}, {NoFlag, 0x00000000, 0x55555555},
{NoFlag, 0xffffffff, 0xffffffff}, {NoFlag, 0x0000007e, 0xffff8002},
{NoFlag, 0x80000000, 0x7ffffffd}, {NoFlag, 0xffffff81, 0x0000007e},
{NoFlag, 0x0000007f, 0xffff8001}, {NoFlag, 0xffffffe0, 0x00007ffd},
{NoFlag, 0xffff8003, 0x00000002}, {NoFlag, 0xffffff83, 0x55555555},
{NoFlag, 0xffffff83, 0xffffff80}, {NoFlag, 0xffffff81, 0xffff8000},
{NoFlag, 0x00000020, 0x7ffffffe}, {NoFlag, 0xffffffe0, 0x00000000},
{NoFlag, 0x7fffffff, 0x0000007e}, {NoFlag, 0x80000001, 0xffffffff},
{NoFlag, 0x00000001, 0x80000001}, {NoFlag, 0x00000002, 0x0000007f},
{NoFlag, 0x7fffffff, 0xcccccccc}, {NoFlag, 0x80000001, 0x00007ffe},
{NoFlag, 0xffff8002, 0x0000007e}, {NoFlag, 0x00007ffe, 0xcccccccc},
{NoFlag, 0x80000000, 0xffff8002}, {NoFlag, 0xffffff83, 0x7ffffffe},
{NoFlag, 0xffff8001, 0x00000001}, {NoFlag, 0xffffff81, 0x00000020},
{NoFlag, 0xfffffffe, 0xffff8001}, {NoFlag, 0xffffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x55555555}, {NoFlag, 0x00000020, 0xffffff83},
{NoFlag, 0xffffff83, 0xffff8001}, {NoFlag, 0xffffff83, 0xffff8000},
{NoFlag, 0x00007fff, 0x00000002}, {NoFlag, 0x55555555, 0xffff8000},
{NoFlag, 0x80000001, 0xffffff81}, {NoFlag, 0x00000002, 0x00000000},
{NoFlag, 0x33333333, 0xffffff81}, {NoFlag, 0xffff8001, 0xffffff82},
{NoFlag, 0xcccccccc, 0xffff8003}, {NoFlag, 0xffff8003, 0x7ffffffd},
{NoFlag, 0x0000007d, 0x00007ffe}, {NoFlag, 0xffffff80, 0x0000007d},
{NoFlag, 0xaaaaaaaa, 0x00007ffd}, {NoFlag, 0x80000000, 0xffffff82},
{NoFlag, 0x00000002, 0x7ffffffe}, {NoFlag, 0x00000002, 0xffffff83},
{NoFlag, 0x55555555, 0x00000002}, {NoFlag, 0xffffffff, 0xffffff82},
{NoFlag, 0xaaaaaaaa, 0x00000020}, {NoFlag, 0x00000001, 0xffffff82},
{NoFlag, 0x0000007f, 0xffffff82}, {NoFlag, 0x7ffffffd, 0xaaaaaaaa},
{NoFlag, 0x00007ffe, 0x00000001}, {NoFlag, 0xfffffffd, 0xffffffe0},
{NoFlag, 0xffffff81, 0xffffff83}, {NoFlag, 0x0000007d, 0x00000000},
{NoFlag, 0x0000007d, 0xffff8000}, {NoFlag, 0xffffff81, 0x7fffffff},
{NoFlag, 0xffffffff, 0x80000000}, {NoFlag, 0x00000000, 0x00000001},
{NoFlag, 0x55555555, 0xffffff82}, {NoFlag, 0x00007ffe, 0x00007ffe},
{NoFlag, 0x80000001, 0xfffffffd}, {NoFlag, 0x00007fff, 0x33333333},
{NoFlag, 0x00007fff, 0x80000000}, {NoFlag, 0xcccccccc, 0x00007fff},
{NoFlag, 0xfffffffe, 0xffffffe0}, {NoFlag, 0x7ffffffe, 0x0000007f},
{NoFlag, 0x00007ffd, 0xffff8001}, {NoFlag, 0x00000002, 0x00000001},
{NoFlag, 0x80000000, 0xffffffff}, {NoFlag, 0xffffff83, 0xcccccccc},
{NoFlag, 0xffff8002, 0x7ffffffe}, {NoFlag, 0xaaaaaaaa, 0x00000000},
{NoFlag, 0xffffff80, 0xcccccccc}, {NoFlag, 0x33333333, 0xffffff83},
{NoFlag, 0x0000007e, 0xffffffe0}, {NoFlag, 0x0000007e, 0x00007fff},
{NoFlag, 0x0000007f, 0x00000002}, {NoFlag, 0x7ffffffe, 0xcccccccc},
{NoFlag, 0x0000007d, 0xffffff80}, {NoFlag, 0x00007fff, 0x00000020},
{NoFlag, 0x7ffffffe, 0xfffffffe}, {NoFlag, 0xfffffffe, 0xffffff81},
{NoFlag, 0xffffffff, 0x0000007f}, {NoFlag, 0xffff8002, 0x7ffffffd},
{NoFlag, 0xffff8001, 0xfffffffe}, {NoFlag, 0x33333333, 0xffff8002},
{NoFlag, 0x00000000, 0xffffffff}, {NoFlag, 0x33333333, 0xffffff80},
{NoFlag, 0x0000007f, 0x00007fff}, {NoFlag, 0xffffffff, 0xffff8001},
{NoFlag, 0x7fffffff, 0xffff8002}, {NoFlag, 0x7ffffffd, 0xffffff83},
{NoFlag, 0x7fffffff, 0x0000007f}, {NoFlag, 0xffffff83, 0xfffffffe},
{NoFlag, 0x7ffffffe, 0xffff8003}, {NoFlag, 0xffff8002, 0xffff8002},
{NoFlag, 0x80000001, 0x0000007f}, {NoFlag, 0x00000020, 0x00000002},
{NoFlag, 0xffffff82, 0xffff8001}, {NoFlag, 0xffffffff, 0x00000001},
{NoFlag, 0xffffff80, 0xffff8002}, {NoFlag, 0xffff8003, 0x7fffffff},
{NoFlag, 0xffffffff, 0xffff8000}, {NoFlag, 0xffff8002, 0x00007ffd},
{NoFlag, 0x00000020, 0xffffff81}, {NoFlag, 0x00000001, 0x55555555},
{NoFlag, 0x7ffffffe, 0x00000020}, {NoFlag, 0x80000000, 0x00000001},
{NoFlag, 0x00007ffd, 0xffff8002}, {NoFlag, 0x7fffffff, 0xfffffffe},
{NoFlag, 0xcccccccc, 0x00007ffd}, {NoFlag, 0x00000000, 0xfffffffd},
{NoFlag, 0xffff8003, 0xffffff80}, {NoFlag, 0x80000001, 0xffffff80},
{NoFlag, 0xffffffff, 0xffff8002}, {NoFlag, 0x00007ffe, 0xffff8002},
{NoFlag, 0xffffff80, 0x00007ffe}, {NoFlag, 0x80000001, 0xffff8001},
{NoFlag, 0x0000007f, 0xffffff80}, {NoFlag, 0xffffff81, 0x80000000},
{NoFlag, 0x00007fff, 0x00007ffe}, {NoFlag, 0x33333333, 0xffff8000},
{NoFlag, 0x33333333, 0x00007fff}, {NoFlag, 0x00000000, 0x0000007d},
{NoFlag, 0x80000001, 0x00000000}, {NoFlag, 0xffffffff, 0x55555555},
{NoFlag, 0x80000001, 0x80000000}, {NoFlag, 0xffffffff, 0xffffff80},
{NoFlag, 0xffffff81, 0xffff8003}, {NoFlag, 0x55555555, 0x80000001},
{NoFlag, 0x7fffffff, 0xffff8001}, {NoFlag, 0xffffff83, 0x00000002},
{NoFlag, 0x0000007e, 0xffffff81}, {NoFlag, 0x80000000, 0xffff8001},
{NoFlag, 0xffffff80, 0xfffffffe}, {NoFlag, 0x0000007e, 0xfffffffd},
{NoFlag, 0xffffffe0, 0xffffffff}, {NoFlag, 0x55555555, 0x80000000},
{NoFlag, 0x0000007d, 0x80000001}, {NoFlag, 0xffffffe0, 0x7ffffffd},
{NoFlag, 0x00000000, 0x00000000}, {NoFlag, 0x55555555, 0x00000001},
{NoFlag, 0x00007ffd, 0x7fffffff}, {NoFlag, 0x55555555, 0xffffffff},
{NoFlag, 0xffff8003, 0x00007fff}, {NoFlag, 0xffffff82, 0x00007fff},
{NoFlag, 0x33333333, 0x55555555}, {NoFlag, 0x00000020, 0x33333333},
{NoFlag, 0x7ffffffe, 0xfffffffd}, {NoFlag, 0x7ffffffe, 0x00000001},
{NoFlag, 0xffffff83, 0xffffffe0}, {NoFlag, 0xfffffffe, 0xaaaaaaaa},
{NoFlag, 0xffff8002, 0x33333333}, {NoFlag, 0xffff8002, 0xffff8003},
{NoFlag, 0x33333333, 0x7fffffff}, {NoFlag, 0xfffffffd, 0xffffff83},
{NoFlag, 0x00000000, 0xffff8000}, {NoFlag, 0xffffff82, 0x55555555},
{NoFlag, 0xffffff82, 0xffffff81}, {NoFlag, 0xcccccccc, 0xfffffffe},
{NoFlag, 0xfffffffd, 0x7fffffff}, {NoFlag, 0x00007fff, 0x7fffffff},
{NoFlag, 0xffffff83, 0xffff8003}, {NoFlag, 0xfffffffe, 0xffffffff},
{NoFlag, 0x7ffffffd, 0x00007ffd}, {NoFlag, 0x7ffffffd, 0x00007fff},
{NoFlag, 0x00007ffd, 0xffffffff}, {NoFlag, 0x00000001, 0xffff8003},
{NoFlag, 0xffffff80, 0xfffffffd}, {NoFlag, 0x33333333, 0x80000000},
{NoFlag, 0xffff8001, 0x00000020}, {NoFlag, 0xcccccccc, 0x00000002},
{NoFlag, 0x00000000, 0x00000002}, {NoFlag, 0x0000007d, 0x00007fff},
{NoFlag, 0xcccccccc, 0x00000001}, {NoFlag, 0xffffff83, 0x00007fff},
{NoFlag, 0x80000001, 0x00000020}, {NoFlag, 0xffff8003, 0xffffffe0},
{NoFlag, 0x00007ffd, 0xaaaaaaaa}, {NoFlag, 0x33333333, 0xffff8001},
{NoFlag, 0xffffff83, 0x80000001}, {NoFlag, 0xffff8000, 0xffff8000},
{NoFlag, 0x00007ffe, 0xffff8001}, {NoFlag, 0x7ffffffd, 0x00000000},
{NoFlag, 0x00007ffe, 0x33333333}, {NoFlag, 0xffff8001, 0xffffff80},
{NoFlag, 0xfffffffe, 0x55555555}, {NoFlag, 0xffffff82, 0xffffffff}};
// A loop will be generated for each element of this array.
@@ -591,11 +478,11 @@ struct TestResult {
#include "aarch32/traces/simulator-cond-rd-operand-rn-movs-t32.h"
#include "aarch32/traces/simulator-cond-rd-operand-rn-mvn-t32.h"
#include "aarch32/traces/simulator-cond-rd-operand-rn-mvns-t32.h"
#include "aarch32/traces/simulator-cond-rd-operand-rn-teq-t32.h"
#include "aarch32/traces/simulator-cond-rd-operand-rn-tst-t32.h"
#include "aarch32/traces/simulator-cond-rd-operand-rn-sxtb-t32.h"
#include "aarch32/traces/simulator-cond-rd-operand-rn-sxtb16-t32.h"
#include "aarch32/traces/simulator-cond-rd-operand-rn-sxth-t32.h"
#include "aarch32/traces/simulator-cond-rd-operand-rn-teq-t32.h"
#include "aarch32/traces/simulator-cond-rd-operand-rn-tst-t32.h"
#include "aarch32/traces/simulator-cond-rd-operand-rn-uxtb-t32.h"
#include "aarch32/traces/simulator-cond-rd-operand-rn-uxtb16-t32.h"
#include "aarch32/traces/simulator-cond-rd-operand-rn-uxth-t32.h"
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -1054,12 +1054,20 @@ struct TestResult {
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-adds-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-and-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-ands-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-asr-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-asrs-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-bic-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-bics-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-eor-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-eors-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-lsl-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-lsls-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-lsr-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-lsrs-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-orr-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-orrs-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-ror-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-rors-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-rsb-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-rsbs-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-rsc-a32.h"
@@ -1074,14 +1082,6 @@ struct TestResult {
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-uxtab-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-uxtab16-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-uxtah-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-asr-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-asrs-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-lsl-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-lsls-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-lsr-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-lsrs-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-ror-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-rors-a32.h"
// The maximum number of errors to report in detail for each test.
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -1054,14 +1054,22 @@ struct TestResult {
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-adds-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-and-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-ands-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-asr-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-asrs-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-bic-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-bics-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-eor-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-eors-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-lsl-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-lsls-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-lsr-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-lsrs-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-orn-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-orns-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-orr-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-orrs-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-ror-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-rors-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-rsb-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-rsbs-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-sbc-t32.h"
@@ -1074,14 +1082,6 @@ struct TestResult {
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-uxtab-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-uxtab16-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-uxtah-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-asr-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-asrs-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-lsl-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-lsls-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-lsr-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-lsrs-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-ror-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-operand-rm-rors-t32.h"
// The maximum number of errors to report in detail for each test.
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -1433,13 +1433,21 @@ struct TestResult {
// values. The reference arrays are names `kReference{mnemonic}`.
#include "aarch32/traces/simulator-cond-rd-rn-rm-mul-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-muls-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qadd-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qadd16-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qadd8-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qasx-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qdadd-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qdsub-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qsax-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qsub-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qsub16-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qsub8-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-sadd16-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-sadd8-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-sasx-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-sdiv-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-sel-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-shadd16-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-shadd8-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-shasx-a32.h"
@@ -1458,6 +1466,12 @@ struct TestResult {
#include "aarch32/traces/simulator-cond-rd-rn-rm-smulwt-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-smusd-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-smusdx-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-ssax-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-ssub16-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-ssub8-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-uadd16-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-uadd8-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-uasx-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-udiv-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-uhadd16-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-uhadd8-a32.h"
@@ -1472,23 +1486,9 @@ struct TestResult {
#include "aarch32/traces/simulator-cond-rd-rn-rm-uqsub16-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-uqsub8-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-usad8-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-sadd16-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-sadd8-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-sasx-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-sel-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-ssax-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-ssub16-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-ssub8-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-uadd16-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-uadd8-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-uasx-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-usax-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-usub16-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-usub8-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qadd-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qdadd-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qdsub-a32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qsub-a32.h"
// The maximum number of errors to report in detail for each test.
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -1431,13 +1431,21 @@ struct TestResult {
// These headers each contain an array of `TestResult` with the reference output
// values. The reference arrays are names `kReference{mnemonic}`.
#include "aarch32/traces/simulator-cond-rd-rn-rm-mul-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qadd-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qadd16-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qadd8-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qasx-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qdadd-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qdsub-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qsax-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qsub-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qsub16-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qsub8-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-sadd16-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-sadd8-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-sasx-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-sdiv-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-sel-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-shadd16-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-shadd8-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-shasx-t32.h"
@@ -1456,6 +1464,12 @@ struct TestResult {
#include "aarch32/traces/simulator-cond-rd-rn-rm-smulwt-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-smusd-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-smusdx-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-ssax-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-ssub16-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-ssub8-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-uadd16-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-uadd8-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-uasx-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-udiv-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-uhadd16-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-uhadd8-t32.h"
@@ -1470,23 +1484,9 @@ struct TestResult {
#include "aarch32/traces/simulator-cond-rd-rn-rm-uqsub16-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-uqsub8-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-usad8-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-sadd16-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-sadd8-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-sasx-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-sel-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-ssax-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-ssub16-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-ssub8-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-uadd16-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-uadd8-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-uasx-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-usax-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-usub16-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-usub8-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qadd-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qdadd-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qdsub-t32.h"
#include "aarch32/traces/simulator-cond-rd-rn-rm-qsub-t32.h"
// The maximum number of errors to report in detail for each test.
File diff suppressed because it is too large Load Diff
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -172,37 +172,18 @@ static const Inputs kCondition[] = {{NFlag, 0xabababab},
{ZCVFlag, 0xabababab},
{NZCVFlag, 0xabababab}};
static const Inputs kModifiedImmediate[] = {{NoFlag, 0x00000000},
{NoFlag, 0x00000001},
{NoFlag, 0x00000002},
{NoFlag, 0x00000020},
{NoFlag, 0x0000007d},
{NoFlag, 0x0000007e},
{NoFlag, 0x0000007f},
{NoFlag, 0x00007ffd},
{NoFlag, 0x00007ffe},
{NoFlag, 0x00007fff},
{NoFlag, 0x33333333},
{NoFlag, 0x55555555},
{NoFlag, 0x7ffffffd},
{NoFlag, 0x7ffffffe},
{NoFlag, 0x7fffffff},
{NoFlag, 0x80000000},
{NoFlag, 0x80000001},
{NoFlag, 0xaaaaaaaa},
{NoFlag, 0xcccccccc},
{NoFlag, 0xffff8000},
{NoFlag, 0xffff8001},
{NoFlag, 0xffff8002},
{NoFlag, 0xffff8003},
{NoFlag, 0xffffff80},
{NoFlag, 0xffffff81},
{NoFlag, 0xffffff82},
{NoFlag, 0xffffff83},
{NoFlag, 0xffffffe0},
{NoFlag, 0xfffffffd},
{NoFlag, 0xfffffffe},
{NoFlag, 0xffffffff}};
static const Inputs kModifiedImmediate[] =
{{NoFlag, 0x00000000}, {NoFlag, 0x00000001}, {NoFlag, 0x00000002},
{NoFlag, 0x00000020}, {NoFlag, 0x0000007d}, {NoFlag, 0x0000007e},
{NoFlag, 0x0000007f}, {NoFlag, 0x00007ffd}, {NoFlag, 0x00007ffe},
{NoFlag, 0x00007fff}, {NoFlag, 0x33333333}, {NoFlag, 0x55555555},
{NoFlag, 0x7ffffffd}, {NoFlag, 0x7ffffffe}, {NoFlag, 0x7fffffff},
{NoFlag, 0x80000000}, {NoFlag, 0x80000001}, {NoFlag, 0xaaaaaaaa},
{NoFlag, 0xcccccccc}, {NoFlag, 0xffff8000}, {NoFlag, 0xffff8001},
{NoFlag, 0xffff8002}, {NoFlag, 0xffff8003}, {NoFlag, 0xffffff80},
{NoFlag, 0xffffff81}, {NoFlag, 0xffffff82}, {NoFlag, 0xffffff83},
{NoFlag, 0xffffffe0}, {NoFlag, 0xfffffffd}, {NoFlag, 0xfffffffe},
{NoFlag, 0xffffffff}};
// A loop will be generated for each element of this array.
File diff suppressed because it is too large Load Diff
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
+203 -401
View File
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -160,407 +160,209 @@ struct TestLoopData {
const Inputs* inputs;
};
static const Inputs kRnIsRm[] = {{0xffffffe0, 0x00007fff, 0x00007fff},
{0xaaaaaaaa, 0x00007fff, 0x00007fff},
{0xffffff82, 0x7ffffffe, 0x7ffffffe},
{0x7ffffffd, 0x33333333, 0x33333333},
{0x00007ffd, 0x00000002, 0x00000002},
{0xffffff80, 0xfffffffd, 0xfffffffd},
{0xffffff82, 0x33333333, 0x33333333},
{0xcccccccc, 0xffff8002, 0xffff8002},
{0x55555555, 0xffffffe0, 0xffffffe0},
{0x00007fff, 0xffffffff, 0xffffffff},
{0x55555555, 0x33333333, 0x33333333},
{0x7ffffffd, 0xffff8002, 0xffff8002},
{0x00000020, 0xffffff83, 0xffffff83},
{0x0000007e, 0x00007fff, 0x00007fff},
{0xfffffffe, 0xffffff82, 0xffffff82},
{0xffffff82, 0x00007fff, 0x00007fff},
{0xffffff82, 0xfffffffd, 0xfffffffd},
{0x80000000, 0x7fffffff, 0x7fffffff},
{0x55555555, 0x00000002, 0x00000002},
{0xfffffffe, 0xffffff80, 0xffffff80},
{0xfffffffe, 0x00000002, 0x00000002},
{0xfffffffe, 0x00000020, 0x00000020},
{0xfffffffe, 0x00007ffd, 0x00007ffd},
{0x0000007f, 0x33333333, 0x33333333},
{0xfffffffd, 0xfffffffe, 0xfffffffe},
{0x80000001, 0x7ffffffd, 0x7ffffffd},
{0x7ffffffe, 0xffffff83, 0xffffff83},
{0xffffffe0, 0x00000002, 0x00000002},
{0x00007ffe, 0xffffff83, 0xffffff83},
{0xffffff82, 0xffffff80, 0xffffff80},
{0x0000007e, 0x33333333, 0x33333333},
{0xffff8001, 0xfffffffe, 0xfffffffe},
{0xfffffffe, 0xffffff81, 0xffffff81},
{0x00000001, 0xffffff83, 0xffffff83},
{0xfffffffe, 0xaaaaaaaa, 0xaaaaaaaa},
{0xcccccccc, 0xffffff80, 0xffffff80},
{0xffffff83, 0x0000007f, 0x0000007f},
{0x00007ffd, 0x00000020, 0x00000020},
{0x0000007d, 0xfffffffd, 0xfffffffd},
{0x7ffffffe, 0xaaaaaaaa, 0xaaaaaaaa},
{0xffffff83, 0x00000001, 0x00000001},
{0x0000007d, 0xffff8000, 0xffff8000},
{0xffffffe0, 0x00000020, 0x00000020},
{0xffff8003, 0xffffff80, 0xffffff80},
{0x00000000, 0xaaaaaaaa, 0xaaaaaaaa},
{0x00007fff, 0x00000020, 0x00000020},
{0x80000000, 0x0000007d, 0x0000007d},
{0xffffff81, 0x0000007e, 0x0000007e},
{0xcccccccc, 0x00000020, 0x00000020},
{0xffffff81, 0x33333333, 0x33333333},
{0xffff8002, 0xffffffe0, 0xffffffe0},
{0xffffffe0, 0x00007ffe, 0x00007ffe},
{0xffff8002, 0xaaaaaaaa, 0xaaaaaaaa},
{0xffff8001, 0x00007ffe, 0x00007ffe},
{0x80000000, 0xcccccccc, 0xcccccccc},
{0x7ffffffd, 0x00000002, 0x00000002},
{0xcccccccc, 0x0000007f, 0x0000007f},
{0x7ffffffe, 0xffffff82, 0xffffff82},
{0x00000001, 0x0000007e, 0x0000007e},
{0x00007ffd, 0x00007ffe, 0x00007ffe},
{0x7ffffffd, 0xfffffffe, 0xfffffffe},
{0x00000001, 0x80000001, 0x80000001},
{0x00007ffe, 0x7fffffff, 0x7fffffff},
{0xffff8001, 0xffff8002, 0xffff8002},
{0x00000001, 0xffff8003, 0xffff8003},
{0x00000002, 0xfffffffe, 0xfffffffe},
{0x00000002, 0x00007ffd, 0x00007ffd},
{0x7ffffffe, 0xfffffffd, 0xfffffffd},
{0xffff8001, 0x7ffffffd, 0x7ffffffd},
{0x7ffffffd, 0x55555555, 0x55555555},
{0x80000000, 0xffffff80, 0xffffff80},
{0xffff8002, 0xffff8003, 0xffff8003},
{0xffffffff, 0x00000020, 0x00000020},
{0xfffffffe, 0x00000001, 0x00000001},
{0x00007fff, 0x00007fff, 0x00007fff},
{0x00000000, 0xffffff83, 0xffffff83},
{0x33333333, 0xaaaaaaaa, 0xaaaaaaaa},
{0x0000007d, 0x7ffffffe, 0x7ffffffe},
{0xffff8003, 0xffff8001, 0xffff8001},
{0xfffffffd, 0xcccccccc, 0xcccccccc},
{0x80000000, 0x80000001, 0x80000001},
{0xffff8002, 0x00000002, 0x00000002},
{0xfffffffd, 0xffffffe0, 0xffffffe0},
{0xffffffe0, 0xffffff82, 0xffffff82},
{0x33333333, 0x00007ffe, 0x00007ffe},
{0xffff8002, 0xffffff80, 0xffffff80},
{0xffffff81, 0x80000000, 0x80000000},
{0x00000000, 0x80000000, 0x80000000},
{0x00000000, 0xcccccccc, 0xcccccccc},
{0x00000020, 0xffffffe0, 0xffffffe0},
{0x00007ffe, 0xffffffe0, 0xffffffe0},
{0xffffff81, 0xfffffffe, 0xfffffffe},
{0x00000002, 0x00007ffe, 0x00007ffe},
{0xffff8000, 0x7fffffff, 0x7fffffff},
{0x00000002, 0x55555555, 0x55555555},
{0xffff8000, 0x55555555, 0x55555555},
{0xffff8001, 0x00000020, 0x00000020},
{0xffffffff, 0x55555555, 0x55555555},
{0x33333333, 0x00000020, 0x00000020},
{0xfffffffd, 0x7fffffff, 0x7fffffff},
{0x7ffffffd, 0x7fffffff, 0x7fffffff},
{0xaaaaaaaa, 0xffffff81, 0xffffff81},
{0x00007ffd, 0x80000001, 0x80000001},
{0x7ffffffe, 0xffffffff, 0xffffffff},
{0x00007ffe, 0x7ffffffe, 0x7ffffffe},
{0xffff8001, 0x55555555, 0x55555555},
{0xffffff80, 0xfffffffe, 0xfffffffe},
{0x0000007e, 0x7ffffffd, 0x7ffffffd},
{0x00000000, 0x00007ffd, 0x00007ffd},
{0x00000020, 0x80000001, 0x80000001},
{0xffffff83, 0xffffffe0, 0xffffffe0},
{0x55555555, 0xffff8000, 0xffff8000},
{0x33333333, 0xffff8002, 0xffff8002},
{0x7ffffffd, 0x0000007f, 0x0000007f},
{0x00000002, 0xffffff82, 0xffffff82},
{0xfffffffe, 0xcccccccc, 0xcccccccc},
{0x33333333, 0xffffff82, 0xffffff82},
{0x7ffffffd, 0x00007ffd, 0x00007ffd},
{0x00000002, 0xffffff80, 0xffffff80},
{0xffff8001, 0x00000000, 0x00000000},
{0x7ffffffe, 0x0000007d, 0x0000007d},
{0x00000001, 0x00000020, 0x00000020},
{0xaaaaaaaa, 0xffffff82, 0xffffff82},
{0x00000001, 0xfffffffd, 0xfffffffd},
{0x80000001, 0xfffffffe, 0xfffffffe},
{0xffffff80, 0x80000000, 0x80000000},
{0x80000000, 0xffffffff, 0xffffffff},
{0x00000001, 0x00000001, 0x00000001},
{0x80000001, 0xffff8003, 0xffff8003},
{0xffffffff, 0xffffff83, 0xffffff83},
{0x00007ffe, 0x00007ffe, 0x00007ffe},
{0x7ffffffd, 0xcccccccc, 0xcccccccc},
{0xffff8003, 0xcccccccc, 0xcccccccc},
{0xcccccccc, 0x00007fff, 0x00007fff},
{0x00000002, 0x7ffffffd, 0x7ffffffd},
{0x00000002, 0xffff8002, 0xffff8002},
{0xffffff80, 0x33333333, 0x33333333},
{0x55555555, 0xffffff82, 0xffffff82},
{0x7fffffff, 0x00007fff, 0x00007fff},
{0x33333333, 0x00000001, 0x00000001},
{0x33333333, 0xffffffe0, 0xffffffe0},
{0xffffff83, 0x0000007e, 0x0000007e},
{0x00000002, 0xffff8001, 0xffff8001},
{0xcccccccc, 0xffffffe0, 0xffffffe0},
{0xffff8000, 0x7ffffffe, 0x7ffffffe},
{0x00007ffe, 0xffffff81, 0xffffff81},
{0x7ffffffd, 0xffffffe0, 0xffffffe0},
{0x00007fff, 0xffffff81, 0xffffff81},
{0xffffffff, 0x00007ffd, 0x00007ffd},
{0x00007fff, 0x80000001, 0x80000001},
{0xffffffff, 0xcccccccc, 0xcccccccc},
{0x00007ffd, 0x0000007d, 0x0000007d},
{0x0000007e, 0x00000000, 0x00000000},
{0x0000007f, 0x7ffffffe, 0x7ffffffe},
{0x00000020, 0xffffff82, 0xffffff82},
{0xcccccccc, 0x80000001, 0x80000001},
{0xffff8002, 0x00007ffd, 0x00007ffd},
{0xffff8000, 0x00000001, 0x00000001},
{0xffffff83, 0xffffff83, 0xffffff83},
{0x00000002, 0xffffffe0, 0xffffffe0},
{0xfffffffe, 0xffff8000, 0xffff8000},
{0x7ffffffe, 0xffffff80, 0xffffff80},
{0x0000007f, 0xffffff81, 0xffffff81},
{0xffffffff, 0x0000007f, 0x0000007f},
{0x7ffffffe, 0x0000007e, 0x0000007e},
{0x80000000, 0xfffffffd, 0xfffffffd},
{0x33333333, 0x0000007d, 0x0000007d},
{0x80000001, 0xcccccccc, 0xcccccccc},
{0xaaaaaaaa, 0x7ffffffd, 0x7ffffffd},
{0x7fffffff, 0x0000007f, 0x0000007f},
{0x0000007e, 0xffff8001, 0xffff8001},
{0x0000007d, 0xaaaaaaaa, 0xaaaaaaaa},
{0xffffff82, 0x55555555, 0x55555555},
{0x55555555, 0xffffff81, 0xffffff81},
{0xcccccccc, 0xffffff82, 0xffffff82},
{0x0000007d, 0x0000007d, 0x0000007d},
{0xfffffffd, 0xfffffffd, 0xfffffffd},
{0xffffff82, 0xffff8002, 0xffff8002},
{0xffffffe0, 0x00000001, 0x00000001},
{0x0000007d, 0x00007ffe, 0x00007ffe},
{0xfffffffe, 0xffff8003, 0xffff8003},
{0x00000001, 0xffff8001, 0xffff8001},
{0xffff8003, 0x00007ffe, 0x00007ffe},
{0x7ffffffd, 0x00000020, 0x00000020},
{0xfffffffd, 0x00007ffe, 0x00007ffe},
{0x7fffffff, 0xfffffffd, 0xfffffffd},
{0x7fffffff, 0xffff8001, 0xffff8001},
{0xffff8003, 0xffffffff, 0xffffffff},
{0x0000007d, 0x33333333, 0x33333333},
{0xffffffff, 0x00000000, 0x00000000},
{0xffffffe0, 0xffffff81, 0xffffff81},
{0xffffffe0, 0xffffffff, 0xffffffff},
{0x00007ffd, 0x00007ffd, 0x00007ffd},
{0x00000002, 0x33333333, 0x33333333},
{0x0000007f, 0x00000002, 0x00000002},
{0xffff8000, 0x0000007e, 0x0000007e},
{0x80000000, 0x00007fff, 0x00007fff},
{0xffff8000, 0xfffffffd, 0xfffffffd},
{0xffff8002, 0xcccccccc, 0xcccccccc},
{0xffff8003, 0xffffff82, 0xffffff82}};
static const Inputs kRnIsRm[] = {
{0xffffffe0, 0x00007fff, 0x00007fff}, {0xaaaaaaaa, 0x00007fff, 0x00007fff},
{0xffffff82, 0x7ffffffe, 0x7ffffffe}, {0x7ffffffd, 0x33333333, 0x33333333},
{0x00007ffd, 0x00000002, 0x00000002}, {0xffffff80, 0xfffffffd, 0xfffffffd},
{0xffffff82, 0x33333333, 0x33333333}, {0xcccccccc, 0xffff8002, 0xffff8002},
{0x55555555, 0xffffffe0, 0xffffffe0}, {0x00007fff, 0xffffffff, 0xffffffff},
{0x55555555, 0x33333333, 0x33333333}, {0x7ffffffd, 0xffff8002, 0xffff8002},
{0x00000020, 0xffffff83, 0xffffff83}, {0x0000007e, 0x00007fff, 0x00007fff},
{0xfffffffe, 0xffffff82, 0xffffff82}, {0xffffff82, 0x00007fff, 0x00007fff},
{0xffffff82, 0xfffffffd, 0xfffffffd}, {0x80000000, 0x7fffffff, 0x7fffffff},
{0x55555555, 0x00000002, 0x00000002}, {0xfffffffe, 0xffffff80, 0xffffff80},
{0xfffffffe, 0x00000002, 0x00000002}, {0xfffffffe, 0x00000020, 0x00000020},
{0xfffffffe, 0x00007ffd, 0x00007ffd}, {0x0000007f, 0x33333333, 0x33333333},
{0xfffffffd, 0xfffffffe, 0xfffffffe}, {0x80000001, 0x7ffffffd, 0x7ffffffd},
{0x7ffffffe, 0xffffff83, 0xffffff83}, {0xffffffe0, 0x00000002, 0x00000002},
{0x00007ffe, 0xffffff83, 0xffffff83}, {0xffffff82, 0xffffff80, 0xffffff80},
{0x0000007e, 0x33333333, 0x33333333}, {0xffff8001, 0xfffffffe, 0xfffffffe},
{0xfffffffe, 0xffffff81, 0xffffff81}, {0x00000001, 0xffffff83, 0xffffff83},
{0xfffffffe, 0xaaaaaaaa, 0xaaaaaaaa}, {0xcccccccc, 0xffffff80, 0xffffff80},
{0xffffff83, 0x0000007f, 0x0000007f}, {0x00007ffd, 0x00000020, 0x00000020},
{0x0000007d, 0xfffffffd, 0xfffffffd}, {0x7ffffffe, 0xaaaaaaaa, 0xaaaaaaaa},
{0xffffff83, 0x00000001, 0x00000001}, {0x0000007d, 0xffff8000, 0xffff8000},
{0xffffffe0, 0x00000020, 0x00000020}, {0xffff8003, 0xffffff80, 0xffffff80},
{0x00000000, 0xaaaaaaaa, 0xaaaaaaaa}, {0x00007fff, 0x00000020, 0x00000020},
{0x80000000, 0x0000007d, 0x0000007d}, {0xffffff81, 0x0000007e, 0x0000007e},
{0xcccccccc, 0x00000020, 0x00000020}, {0xffffff81, 0x33333333, 0x33333333},
{0xffff8002, 0xffffffe0, 0xffffffe0}, {0xffffffe0, 0x00007ffe, 0x00007ffe},
{0xffff8002, 0xaaaaaaaa, 0xaaaaaaaa}, {0xffff8001, 0x00007ffe, 0x00007ffe},
{0x80000000, 0xcccccccc, 0xcccccccc}, {0x7ffffffd, 0x00000002, 0x00000002},
{0xcccccccc, 0x0000007f, 0x0000007f}, {0x7ffffffe, 0xffffff82, 0xffffff82},
{0x00000001, 0x0000007e, 0x0000007e}, {0x00007ffd, 0x00007ffe, 0x00007ffe},
{0x7ffffffd, 0xfffffffe, 0xfffffffe}, {0x00000001, 0x80000001, 0x80000001},
{0x00007ffe, 0x7fffffff, 0x7fffffff}, {0xffff8001, 0xffff8002, 0xffff8002},
{0x00000001, 0xffff8003, 0xffff8003}, {0x00000002, 0xfffffffe, 0xfffffffe},
{0x00000002, 0x00007ffd, 0x00007ffd}, {0x7ffffffe, 0xfffffffd, 0xfffffffd},
{0xffff8001, 0x7ffffffd, 0x7ffffffd}, {0x7ffffffd, 0x55555555, 0x55555555},
{0x80000000, 0xffffff80, 0xffffff80}, {0xffff8002, 0xffff8003, 0xffff8003},
{0xffffffff, 0x00000020, 0x00000020}, {0xfffffffe, 0x00000001, 0x00000001},
{0x00007fff, 0x00007fff, 0x00007fff}, {0x00000000, 0xffffff83, 0xffffff83},
{0x33333333, 0xaaaaaaaa, 0xaaaaaaaa}, {0x0000007d, 0x7ffffffe, 0x7ffffffe},
{0xffff8003, 0xffff8001, 0xffff8001}, {0xfffffffd, 0xcccccccc, 0xcccccccc},
{0x80000000, 0x80000001, 0x80000001}, {0xffff8002, 0x00000002, 0x00000002},
{0xfffffffd, 0xffffffe0, 0xffffffe0}, {0xffffffe0, 0xffffff82, 0xffffff82},
{0x33333333, 0x00007ffe, 0x00007ffe}, {0xffff8002, 0xffffff80, 0xffffff80},
{0xffffff81, 0x80000000, 0x80000000}, {0x00000000, 0x80000000, 0x80000000},
{0x00000000, 0xcccccccc, 0xcccccccc}, {0x00000020, 0xffffffe0, 0xffffffe0},
{0x00007ffe, 0xffffffe0, 0xffffffe0}, {0xffffff81, 0xfffffffe, 0xfffffffe},
{0x00000002, 0x00007ffe, 0x00007ffe}, {0xffff8000, 0x7fffffff, 0x7fffffff},
{0x00000002, 0x55555555, 0x55555555}, {0xffff8000, 0x55555555, 0x55555555},
{0xffff8001, 0x00000020, 0x00000020}, {0xffffffff, 0x55555555, 0x55555555},
{0x33333333, 0x00000020, 0x00000020}, {0xfffffffd, 0x7fffffff, 0x7fffffff},
{0x7ffffffd, 0x7fffffff, 0x7fffffff}, {0xaaaaaaaa, 0xffffff81, 0xffffff81},
{0x00007ffd, 0x80000001, 0x80000001}, {0x7ffffffe, 0xffffffff, 0xffffffff},
{0x00007ffe, 0x7ffffffe, 0x7ffffffe}, {0xffff8001, 0x55555555, 0x55555555},
{0xffffff80, 0xfffffffe, 0xfffffffe}, {0x0000007e, 0x7ffffffd, 0x7ffffffd},
{0x00000000, 0x00007ffd, 0x00007ffd}, {0x00000020, 0x80000001, 0x80000001},
{0xffffff83, 0xffffffe0, 0xffffffe0}, {0x55555555, 0xffff8000, 0xffff8000},
{0x33333333, 0xffff8002, 0xffff8002}, {0x7ffffffd, 0x0000007f, 0x0000007f},
{0x00000002, 0xffffff82, 0xffffff82}, {0xfffffffe, 0xcccccccc, 0xcccccccc},
{0x33333333, 0xffffff82, 0xffffff82}, {0x7ffffffd, 0x00007ffd, 0x00007ffd},
{0x00000002, 0xffffff80, 0xffffff80}, {0xffff8001, 0x00000000, 0x00000000},
{0x7ffffffe, 0x0000007d, 0x0000007d}, {0x00000001, 0x00000020, 0x00000020},
{0xaaaaaaaa, 0xffffff82, 0xffffff82}, {0x00000001, 0xfffffffd, 0xfffffffd},
{0x80000001, 0xfffffffe, 0xfffffffe}, {0xffffff80, 0x80000000, 0x80000000},
{0x80000000, 0xffffffff, 0xffffffff}, {0x00000001, 0x00000001, 0x00000001},
{0x80000001, 0xffff8003, 0xffff8003}, {0xffffffff, 0xffffff83, 0xffffff83},
{0x00007ffe, 0x00007ffe, 0x00007ffe}, {0x7ffffffd, 0xcccccccc, 0xcccccccc},
{0xffff8003, 0xcccccccc, 0xcccccccc}, {0xcccccccc, 0x00007fff, 0x00007fff},
{0x00000002, 0x7ffffffd, 0x7ffffffd}, {0x00000002, 0xffff8002, 0xffff8002},
{0xffffff80, 0x33333333, 0x33333333}, {0x55555555, 0xffffff82, 0xffffff82},
{0x7fffffff, 0x00007fff, 0x00007fff}, {0x33333333, 0x00000001, 0x00000001},
{0x33333333, 0xffffffe0, 0xffffffe0}, {0xffffff83, 0x0000007e, 0x0000007e},
{0x00000002, 0xffff8001, 0xffff8001}, {0xcccccccc, 0xffffffe0, 0xffffffe0},
{0xffff8000, 0x7ffffffe, 0x7ffffffe}, {0x00007ffe, 0xffffff81, 0xffffff81},
{0x7ffffffd, 0xffffffe0, 0xffffffe0}, {0x00007fff, 0xffffff81, 0xffffff81},
{0xffffffff, 0x00007ffd, 0x00007ffd}, {0x00007fff, 0x80000001, 0x80000001},
{0xffffffff, 0xcccccccc, 0xcccccccc}, {0x00007ffd, 0x0000007d, 0x0000007d},
{0x0000007e, 0x00000000, 0x00000000}, {0x0000007f, 0x7ffffffe, 0x7ffffffe},
{0x00000020, 0xffffff82, 0xffffff82}, {0xcccccccc, 0x80000001, 0x80000001},
{0xffff8002, 0x00007ffd, 0x00007ffd}, {0xffff8000, 0x00000001, 0x00000001},
{0xffffff83, 0xffffff83, 0xffffff83}, {0x00000002, 0xffffffe0, 0xffffffe0},
{0xfffffffe, 0xffff8000, 0xffff8000}, {0x7ffffffe, 0xffffff80, 0xffffff80},
{0x0000007f, 0xffffff81, 0xffffff81}, {0xffffffff, 0x0000007f, 0x0000007f},
{0x7ffffffe, 0x0000007e, 0x0000007e}, {0x80000000, 0xfffffffd, 0xfffffffd},
{0x33333333, 0x0000007d, 0x0000007d}, {0x80000001, 0xcccccccc, 0xcccccccc},
{0xaaaaaaaa, 0x7ffffffd, 0x7ffffffd}, {0x7fffffff, 0x0000007f, 0x0000007f},
{0x0000007e, 0xffff8001, 0xffff8001}, {0x0000007d, 0xaaaaaaaa, 0xaaaaaaaa},
{0xffffff82, 0x55555555, 0x55555555}, {0x55555555, 0xffffff81, 0xffffff81},
{0xcccccccc, 0xffffff82, 0xffffff82}, {0x0000007d, 0x0000007d, 0x0000007d},
{0xfffffffd, 0xfffffffd, 0xfffffffd}, {0xffffff82, 0xffff8002, 0xffff8002},
{0xffffffe0, 0x00000001, 0x00000001}, {0x0000007d, 0x00007ffe, 0x00007ffe},
{0xfffffffe, 0xffff8003, 0xffff8003}, {0x00000001, 0xffff8001, 0xffff8001},
{0xffff8003, 0x00007ffe, 0x00007ffe}, {0x7ffffffd, 0x00000020, 0x00000020},
{0xfffffffd, 0x00007ffe, 0x00007ffe}, {0x7fffffff, 0xfffffffd, 0xfffffffd},
{0x7fffffff, 0xffff8001, 0xffff8001}, {0xffff8003, 0xffffffff, 0xffffffff},
{0x0000007d, 0x33333333, 0x33333333}, {0xffffffff, 0x00000000, 0x00000000},
{0xffffffe0, 0xffffff81, 0xffffff81}, {0xffffffe0, 0xffffffff, 0xffffffff},
{0x00007ffd, 0x00007ffd, 0x00007ffd}, {0x00000002, 0x33333333, 0x33333333},
{0x0000007f, 0x00000002, 0x00000002}, {0xffff8000, 0x0000007e, 0x0000007e},
{0x80000000, 0x00007fff, 0x00007fff}, {0xffff8000, 0xfffffffd, 0xfffffffd},
{0xffff8002, 0xcccccccc, 0xcccccccc}, {0xffff8003, 0xffffff82, 0xffffff82}};
static const Inputs kRnIsNotRm[] = {{0x00007ffe, 0x00007ffe, 0x80000000},
{0x80000001, 0xcccccccc, 0x00000001},
{0x0000007d, 0x00000020, 0xcccccccc},
{0x7ffffffd, 0x55555555, 0x0000007f},
{0x00000020, 0xffff8001, 0x80000001},
{0xffffffe0, 0xffffff81, 0xffffff83},
{0x00000002, 0xffffff80, 0xaaaaaaaa},
{0x00000002, 0x00000001, 0x0000007d},
{0xffffff83, 0x00007ffd, 0x00000002},
{0xffff8000, 0x00000020, 0x55555555},
{0x00007ffd, 0x0000007f, 0x7ffffffd},
{0xfffffffd, 0x80000000, 0x00000000},
{0x0000007f, 0x33333333, 0x7fffffff},
{0x00000000, 0x33333333, 0x55555555},
{0xffffff81, 0x00007fff, 0xaaaaaaaa},
{0x33333333, 0x00000000, 0x7ffffffe},
{0xfffffffe, 0x00000001, 0xffffffff},
{0xaaaaaaaa, 0xffffffe0, 0xffffff80},
{0x33333333, 0xffffffe0, 0x7fffffff},
{0x55555555, 0x7ffffffd, 0xffffff81},
{0xaaaaaaaa, 0xffffffe0, 0x0000007f},
{0x00007fff, 0xfffffffd, 0xcccccccc},
{0x7fffffff, 0xffff8002, 0x00000001},
{0x0000007d, 0x00000002, 0x7fffffff},
{0x00000002, 0x55555555, 0x00007ffe},
{0x00007ffd, 0x0000007d, 0xfffffffe},
{0x7ffffffd, 0x55555555, 0xffffff83},
{0x7ffffffe, 0x80000001, 0x00000001},
{0xfffffffd, 0x80000001, 0x80000000},
{0xffff8002, 0x00000000, 0x80000001},
{0x0000007d, 0x00000020, 0x0000007e},
{0x00000020, 0x0000007f, 0x80000001},
{0x7ffffffe, 0x80000001, 0xffff8002},
{0xffffff81, 0xffffff80, 0xffffff81},
{0x7ffffffe, 0xffffff80, 0x0000007d},
{0x00007ffd, 0x00000000, 0x55555555},
{0xcccccccc, 0xcccccccc, 0x7ffffffe},
{0xffff8002, 0x00000001, 0xffff8000},
{0x00007ffe, 0x0000007d, 0xffffffe0},
{0x00007ffd, 0x7ffffffe, 0xffffffe0},
{0x80000001, 0x7ffffffe, 0xffff8001},
{0x55555555, 0xffffff80, 0xffff8003},
{0xfffffffd, 0xffff8002, 0x55555555},
{0x33333333, 0xffff8000, 0xffff8003},
{0x7ffffffd, 0xffff8002, 0x0000007e},
{0x7fffffff, 0xffffff80, 0xfffffffd},
{0xffff8002, 0x00000001, 0xaaaaaaaa},
{0xffffff83, 0xffff8001, 0x33333333},
{0x00000000, 0xfffffffe, 0x0000007e},
{0x80000000, 0xffffffe0, 0x0000007d},
{0xffff8000, 0x33333333, 0x00000002},
{0xfffffffe, 0x00000002, 0xffffffe0},
{0x00007ffd, 0x0000007e, 0x7ffffffe},
{0xffffff81, 0xffffffff, 0x00000000},
{0x0000007e, 0x7ffffffe, 0x33333333},
{0x00000002, 0x80000001, 0xffffff80},
{0x7ffffffd, 0xffffff82, 0x7ffffffe},
{0xffffff81, 0x0000007e, 0xffffff81},
{0xffff8002, 0x00007fff, 0x0000007f},
{0xcccccccc, 0xcccccccc, 0x0000007d},
{0x7ffffffd, 0xffffff80, 0x00007ffe},
{0x55555555, 0x55555555, 0xfffffffe},
{0x00000001, 0x00000020, 0x00000001},
{0x0000007f, 0x7ffffffd, 0x80000001},
{0x55555555, 0xaaaaaaaa, 0xfffffffd},
{0x00000020, 0x00007fff, 0xffffff81},
{0xffffff80, 0x33333333, 0xffffff81},
{0x00000000, 0xffff8001, 0xffffff83},
{0x0000007e, 0x33333333, 0x7ffffffd},
{0xaaaaaaaa, 0x55555555, 0xffffffff},
{0xfffffffd, 0xffff8000, 0x00000000},
{0xffff8000, 0xfffffffe, 0x7fffffff},
{0xffff8001, 0xcccccccc, 0x33333333},
{0x00007ffd, 0xffff8001, 0x0000007f},
{0xffffff83, 0x7ffffffd, 0x7fffffff},
{0xffffff81, 0xffffffe0, 0x00007fff},
{0xffffffff, 0x00000002, 0xffffff82},
{0xffff8001, 0xffffff81, 0x55555555},
{0x00007fff, 0xffffff83, 0x00007ffe},
{0x00007fff, 0xcccccccc, 0x00000020},
{0x7fffffff, 0x7ffffffd, 0xffff8000},
{0x0000007f, 0x80000000, 0x7ffffffd},
{0x0000007e, 0x0000007e, 0x0000007d},
{0xfffffffe, 0x00000020, 0xffffff80},
{0x00007ffd, 0x00007ffe, 0xffffff82},
{0x00000020, 0x80000000, 0x0000007e},
{0x00000020, 0x00000002, 0xffffffff},
{0x00007fff, 0xffff8000, 0x00007fff},
{0xcccccccc, 0x7ffffffd, 0x80000000},
{0xffffff80, 0x00000002, 0xffffff81},
{0xfffffffe, 0xffffff83, 0x33333333},
{0xffff8000, 0x7ffffffe, 0x55555555},
{0x00007fff, 0x0000007e, 0xffffff81},
{0xaaaaaaaa, 0xcccccccc, 0xffffffe0},
{0x7ffffffd, 0xffffffff, 0xffff8003},
{0xffffff81, 0xffff8002, 0xffffff82},
{0x00000002, 0xffffffe0, 0x80000001},
{0x7ffffffe, 0x33333333, 0xaaaaaaaa},
{0x00007fff, 0x00000020, 0xfffffffe},
{0xcccccccc, 0xfffffffe, 0x00000000},
{0x7ffffffe, 0x80000001, 0xfffffffd},
{0xffffffe0, 0x00000000, 0xaaaaaaaa},
{0x80000000, 0xffffff83, 0xffff8000},
{0xffffff81, 0xfffffffe, 0xffffff83},
{0x80000000, 0x0000007e, 0xffff8002},
{0x80000001, 0x00000020, 0x00007ffe},
{0x00000000, 0x00000020, 0x0000007e},
{0x80000001, 0xffffffff, 0x7ffffffe},
{0xffffff83, 0x33333333, 0x00000001},
{0x00000020, 0xffffff80, 0xffffff81},
{0xcccccccc, 0xffff8000, 0x00007ffd},
{0xffff8003, 0x00000000, 0x0000007f},
{0xffff8003, 0x00000001, 0x0000007d},
{0x0000007e, 0x00000020, 0x55555555},
{0xffffffff, 0xfffffffe, 0xffffff83},
{0xffffff80, 0x80000000, 0xfffffffe},
{0x0000007e, 0x0000007e, 0x00000000},
{0xaaaaaaaa, 0x00000002, 0xffffffe0},
{0xffff8001, 0x00007ffe, 0x00000020},
{0x7ffffffe, 0xffff8000, 0x00007ffe},
{0xffffff80, 0x33333333, 0x00007fff},
{0x33333333, 0xffffff81, 0x00000001},
{0x00000000, 0x33333333, 0x00000020},
{0x00007fff, 0x00000020, 0x0000007e},
{0xcccccccc, 0x55555555, 0xffffffe0},
{0xffffff80, 0x0000007e, 0x33333333},
{0x0000007e, 0xffff8002, 0x00000000},
{0xffffff83, 0xffffffe0, 0xfffffffd},
{0x00000001, 0x0000007f, 0xffff8001},
{0xffffffff, 0x00000020, 0xcccccccc},
{0x7ffffffd, 0xfffffffd, 0xffff8000},
{0xffffffff, 0x80000000, 0x00007fff},
{0x00000020, 0xffffffe0, 0xfffffffd},
{0x55555555, 0xffff8002, 0x0000007f},
{0xffff8002, 0x55555555, 0x0000007f},
{0xffff8003, 0xffff8000, 0x0000007d},
{0x00007fff, 0x00007ffe, 0x00000000},
{0xcccccccc, 0xffffff81, 0x00007fff},
{0x7ffffffd, 0xcccccccc, 0xffff8000},
{0x7ffffffe, 0xffff8001, 0x80000000},
{0x0000007f, 0xffffffe0, 0x80000001},
{0xffff8000, 0x00007ffd, 0xffff8003},
{0xffff8001, 0xffffff80, 0x00000001},
{0x33333333, 0x00000000, 0x80000000},
{0xfffffffe, 0x7ffffffd, 0x80000001},
{0x00000000, 0xffffffe0, 0x80000001},
{0xffff8002, 0x7ffffffe, 0x33333333},
{0xffffffe0, 0x0000007e, 0x00000001},
{0xffffff80, 0xffffffe0, 0x00007ffe},
{0xffff8000, 0x0000007f, 0x80000001},
{0xffffff80, 0xffffff80, 0xffff8002},
{0x7fffffff, 0x0000007f, 0xfffffffd},
{0x00000001, 0xffffffe0, 0xffffffff},
{0x55555555, 0x0000007f, 0xffff8002},
{0xffff8001, 0xfffffffd, 0x00000020},
{0x00007ffd, 0xfffffffd, 0x0000007e},
{0xfffffffd, 0xffff8003, 0x55555555},
{0xfffffffe, 0xffffff80, 0x0000007f},
{0x0000007f, 0x0000007f, 0xfffffffe},
{0x33333333, 0x55555555, 0xffff8003},
{0x0000007d, 0x00000020, 0x55555555},
{0xffff8003, 0x33333333, 0xffffff83},
{0xffffffe0, 0x00007fff, 0xffffff80},
{0x00000020, 0x00000001, 0x0000007d},
{0xffffff83, 0x00007fff, 0xaaaaaaaa},
{0xfffffffd, 0xffffff83, 0x55555555},
{0xffff8002, 0x00007fff, 0xffffffe0},
{0x80000001, 0xffffff82, 0x00007ffd},
{0xffff8000, 0x00000002, 0xffffffe0},
{0xfffffffd, 0xffffff80, 0x7ffffffe},
{0xffffffff, 0xaaaaaaaa, 0xffff8000},
{0x7ffffffd, 0x00000002, 0xffff8002},
{0xffff8001, 0x00007ffe, 0xffffffff},
{0xffff8001, 0x00000001, 0x00000000},
{0x80000001, 0xffffff80, 0x7ffffffd},
{0xffffff80, 0x0000007d, 0xffffff81},
{0xffffff81, 0xcccccccc, 0xffffff81},
{0xaaaaaaaa, 0x00000000, 0xffffff81},
{0x00000002, 0x00000020, 0xffffff81},
{0x7ffffffd, 0x7ffffffe, 0xffffff83},
{0x7fffffff, 0x55555555, 0x0000007f},
{0xfffffffd, 0xffffff82, 0xfffffffd},
{0x00000020, 0x00007ffd, 0xffffff81},
{0x0000007e, 0xffffff83, 0x33333333},
{0xffffff83, 0x00007fff, 0x00000002},
{0xffffffe0, 0xffffff80, 0xffff8001},
{0x00000000, 0x00000000, 0x00000002},
{0xfffffffd, 0x7ffffffe, 0x00000001},
{0xfffffffd, 0xfffffffd, 0xffffff80},
{0xffffff83, 0x00000000, 0x00007ffe},
{0xffff8002, 0xcccccccc, 0x33333333},
{0xffffff80, 0xffffff81, 0x0000007d},
{0x0000007e, 0xffff8000, 0x00007ffe},
{0x0000007e, 0x80000000, 0x80000001},
{0xffffff83, 0x00007fff, 0xffffffe0},
{0xcccccccc, 0x00007fff, 0xffffff80},
{0x0000007f, 0x0000007e, 0xfffffffd},
{0xcccccccc, 0xffffffff, 0x00000001},
{0xffffffff, 0xffff8000, 0xffffff82},
{0xfffffffe, 0x00000002, 0xffffffff}};
static const Inputs kRnIsNotRm[] = {
{0x00007ffe, 0x00007ffe, 0x80000000}, {0x80000001, 0xcccccccc, 0x00000001},
{0x0000007d, 0x00000020, 0xcccccccc}, {0x7ffffffd, 0x55555555, 0x0000007f},
{0x00000020, 0xffff8001, 0x80000001}, {0xffffffe0, 0xffffff81, 0xffffff83},
{0x00000002, 0xffffff80, 0xaaaaaaaa}, {0x00000002, 0x00000001, 0x0000007d},
{0xffffff83, 0x00007ffd, 0x00000002}, {0xffff8000, 0x00000020, 0x55555555},
{0x00007ffd, 0x0000007f, 0x7ffffffd}, {0xfffffffd, 0x80000000, 0x00000000},
{0x0000007f, 0x33333333, 0x7fffffff}, {0x00000000, 0x33333333, 0x55555555},
{0xffffff81, 0x00007fff, 0xaaaaaaaa}, {0x33333333, 0x00000000, 0x7ffffffe},
{0xfffffffe, 0x00000001, 0xffffffff}, {0xaaaaaaaa, 0xffffffe0, 0xffffff80},
{0x33333333, 0xffffffe0, 0x7fffffff}, {0x55555555, 0x7ffffffd, 0xffffff81},
{0xaaaaaaaa, 0xffffffe0, 0x0000007f}, {0x00007fff, 0xfffffffd, 0xcccccccc},
{0x7fffffff, 0xffff8002, 0x00000001}, {0x0000007d, 0x00000002, 0x7fffffff},
{0x00000002, 0x55555555, 0x00007ffe}, {0x00007ffd, 0x0000007d, 0xfffffffe},
{0x7ffffffd, 0x55555555, 0xffffff83}, {0x7ffffffe, 0x80000001, 0x00000001},
{0xfffffffd, 0x80000001, 0x80000000}, {0xffff8002, 0x00000000, 0x80000001},
{0x0000007d, 0x00000020, 0x0000007e}, {0x00000020, 0x0000007f, 0x80000001},
{0x7ffffffe, 0x80000001, 0xffff8002}, {0xffffff81, 0xffffff80, 0xffffff81},
{0x7ffffffe, 0xffffff80, 0x0000007d}, {0x00007ffd, 0x00000000, 0x55555555},
{0xcccccccc, 0xcccccccc, 0x7ffffffe}, {0xffff8002, 0x00000001, 0xffff8000},
{0x00007ffe, 0x0000007d, 0xffffffe0}, {0x00007ffd, 0x7ffffffe, 0xffffffe0},
{0x80000001, 0x7ffffffe, 0xffff8001}, {0x55555555, 0xffffff80, 0xffff8003},
{0xfffffffd, 0xffff8002, 0x55555555}, {0x33333333, 0xffff8000, 0xffff8003},
{0x7ffffffd, 0xffff8002, 0x0000007e}, {0x7fffffff, 0xffffff80, 0xfffffffd},
{0xffff8002, 0x00000001, 0xaaaaaaaa}, {0xffffff83, 0xffff8001, 0x33333333},
{0x00000000, 0xfffffffe, 0x0000007e}, {0x80000000, 0xffffffe0, 0x0000007d},
{0xffff8000, 0x33333333, 0x00000002}, {0xfffffffe, 0x00000002, 0xffffffe0},
{0x00007ffd, 0x0000007e, 0x7ffffffe}, {0xffffff81, 0xffffffff, 0x00000000},
{0x0000007e, 0x7ffffffe, 0x33333333}, {0x00000002, 0x80000001, 0xffffff80},
{0x7ffffffd, 0xffffff82, 0x7ffffffe}, {0xffffff81, 0x0000007e, 0xffffff81},
{0xffff8002, 0x00007fff, 0x0000007f}, {0xcccccccc, 0xcccccccc, 0x0000007d},
{0x7ffffffd, 0xffffff80, 0x00007ffe}, {0x55555555, 0x55555555, 0xfffffffe},
{0x00000001, 0x00000020, 0x00000001}, {0x0000007f, 0x7ffffffd, 0x80000001},
{0x55555555, 0xaaaaaaaa, 0xfffffffd}, {0x00000020, 0x00007fff, 0xffffff81},
{0xffffff80, 0x33333333, 0xffffff81}, {0x00000000, 0xffff8001, 0xffffff83},
{0x0000007e, 0x33333333, 0x7ffffffd}, {0xaaaaaaaa, 0x55555555, 0xffffffff},
{0xfffffffd, 0xffff8000, 0x00000000}, {0xffff8000, 0xfffffffe, 0x7fffffff},
{0xffff8001, 0xcccccccc, 0x33333333}, {0x00007ffd, 0xffff8001, 0x0000007f},
{0xffffff83, 0x7ffffffd, 0x7fffffff}, {0xffffff81, 0xffffffe0, 0x00007fff},
{0xffffffff, 0x00000002, 0xffffff82}, {0xffff8001, 0xffffff81, 0x55555555},
{0x00007fff, 0xffffff83, 0x00007ffe}, {0x00007fff, 0xcccccccc, 0x00000020},
{0x7fffffff, 0x7ffffffd, 0xffff8000}, {0x0000007f, 0x80000000, 0x7ffffffd},
{0x0000007e, 0x0000007e, 0x0000007d}, {0xfffffffe, 0x00000020, 0xffffff80},
{0x00007ffd, 0x00007ffe, 0xffffff82}, {0x00000020, 0x80000000, 0x0000007e},
{0x00000020, 0x00000002, 0xffffffff}, {0x00007fff, 0xffff8000, 0x00007fff},
{0xcccccccc, 0x7ffffffd, 0x80000000}, {0xffffff80, 0x00000002, 0xffffff81},
{0xfffffffe, 0xffffff83, 0x33333333}, {0xffff8000, 0x7ffffffe, 0x55555555},
{0x00007fff, 0x0000007e, 0xffffff81}, {0xaaaaaaaa, 0xcccccccc, 0xffffffe0},
{0x7ffffffd, 0xffffffff, 0xffff8003}, {0xffffff81, 0xffff8002, 0xffffff82},
{0x00000002, 0xffffffe0, 0x80000001}, {0x7ffffffe, 0x33333333, 0xaaaaaaaa},
{0x00007fff, 0x00000020, 0xfffffffe}, {0xcccccccc, 0xfffffffe, 0x00000000},
{0x7ffffffe, 0x80000001, 0xfffffffd}, {0xffffffe0, 0x00000000, 0xaaaaaaaa},
{0x80000000, 0xffffff83, 0xffff8000}, {0xffffff81, 0xfffffffe, 0xffffff83},
{0x80000000, 0x0000007e, 0xffff8002}, {0x80000001, 0x00000020, 0x00007ffe},
{0x00000000, 0x00000020, 0x0000007e}, {0x80000001, 0xffffffff, 0x7ffffffe},
{0xffffff83, 0x33333333, 0x00000001}, {0x00000020, 0xffffff80, 0xffffff81},
{0xcccccccc, 0xffff8000, 0x00007ffd}, {0xffff8003, 0x00000000, 0x0000007f},
{0xffff8003, 0x00000001, 0x0000007d}, {0x0000007e, 0x00000020, 0x55555555},
{0xffffffff, 0xfffffffe, 0xffffff83}, {0xffffff80, 0x80000000, 0xfffffffe},
{0x0000007e, 0x0000007e, 0x00000000}, {0xaaaaaaaa, 0x00000002, 0xffffffe0},
{0xffff8001, 0x00007ffe, 0x00000020}, {0x7ffffffe, 0xffff8000, 0x00007ffe},
{0xffffff80, 0x33333333, 0x00007fff}, {0x33333333, 0xffffff81, 0x00000001},
{0x00000000, 0x33333333, 0x00000020}, {0x00007fff, 0x00000020, 0x0000007e},
{0xcccccccc, 0x55555555, 0xffffffe0}, {0xffffff80, 0x0000007e, 0x33333333},
{0x0000007e, 0xffff8002, 0x00000000}, {0xffffff83, 0xffffffe0, 0xfffffffd},
{0x00000001, 0x0000007f, 0xffff8001}, {0xffffffff, 0x00000020, 0xcccccccc},
{0x7ffffffd, 0xfffffffd, 0xffff8000}, {0xffffffff, 0x80000000, 0x00007fff},
{0x00000020, 0xffffffe0, 0xfffffffd}, {0x55555555, 0xffff8002, 0x0000007f},
{0xffff8002, 0x55555555, 0x0000007f}, {0xffff8003, 0xffff8000, 0x0000007d},
{0x00007fff, 0x00007ffe, 0x00000000}, {0xcccccccc, 0xffffff81, 0x00007fff},
{0x7ffffffd, 0xcccccccc, 0xffff8000}, {0x7ffffffe, 0xffff8001, 0x80000000},
{0x0000007f, 0xffffffe0, 0x80000001}, {0xffff8000, 0x00007ffd, 0xffff8003},
{0xffff8001, 0xffffff80, 0x00000001}, {0x33333333, 0x00000000, 0x80000000},
{0xfffffffe, 0x7ffffffd, 0x80000001}, {0x00000000, 0xffffffe0, 0x80000001},
{0xffff8002, 0x7ffffffe, 0x33333333}, {0xffffffe0, 0x0000007e, 0x00000001},
{0xffffff80, 0xffffffe0, 0x00007ffe}, {0xffff8000, 0x0000007f, 0x80000001},
{0xffffff80, 0xffffff80, 0xffff8002}, {0x7fffffff, 0x0000007f, 0xfffffffd},
{0x00000001, 0xffffffe0, 0xffffffff}, {0x55555555, 0x0000007f, 0xffff8002},
{0xffff8001, 0xfffffffd, 0x00000020}, {0x00007ffd, 0xfffffffd, 0x0000007e},
{0xfffffffd, 0xffff8003, 0x55555555}, {0xfffffffe, 0xffffff80, 0x0000007f},
{0x0000007f, 0x0000007f, 0xfffffffe}, {0x33333333, 0x55555555, 0xffff8003},
{0x0000007d, 0x00000020, 0x55555555}, {0xffff8003, 0x33333333, 0xffffff83},
{0xffffffe0, 0x00007fff, 0xffffff80}, {0x00000020, 0x00000001, 0x0000007d},
{0xffffff83, 0x00007fff, 0xaaaaaaaa}, {0xfffffffd, 0xffffff83, 0x55555555},
{0xffff8002, 0x00007fff, 0xffffffe0}, {0x80000001, 0xffffff82, 0x00007ffd},
{0xffff8000, 0x00000002, 0xffffffe0}, {0xfffffffd, 0xffffff80, 0x7ffffffe},
{0xffffffff, 0xaaaaaaaa, 0xffff8000}, {0x7ffffffd, 0x00000002, 0xffff8002},
{0xffff8001, 0x00007ffe, 0xffffffff}, {0xffff8001, 0x00000001, 0x00000000},
{0x80000001, 0xffffff80, 0x7ffffffd}, {0xffffff80, 0x0000007d, 0xffffff81},
{0xffffff81, 0xcccccccc, 0xffffff81}, {0xaaaaaaaa, 0x00000000, 0xffffff81},
{0x00000002, 0x00000020, 0xffffff81}, {0x7ffffffd, 0x7ffffffe, 0xffffff83},
{0x7fffffff, 0x55555555, 0x0000007f}, {0xfffffffd, 0xffffff82, 0xfffffffd},
{0x00000020, 0x00007ffd, 0xffffff81}, {0x0000007e, 0xffffff83, 0x33333333},
{0xffffff83, 0x00007fff, 0x00000002}, {0xffffffe0, 0xffffff80, 0xffff8001},
{0x00000000, 0x00000000, 0x00000002}, {0xfffffffd, 0x7ffffffe, 0x00000001},
{0xfffffffd, 0xfffffffd, 0xffffff80}, {0xffffff83, 0x00000000, 0x00007ffe},
{0xffff8002, 0xcccccccc, 0x33333333}, {0xffffff80, 0xffffff81, 0x0000007d},
{0x0000007e, 0xffff8000, 0x00007ffe}, {0x0000007e, 0x80000000, 0x80000001},
{0xffffff83, 0x00007fff, 0xffffffe0}, {0xcccccccc, 0x00007fff, 0xffffff80},
{0x0000007f, 0x0000007e, 0xfffffffd}, {0xcccccccc, 0xffffffff, 0x00000001},
{0xffffffff, 0xffff8000, 0xffffff82}, {0xfffffffe, 0x00000002, 0xffffffff}};
// A loop will be generated for each element of this array.
+203 -401
View File
@@ -40,8 +40,8 @@
#include "test-utils-aarch32.h"
#include "aarch32/assembler-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/disasm-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#define __ masm.
#define BUF_SIZE (4096)
@@ -160,407 +160,209 @@ struct TestLoopData {
const Inputs* inputs;
};
static const Inputs kRnIsRm[] = {{0xffffffe0, 0x00007fff, 0x00007fff},
{0xaaaaaaaa, 0x00007fff, 0x00007fff},
{0xffffff82, 0x7ffffffe, 0x7ffffffe},
{0x7ffffffd, 0x33333333, 0x33333333},
{0x00007ffd, 0x00000002, 0x00000002},
{0xffffff80, 0xfffffffd, 0xfffffffd},
{0xffffff82, 0x33333333, 0x33333333},
{0xcccccccc, 0xffff8002, 0xffff8002},
{0x55555555, 0xffffffe0, 0xffffffe0},
{0x00007fff, 0xffffffff, 0xffffffff},
{0x55555555, 0x33333333, 0x33333333},
{0x7ffffffd, 0xffff8002, 0xffff8002},
{0x00000020, 0xffffff83, 0xffffff83},
{0x0000007e, 0x00007fff, 0x00007fff},
{0xfffffffe, 0xffffff82, 0xffffff82},
{0xffffff82, 0x00007fff, 0x00007fff},
{0xffffff82, 0xfffffffd, 0xfffffffd},
{0x80000000, 0x7fffffff, 0x7fffffff},
{0x55555555, 0x00000002, 0x00000002},
{0xfffffffe, 0xffffff80, 0xffffff80},
{0xfffffffe, 0x00000002, 0x00000002},
{0xfffffffe, 0x00000020, 0x00000020},
{0xfffffffe, 0x00007ffd, 0x00007ffd},
{0x0000007f, 0x33333333, 0x33333333},
{0xfffffffd, 0xfffffffe, 0xfffffffe},
{0x80000001, 0x7ffffffd, 0x7ffffffd},
{0x7ffffffe, 0xffffff83, 0xffffff83},
{0xffffffe0, 0x00000002, 0x00000002},
{0x00007ffe, 0xffffff83, 0xffffff83},
{0xffffff82, 0xffffff80, 0xffffff80},
{0x0000007e, 0x33333333, 0x33333333},
{0xffff8001, 0xfffffffe, 0xfffffffe},
{0xfffffffe, 0xffffff81, 0xffffff81},
{0x00000001, 0xffffff83, 0xffffff83},
{0xfffffffe, 0xaaaaaaaa, 0xaaaaaaaa},
{0xcccccccc, 0xffffff80, 0xffffff80},
{0xffffff83, 0x0000007f, 0x0000007f},
{0x00007ffd, 0x00000020, 0x00000020},
{0x0000007d, 0xfffffffd, 0xfffffffd},
{0x7ffffffe, 0xaaaaaaaa, 0xaaaaaaaa},
{0xffffff83, 0x00000001, 0x00000001},
{0x0000007d, 0xffff8000, 0xffff8000},
{0xffffffe0, 0x00000020, 0x00000020},
{0xffff8003, 0xffffff80, 0xffffff80},
{0x00000000, 0xaaaaaaaa, 0xaaaaaaaa},
{0x00007fff, 0x00000020, 0x00000020},
{0x80000000, 0x0000007d, 0x0000007d},
{0xffffff81, 0x0000007e, 0x0000007e},
{0xcccccccc, 0x00000020, 0x00000020},
{0xffffff81, 0x33333333, 0x33333333},
{0xffff8002, 0xffffffe0, 0xffffffe0},
{0xffffffe0, 0x00007ffe, 0x00007ffe},
{0xffff8002, 0xaaaaaaaa, 0xaaaaaaaa},
{0xffff8001, 0x00007ffe, 0x00007ffe},
{0x80000000, 0xcccccccc, 0xcccccccc},
{0x7ffffffd, 0x00000002, 0x00000002},
{0xcccccccc, 0x0000007f, 0x0000007f},
{0x7ffffffe, 0xffffff82, 0xffffff82},
{0x00000001, 0x0000007e, 0x0000007e},
{0x00007ffd, 0x00007ffe, 0x00007ffe},
{0x7ffffffd, 0xfffffffe, 0xfffffffe},
{0x00000001, 0x80000001, 0x80000001},
{0x00007ffe, 0x7fffffff, 0x7fffffff},
{0xffff8001, 0xffff8002, 0xffff8002},
{0x00000001, 0xffff8003, 0xffff8003},
{0x00000002, 0xfffffffe, 0xfffffffe},
{0x00000002, 0x00007ffd, 0x00007ffd},
{0x7ffffffe, 0xfffffffd, 0xfffffffd},
{0xffff8001, 0x7ffffffd, 0x7ffffffd},
{0x7ffffffd, 0x55555555, 0x55555555},
{0x80000000, 0xffffff80, 0xffffff80},
{0xffff8002, 0xffff8003, 0xffff8003},
{0xffffffff, 0x00000020, 0x00000020},
{0xfffffffe, 0x00000001, 0x00000001},
{0x00007fff, 0x00007fff, 0x00007fff},
{0x00000000, 0xffffff83, 0xffffff83},
{0x33333333, 0xaaaaaaaa, 0xaaaaaaaa},
{0x0000007d, 0x7ffffffe, 0x7ffffffe},
{0xffff8003, 0xffff8001, 0xffff8001},
{0xfffffffd, 0xcccccccc, 0xcccccccc},
{0x80000000, 0x80000001, 0x80000001},
{0xffff8002, 0x00000002, 0x00000002},
{0xfffffffd, 0xffffffe0, 0xffffffe0},
{0xffffffe0, 0xffffff82, 0xffffff82},
{0x33333333, 0x00007ffe, 0x00007ffe},
{0xffff8002, 0xffffff80, 0xffffff80},
{0xffffff81, 0x80000000, 0x80000000},
{0x00000000, 0x80000000, 0x80000000},
{0x00000000, 0xcccccccc, 0xcccccccc},
{0x00000020, 0xffffffe0, 0xffffffe0},
{0x00007ffe, 0xffffffe0, 0xffffffe0},
{0xffffff81, 0xfffffffe, 0xfffffffe},
{0x00000002, 0x00007ffe, 0x00007ffe},
{0xffff8000, 0x7fffffff, 0x7fffffff},
{0x00000002, 0x55555555, 0x55555555},
{0xffff8000, 0x55555555, 0x55555555},
{0xffff8001, 0x00000020, 0x00000020},
{0xffffffff, 0x55555555, 0x55555555},
{0x33333333, 0x00000020, 0x00000020},
{0xfffffffd, 0x7fffffff, 0x7fffffff},
{0x7ffffffd, 0x7fffffff, 0x7fffffff},
{0xaaaaaaaa, 0xffffff81, 0xffffff81},
{0x00007ffd, 0x80000001, 0x80000001},
{0x7ffffffe, 0xffffffff, 0xffffffff},
{0x00007ffe, 0x7ffffffe, 0x7ffffffe},
{0xffff8001, 0x55555555, 0x55555555},
{0xffffff80, 0xfffffffe, 0xfffffffe},
{0x0000007e, 0x7ffffffd, 0x7ffffffd},
{0x00000000, 0x00007ffd, 0x00007ffd},
{0x00000020, 0x80000001, 0x80000001},
{0xffffff83, 0xffffffe0, 0xffffffe0},
{0x55555555, 0xffff8000, 0xffff8000},
{0x33333333, 0xffff8002, 0xffff8002},
{0x7ffffffd, 0x0000007f, 0x0000007f},
{0x00000002, 0xffffff82, 0xffffff82},
{0xfffffffe, 0xcccccccc, 0xcccccccc},
{0x33333333, 0xffffff82, 0xffffff82},
{0x7ffffffd, 0x00007ffd, 0x00007ffd},
{0x00000002, 0xffffff80, 0xffffff80},
{0xffff8001, 0x00000000, 0x00000000},
{0x7ffffffe, 0x0000007d, 0x0000007d},
{0x00000001, 0x00000020, 0x00000020},
{0xaaaaaaaa, 0xffffff82, 0xffffff82},
{0x00000001, 0xfffffffd, 0xfffffffd},
{0x80000001, 0xfffffffe, 0xfffffffe},
{0xffffff80, 0x80000000, 0x80000000},
{0x80000000, 0xffffffff, 0xffffffff},
{0x00000001, 0x00000001, 0x00000001},
{0x80000001, 0xffff8003, 0xffff8003},
{0xffffffff, 0xffffff83, 0xffffff83},
{0x00007ffe, 0x00007ffe, 0x00007ffe},
{0x7ffffffd, 0xcccccccc, 0xcccccccc},
{0xffff8003, 0xcccccccc, 0xcccccccc},
{0xcccccccc, 0x00007fff, 0x00007fff},
{0x00000002, 0x7ffffffd, 0x7ffffffd},
{0x00000002, 0xffff8002, 0xffff8002},
{0xffffff80, 0x33333333, 0x33333333},
{0x55555555, 0xffffff82, 0xffffff82},
{0x7fffffff, 0x00007fff, 0x00007fff},
{0x33333333, 0x00000001, 0x00000001},
{0x33333333, 0xffffffe0, 0xffffffe0},
{0xffffff83, 0x0000007e, 0x0000007e},
{0x00000002, 0xffff8001, 0xffff8001},
{0xcccccccc, 0xffffffe0, 0xffffffe0},
{0xffff8000, 0x7ffffffe, 0x7ffffffe},
{0x00007ffe, 0xffffff81, 0xffffff81},
{0x7ffffffd, 0xffffffe0, 0xffffffe0},
{0x00007fff, 0xffffff81, 0xffffff81},
{0xffffffff, 0x00007ffd, 0x00007ffd},
{0x00007fff, 0x80000001, 0x80000001},
{0xffffffff, 0xcccccccc, 0xcccccccc},
{0x00007ffd, 0x0000007d, 0x0000007d},
{0x0000007e, 0x00000000, 0x00000000},
{0x0000007f, 0x7ffffffe, 0x7ffffffe},
{0x00000020, 0xffffff82, 0xffffff82},
{0xcccccccc, 0x80000001, 0x80000001},
{0xffff8002, 0x00007ffd, 0x00007ffd},
{0xffff8000, 0x00000001, 0x00000001},
{0xffffff83, 0xffffff83, 0xffffff83},
{0x00000002, 0xffffffe0, 0xffffffe0},
{0xfffffffe, 0xffff8000, 0xffff8000},
{0x7ffffffe, 0xffffff80, 0xffffff80},
{0x0000007f, 0xffffff81, 0xffffff81},
{0xffffffff, 0x0000007f, 0x0000007f},
{0x7ffffffe, 0x0000007e, 0x0000007e},
{0x80000000, 0xfffffffd, 0xfffffffd},
{0x33333333, 0x0000007d, 0x0000007d},
{0x80000001, 0xcccccccc, 0xcccccccc},
{0xaaaaaaaa, 0x7ffffffd, 0x7ffffffd},
{0x7fffffff, 0x0000007f, 0x0000007f},
{0x0000007e, 0xffff8001, 0xffff8001},
{0x0000007d, 0xaaaaaaaa, 0xaaaaaaaa},
{0xffffff82, 0x55555555, 0x55555555},
{0x55555555, 0xffffff81, 0xffffff81},
{0xcccccccc, 0xffffff82, 0xffffff82},
{0x0000007d, 0x0000007d, 0x0000007d},
{0xfffffffd, 0xfffffffd, 0xfffffffd},
{0xffffff82, 0xffff8002, 0xffff8002},
{0xffffffe0, 0x00000001, 0x00000001},
{0x0000007d, 0x00007ffe, 0x00007ffe},
{0xfffffffe, 0xffff8003, 0xffff8003},
{0x00000001, 0xffff8001, 0xffff8001},
{0xffff8003, 0x00007ffe, 0x00007ffe},
{0x7ffffffd, 0x00000020, 0x00000020},
{0xfffffffd, 0x00007ffe, 0x00007ffe},
{0x7fffffff, 0xfffffffd, 0xfffffffd},
{0x7fffffff, 0xffff8001, 0xffff8001},
{0xffff8003, 0xffffffff, 0xffffffff},
{0x0000007d, 0x33333333, 0x33333333},
{0xffffffff, 0x00000000, 0x00000000},
{0xffffffe0, 0xffffff81, 0xffffff81},
{0xffffffe0, 0xffffffff, 0xffffffff},
{0x00007ffd, 0x00007ffd, 0x00007ffd},
{0x00000002, 0x33333333, 0x33333333},
{0x0000007f, 0x00000002, 0x00000002},
{0xffff8000, 0x0000007e, 0x0000007e},
{0x80000000, 0x00007fff, 0x00007fff},
{0xffff8000, 0xfffffffd, 0xfffffffd},
{0xffff8002, 0xcccccccc, 0xcccccccc},
{0xffff8003, 0xffffff82, 0xffffff82}};
static const Inputs kRnIsRm[] = {
{0xffffffe0, 0x00007fff, 0x00007fff}, {0xaaaaaaaa, 0x00007fff, 0x00007fff},
{0xffffff82, 0x7ffffffe, 0x7ffffffe}, {0x7ffffffd, 0x33333333, 0x33333333},
{0x00007ffd, 0x00000002, 0x00000002}, {0xffffff80, 0xfffffffd, 0xfffffffd},
{0xffffff82, 0x33333333, 0x33333333}, {0xcccccccc, 0xffff8002, 0xffff8002},
{0x55555555, 0xffffffe0, 0xffffffe0}, {0x00007fff, 0xffffffff, 0xffffffff},
{0x55555555, 0x33333333, 0x33333333}, {0x7ffffffd, 0xffff8002, 0xffff8002},
{0x00000020, 0xffffff83, 0xffffff83}, {0x0000007e, 0x00007fff, 0x00007fff},
{0xfffffffe, 0xffffff82, 0xffffff82}, {0xffffff82, 0x00007fff, 0x00007fff},
{0xffffff82, 0xfffffffd, 0xfffffffd}, {0x80000000, 0x7fffffff, 0x7fffffff},
{0x55555555, 0x00000002, 0x00000002}, {0xfffffffe, 0xffffff80, 0xffffff80},
{0xfffffffe, 0x00000002, 0x00000002}, {0xfffffffe, 0x00000020, 0x00000020},
{0xfffffffe, 0x00007ffd, 0x00007ffd}, {0x0000007f, 0x33333333, 0x33333333},
{0xfffffffd, 0xfffffffe, 0xfffffffe}, {0x80000001, 0x7ffffffd, 0x7ffffffd},
{0x7ffffffe, 0xffffff83, 0xffffff83}, {0xffffffe0, 0x00000002, 0x00000002},
{0x00007ffe, 0xffffff83, 0xffffff83}, {0xffffff82, 0xffffff80, 0xffffff80},
{0x0000007e, 0x33333333, 0x33333333}, {0xffff8001, 0xfffffffe, 0xfffffffe},
{0xfffffffe, 0xffffff81, 0xffffff81}, {0x00000001, 0xffffff83, 0xffffff83},
{0xfffffffe, 0xaaaaaaaa, 0xaaaaaaaa}, {0xcccccccc, 0xffffff80, 0xffffff80},
{0xffffff83, 0x0000007f, 0x0000007f}, {0x00007ffd, 0x00000020, 0x00000020},
{0x0000007d, 0xfffffffd, 0xfffffffd}, {0x7ffffffe, 0xaaaaaaaa, 0xaaaaaaaa},
{0xffffff83, 0x00000001, 0x00000001}, {0x0000007d, 0xffff8000, 0xffff8000},
{0xffffffe0, 0x00000020, 0x00000020}, {0xffff8003, 0xffffff80, 0xffffff80},
{0x00000000, 0xaaaaaaaa, 0xaaaaaaaa}, {0x00007fff, 0x00000020, 0x00000020},
{0x80000000, 0x0000007d, 0x0000007d}, {0xffffff81, 0x0000007e, 0x0000007e},
{0xcccccccc, 0x00000020, 0x00000020}, {0xffffff81, 0x33333333, 0x33333333},
{0xffff8002, 0xffffffe0, 0xffffffe0}, {0xffffffe0, 0x00007ffe, 0x00007ffe},
{0xffff8002, 0xaaaaaaaa, 0xaaaaaaaa}, {0xffff8001, 0x00007ffe, 0x00007ffe},
{0x80000000, 0xcccccccc, 0xcccccccc}, {0x7ffffffd, 0x00000002, 0x00000002},
{0xcccccccc, 0x0000007f, 0x0000007f}, {0x7ffffffe, 0xffffff82, 0xffffff82},
{0x00000001, 0x0000007e, 0x0000007e}, {0x00007ffd, 0x00007ffe, 0x00007ffe},
{0x7ffffffd, 0xfffffffe, 0xfffffffe}, {0x00000001, 0x80000001, 0x80000001},
{0x00007ffe, 0x7fffffff, 0x7fffffff}, {0xffff8001, 0xffff8002, 0xffff8002},
{0x00000001, 0xffff8003, 0xffff8003}, {0x00000002, 0xfffffffe, 0xfffffffe},
{0x00000002, 0x00007ffd, 0x00007ffd}, {0x7ffffffe, 0xfffffffd, 0xfffffffd},
{0xffff8001, 0x7ffffffd, 0x7ffffffd}, {0x7ffffffd, 0x55555555, 0x55555555},
{0x80000000, 0xffffff80, 0xffffff80}, {0xffff8002, 0xffff8003, 0xffff8003},
{0xffffffff, 0x00000020, 0x00000020}, {0xfffffffe, 0x00000001, 0x00000001},
{0x00007fff, 0x00007fff, 0x00007fff}, {0x00000000, 0xffffff83, 0xffffff83},
{0x33333333, 0xaaaaaaaa, 0xaaaaaaaa}, {0x0000007d, 0x7ffffffe, 0x7ffffffe},
{0xffff8003, 0xffff8001, 0xffff8001}, {0xfffffffd, 0xcccccccc, 0xcccccccc},
{0x80000000, 0x80000001, 0x80000001}, {0xffff8002, 0x00000002, 0x00000002},
{0xfffffffd, 0xffffffe0, 0xffffffe0}, {0xffffffe0, 0xffffff82, 0xffffff82},
{0x33333333, 0x00007ffe, 0x00007ffe}, {0xffff8002, 0xffffff80, 0xffffff80},
{0xffffff81, 0x80000000, 0x80000000}, {0x00000000, 0x80000000, 0x80000000},
{0x00000000, 0xcccccccc, 0xcccccccc}, {0x00000020, 0xffffffe0, 0xffffffe0},
{0x00007ffe, 0xffffffe0, 0xffffffe0}, {0xffffff81, 0xfffffffe, 0xfffffffe},
{0x00000002, 0x00007ffe, 0x00007ffe}, {0xffff8000, 0x7fffffff, 0x7fffffff},
{0x00000002, 0x55555555, 0x55555555}, {0xffff8000, 0x55555555, 0x55555555},
{0xffff8001, 0x00000020, 0x00000020}, {0xffffffff, 0x55555555, 0x55555555},
{0x33333333, 0x00000020, 0x00000020}, {0xfffffffd, 0x7fffffff, 0x7fffffff},
{0x7ffffffd, 0x7fffffff, 0x7fffffff}, {0xaaaaaaaa, 0xffffff81, 0xffffff81},
{0x00007ffd, 0x80000001, 0x80000001}, {0x7ffffffe, 0xffffffff, 0xffffffff},
{0x00007ffe, 0x7ffffffe, 0x7ffffffe}, {0xffff8001, 0x55555555, 0x55555555},
{0xffffff80, 0xfffffffe, 0xfffffffe}, {0x0000007e, 0x7ffffffd, 0x7ffffffd},
{0x00000000, 0x00007ffd, 0x00007ffd}, {0x00000020, 0x80000001, 0x80000001},
{0xffffff83, 0xffffffe0, 0xffffffe0}, {0x55555555, 0xffff8000, 0xffff8000},
{0x33333333, 0xffff8002, 0xffff8002}, {0x7ffffffd, 0x0000007f, 0x0000007f},
{0x00000002, 0xffffff82, 0xffffff82}, {0xfffffffe, 0xcccccccc, 0xcccccccc},
{0x33333333, 0xffffff82, 0xffffff82}, {0x7ffffffd, 0x00007ffd, 0x00007ffd},
{0x00000002, 0xffffff80, 0xffffff80}, {0xffff8001, 0x00000000, 0x00000000},
{0x7ffffffe, 0x0000007d, 0x0000007d}, {0x00000001, 0x00000020, 0x00000020},
{0xaaaaaaaa, 0xffffff82, 0xffffff82}, {0x00000001, 0xfffffffd, 0xfffffffd},
{0x80000001, 0xfffffffe, 0xfffffffe}, {0xffffff80, 0x80000000, 0x80000000},
{0x80000000, 0xffffffff, 0xffffffff}, {0x00000001, 0x00000001, 0x00000001},
{0x80000001, 0xffff8003, 0xffff8003}, {0xffffffff, 0xffffff83, 0xffffff83},
{0x00007ffe, 0x00007ffe, 0x00007ffe}, {0x7ffffffd, 0xcccccccc, 0xcccccccc},
{0xffff8003, 0xcccccccc, 0xcccccccc}, {0xcccccccc, 0x00007fff, 0x00007fff},
{0x00000002, 0x7ffffffd, 0x7ffffffd}, {0x00000002, 0xffff8002, 0xffff8002},
{0xffffff80, 0x33333333, 0x33333333}, {0x55555555, 0xffffff82, 0xffffff82},
{0x7fffffff, 0x00007fff, 0x00007fff}, {0x33333333, 0x00000001, 0x00000001},
{0x33333333, 0xffffffe0, 0xffffffe0}, {0xffffff83, 0x0000007e, 0x0000007e},
{0x00000002, 0xffff8001, 0xffff8001}, {0xcccccccc, 0xffffffe0, 0xffffffe0},
{0xffff8000, 0x7ffffffe, 0x7ffffffe}, {0x00007ffe, 0xffffff81, 0xffffff81},
{0x7ffffffd, 0xffffffe0, 0xffffffe0}, {0x00007fff, 0xffffff81, 0xffffff81},
{0xffffffff, 0x00007ffd, 0x00007ffd}, {0x00007fff, 0x80000001, 0x80000001},
{0xffffffff, 0xcccccccc, 0xcccccccc}, {0x00007ffd, 0x0000007d, 0x0000007d},
{0x0000007e, 0x00000000, 0x00000000}, {0x0000007f, 0x7ffffffe, 0x7ffffffe},
{0x00000020, 0xffffff82, 0xffffff82}, {0xcccccccc, 0x80000001, 0x80000001},
{0xffff8002, 0x00007ffd, 0x00007ffd}, {0xffff8000, 0x00000001, 0x00000001},
{0xffffff83, 0xffffff83, 0xffffff83}, {0x00000002, 0xffffffe0, 0xffffffe0},
{0xfffffffe, 0xffff8000, 0xffff8000}, {0x7ffffffe, 0xffffff80, 0xffffff80},
{0x0000007f, 0xffffff81, 0xffffff81}, {0xffffffff, 0x0000007f, 0x0000007f},
{0x7ffffffe, 0x0000007e, 0x0000007e}, {0x80000000, 0xfffffffd, 0xfffffffd},
{0x33333333, 0x0000007d, 0x0000007d}, {0x80000001, 0xcccccccc, 0xcccccccc},
{0xaaaaaaaa, 0x7ffffffd, 0x7ffffffd}, {0x7fffffff, 0x0000007f, 0x0000007f},
{0x0000007e, 0xffff8001, 0xffff8001}, {0x0000007d, 0xaaaaaaaa, 0xaaaaaaaa},
{0xffffff82, 0x55555555, 0x55555555}, {0x55555555, 0xffffff81, 0xffffff81},
{0xcccccccc, 0xffffff82, 0xffffff82}, {0x0000007d, 0x0000007d, 0x0000007d},
{0xfffffffd, 0xfffffffd, 0xfffffffd}, {0xffffff82, 0xffff8002, 0xffff8002},
{0xffffffe0, 0x00000001, 0x00000001}, {0x0000007d, 0x00007ffe, 0x00007ffe},
{0xfffffffe, 0xffff8003, 0xffff8003}, {0x00000001, 0xffff8001, 0xffff8001},
{0xffff8003, 0x00007ffe, 0x00007ffe}, {0x7ffffffd, 0x00000020, 0x00000020},
{0xfffffffd, 0x00007ffe, 0x00007ffe}, {0x7fffffff, 0xfffffffd, 0xfffffffd},
{0x7fffffff, 0xffff8001, 0xffff8001}, {0xffff8003, 0xffffffff, 0xffffffff},
{0x0000007d, 0x33333333, 0x33333333}, {0xffffffff, 0x00000000, 0x00000000},
{0xffffffe0, 0xffffff81, 0xffffff81}, {0xffffffe0, 0xffffffff, 0xffffffff},
{0x00007ffd, 0x00007ffd, 0x00007ffd}, {0x00000002, 0x33333333, 0x33333333},
{0x0000007f, 0x00000002, 0x00000002}, {0xffff8000, 0x0000007e, 0x0000007e},
{0x80000000, 0x00007fff, 0x00007fff}, {0xffff8000, 0xfffffffd, 0xfffffffd},
{0xffff8002, 0xcccccccc, 0xcccccccc}, {0xffff8003, 0xffffff82, 0xffffff82}};
static const Inputs kRnIsNotRm[] = {{0x00007ffe, 0x00007ffe, 0x80000000},
{0x80000001, 0xcccccccc, 0x00000001},
{0x0000007d, 0x00000020, 0xcccccccc},
{0x7ffffffd, 0x55555555, 0x0000007f},
{0x00000020, 0xffff8001, 0x80000001},
{0xffffffe0, 0xffffff81, 0xffffff83},
{0x00000002, 0xffffff80, 0xaaaaaaaa},
{0x00000002, 0x00000001, 0x0000007d},
{0xffffff83, 0x00007ffd, 0x00000002},
{0xffff8000, 0x00000020, 0x55555555},
{0x00007ffd, 0x0000007f, 0x7ffffffd},
{0xfffffffd, 0x80000000, 0x00000000},
{0x0000007f, 0x33333333, 0x7fffffff},
{0x00000000, 0x33333333, 0x55555555},
{0xffffff81, 0x00007fff, 0xaaaaaaaa},
{0x33333333, 0x00000000, 0x7ffffffe},
{0xfffffffe, 0x00000001, 0xffffffff},
{0xaaaaaaaa, 0xffffffe0, 0xffffff80},
{0x33333333, 0xffffffe0, 0x7fffffff},
{0x55555555, 0x7ffffffd, 0xffffff81},
{0xaaaaaaaa, 0xffffffe0, 0x0000007f},
{0x00007fff, 0xfffffffd, 0xcccccccc},
{0x7fffffff, 0xffff8002, 0x00000001},
{0x0000007d, 0x00000002, 0x7fffffff},
{0x00000002, 0x55555555, 0x00007ffe},
{0x00007ffd, 0x0000007d, 0xfffffffe},
{0x7ffffffd, 0x55555555, 0xffffff83},
{0x7ffffffe, 0x80000001, 0x00000001},
{0xfffffffd, 0x80000001, 0x80000000},
{0xffff8002, 0x00000000, 0x80000001},
{0x0000007d, 0x00000020, 0x0000007e},
{0x00000020, 0x0000007f, 0x80000001},
{0x7ffffffe, 0x80000001, 0xffff8002},
{0xffffff81, 0xffffff80, 0xffffff81},
{0x7ffffffe, 0xffffff80, 0x0000007d},
{0x00007ffd, 0x00000000, 0x55555555},
{0xcccccccc, 0xcccccccc, 0x7ffffffe},
{0xffff8002, 0x00000001, 0xffff8000},
{0x00007ffe, 0x0000007d, 0xffffffe0},
{0x00007ffd, 0x7ffffffe, 0xffffffe0},
{0x80000001, 0x7ffffffe, 0xffff8001},
{0x55555555, 0xffffff80, 0xffff8003},
{0xfffffffd, 0xffff8002, 0x55555555},
{0x33333333, 0xffff8000, 0xffff8003},
{0x7ffffffd, 0xffff8002, 0x0000007e},
{0x7fffffff, 0xffffff80, 0xfffffffd},
{0xffff8002, 0x00000001, 0xaaaaaaaa},
{0xffffff83, 0xffff8001, 0x33333333},
{0x00000000, 0xfffffffe, 0x0000007e},
{0x80000000, 0xffffffe0, 0x0000007d},
{0xffff8000, 0x33333333, 0x00000002},
{0xfffffffe, 0x00000002, 0xffffffe0},
{0x00007ffd, 0x0000007e, 0x7ffffffe},
{0xffffff81, 0xffffffff, 0x00000000},
{0x0000007e, 0x7ffffffe, 0x33333333},
{0x00000002, 0x80000001, 0xffffff80},
{0x7ffffffd, 0xffffff82, 0x7ffffffe},
{0xffffff81, 0x0000007e, 0xffffff81},
{0xffff8002, 0x00007fff, 0x0000007f},
{0xcccccccc, 0xcccccccc, 0x0000007d},
{0x7ffffffd, 0xffffff80, 0x00007ffe},
{0x55555555, 0x55555555, 0xfffffffe},
{0x00000001, 0x00000020, 0x00000001},
{0x0000007f, 0x7ffffffd, 0x80000001},
{0x55555555, 0xaaaaaaaa, 0xfffffffd},
{0x00000020, 0x00007fff, 0xffffff81},
{0xffffff80, 0x33333333, 0xffffff81},
{0x00000000, 0xffff8001, 0xffffff83},
{0x0000007e, 0x33333333, 0x7ffffffd},
{0xaaaaaaaa, 0x55555555, 0xffffffff},
{0xfffffffd, 0xffff8000, 0x00000000},
{0xffff8000, 0xfffffffe, 0x7fffffff},
{0xffff8001, 0xcccccccc, 0x33333333},
{0x00007ffd, 0xffff8001, 0x0000007f},
{0xffffff83, 0x7ffffffd, 0x7fffffff},
{0xffffff81, 0xffffffe0, 0x00007fff},
{0xffffffff, 0x00000002, 0xffffff82},
{0xffff8001, 0xffffff81, 0x55555555},
{0x00007fff, 0xffffff83, 0x00007ffe},
{0x00007fff, 0xcccccccc, 0x00000020},
{0x7fffffff, 0x7ffffffd, 0xffff8000},
{0x0000007f, 0x80000000, 0x7ffffffd},
{0x0000007e, 0x0000007e, 0x0000007d},
{0xfffffffe, 0x00000020, 0xffffff80},
{0x00007ffd, 0x00007ffe, 0xffffff82},
{0x00000020, 0x80000000, 0x0000007e},
{0x00000020, 0x00000002, 0xffffffff},
{0x00007fff, 0xffff8000, 0x00007fff},
{0xcccccccc, 0x7ffffffd, 0x80000000},
{0xffffff80, 0x00000002, 0xffffff81},
{0xfffffffe, 0xffffff83, 0x33333333},
{0xffff8000, 0x7ffffffe, 0x55555555},
{0x00007fff, 0x0000007e, 0xffffff81},
{0xaaaaaaaa, 0xcccccccc, 0xffffffe0},
{0x7ffffffd, 0xffffffff, 0xffff8003},
{0xffffff81, 0xffff8002, 0xffffff82},
{0x00000002, 0xffffffe0, 0x80000001},
{0x7ffffffe, 0x33333333, 0xaaaaaaaa},
{0x00007fff, 0x00000020, 0xfffffffe},
{0xcccccccc, 0xfffffffe, 0x00000000},
{0x7ffffffe, 0x80000001, 0xfffffffd},
{0xffffffe0, 0x00000000, 0xaaaaaaaa},
{0x80000000, 0xffffff83, 0xffff8000},
{0xffffff81, 0xfffffffe, 0xffffff83},
{0x80000000, 0x0000007e, 0xffff8002},
{0x80000001, 0x00000020, 0x00007ffe},
{0x00000000, 0x00000020, 0x0000007e},
{0x80000001, 0xffffffff, 0x7ffffffe},
{0xffffff83, 0x33333333, 0x00000001},
{0x00000020, 0xffffff80, 0xffffff81},
{0xcccccccc, 0xffff8000, 0x00007ffd},
{0xffff8003, 0x00000000, 0x0000007f},
{0xffff8003, 0x00000001, 0x0000007d},
{0x0000007e, 0x00000020, 0x55555555},
{0xffffffff, 0xfffffffe, 0xffffff83},
{0xffffff80, 0x80000000, 0xfffffffe},
{0x0000007e, 0x0000007e, 0x00000000},
{0xaaaaaaaa, 0x00000002, 0xffffffe0},
{0xffff8001, 0x00007ffe, 0x00000020},
{0x7ffffffe, 0xffff8000, 0x00007ffe},
{0xffffff80, 0x33333333, 0x00007fff},
{0x33333333, 0xffffff81, 0x00000001},
{0x00000000, 0x33333333, 0x00000020},
{0x00007fff, 0x00000020, 0x0000007e},
{0xcccccccc, 0x55555555, 0xffffffe0},
{0xffffff80, 0x0000007e, 0x33333333},
{0x0000007e, 0xffff8002, 0x00000000},
{0xffffff83, 0xffffffe0, 0xfffffffd},
{0x00000001, 0x0000007f, 0xffff8001},
{0xffffffff, 0x00000020, 0xcccccccc},
{0x7ffffffd, 0xfffffffd, 0xffff8000},
{0xffffffff, 0x80000000, 0x00007fff},
{0x00000020, 0xffffffe0, 0xfffffffd},
{0x55555555, 0xffff8002, 0x0000007f},
{0xffff8002, 0x55555555, 0x0000007f},
{0xffff8003, 0xffff8000, 0x0000007d},
{0x00007fff, 0x00007ffe, 0x00000000},
{0xcccccccc, 0xffffff81, 0x00007fff},
{0x7ffffffd, 0xcccccccc, 0xffff8000},
{0x7ffffffe, 0xffff8001, 0x80000000},
{0x0000007f, 0xffffffe0, 0x80000001},
{0xffff8000, 0x00007ffd, 0xffff8003},
{0xffff8001, 0xffffff80, 0x00000001},
{0x33333333, 0x00000000, 0x80000000},
{0xfffffffe, 0x7ffffffd, 0x80000001},
{0x00000000, 0xffffffe0, 0x80000001},
{0xffff8002, 0x7ffffffe, 0x33333333},
{0xffffffe0, 0x0000007e, 0x00000001},
{0xffffff80, 0xffffffe0, 0x00007ffe},
{0xffff8000, 0x0000007f, 0x80000001},
{0xffffff80, 0xffffff80, 0xffff8002},
{0x7fffffff, 0x0000007f, 0xfffffffd},
{0x00000001, 0xffffffe0, 0xffffffff},
{0x55555555, 0x0000007f, 0xffff8002},
{0xffff8001, 0xfffffffd, 0x00000020},
{0x00007ffd, 0xfffffffd, 0x0000007e},
{0xfffffffd, 0xffff8003, 0x55555555},
{0xfffffffe, 0xffffff80, 0x0000007f},
{0x0000007f, 0x0000007f, 0xfffffffe},
{0x33333333, 0x55555555, 0xffff8003},
{0x0000007d, 0x00000020, 0x55555555},
{0xffff8003, 0x33333333, 0xffffff83},
{0xffffffe0, 0x00007fff, 0xffffff80},
{0x00000020, 0x00000001, 0x0000007d},
{0xffffff83, 0x00007fff, 0xaaaaaaaa},
{0xfffffffd, 0xffffff83, 0x55555555},
{0xffff8002, 0x00007fff, 0xffffffe0},
{0x80000001, 0xffffff82, 0x00007ffd},
{0xffff8000, 0x00000002, 0xffffffe0},
{0xfffffffd, 0xffffff80, 0x7ffffffe},
{0xffffffff, 0xaaaaaaaa, 0xffff8000},
{0x7ffffffd, 0x00000002, 0xffff8002},
{0xffff8001, 0x00007ffe, 0xffffffff},
{0xffff8001, 0x00000001, 0x00000000},
{0x80000001, 0xffffff80, 0x7ffffffd},
{0xffffff80, 0x0000007d, 0xffffff81},
{0xffffff81, 0xcccccccc, 0xffffff81},
{0xaaaaaaaa, 0x00000000, 0xffffff81},
{0x00000002, 0x00000020, 0xffffff81},
{0x7ffffffd, 0x7ffffffe, 0xffffff83},
{0x7fffffff, 0x55555555, 0x0000007f},
{0xfffffffd, 0xffffff82, 0xfffffffd},
{0x00000020, 0x00007ffd, 0xffffff81},
{0x0000007e, 0xffffff83, 0x33333333},
{0xffffff83, 0x00007fff, 0x00000002},
{0xffffffe0, 0xffffff80, 0xffff8001},
{0x00000000, 0x00000000, 0x00000002},
{0xfffffffd, 0x7ffffffe, 0x00000001},
{0xfffffffd, 0xfffffffd, 0xffffff80},
{0xffffff83, 0x00000000, 0x00007ffe},
{0xffff8002, 0xcccccccc, 0x33333333},
{0xffffff80, 0xffffff81, 0x0000007d},
{0x0000007e, 0xffff8000, 0x00007ffe},
{0x0000007e, 0x80000000, 0x80000001},
{0xffffff83, 0x00007fff, 0xffffffe0},
{0xcccccccc, 0x00007fff, 0xffffff80},
{0x0000007f, 0x0000007e, 0xfffffffd},
{0xcccccccc, 0xffffffff, 0x00000001},
{0xffffffff, 0xffff8000, 0xffffff82},
{0xfffffffe, 0x00000002, 0xffffffff}};
static const Inputs kRnIsNotRm[] = {
{0x00007ffe, 0x00007ffe, 0x80000000}, {0x80000001, 0xcccccccc, 0x00000001},
{0x0000007d, 0x00000020, 0xcccccccc}, {0x7ffffffd, 0x55555555, 0x0000007f},
{0x00000020, 0xffff8001, 0x80000001}, {0xffffffe0, 0xffffff81, 0xffffff83},
{0x00000002, 0xffffff80, 0xaaaaaaaa}, {0x00000002, 0x00000001, 0x0000007d},
{0xffffff83, 0x00007ffd, 0x00000002}, {0xffff8000, 0x00000020, 0x55555555},
{0x00007ffd, 0x0000007f, 0x7ffffffd}, {0xfffffffd, 0x80000000, 0x00000000},
{0x0000007f, 0x33333333, 0x7fffffff}, {0x00000000, 0x33333333, 0x55555555},
{0xffffff81, 0x00007fff, 0xaaaaaaaa}, {0x33333333, 0x00000000, 0x7ffffffe},
{0xfffffffe, 0x00000001, 0xffffffff}, {0xaaaaaaaa, 0xffffffe0, 0xffffff80},
{0x33333333, 0xffffffe0, 0x7fffffff}, {0x55555555, 0x7ffffffd, 0xffffff81},
{0xaaaaaaaa, 0xffffffe0, 0x0000007f}, {0x00007fff, 0xfffffffd, 0xcccccccc},
{0x7fffffff, 0xffff8002, 0x00000001}, {0x0000007d, 0x00000002, 0x7fffffff},
{0x00000002, 0x55555555, 0x00007ffe}, {0x00007ffd, 0x0000007d, 0xfffffffe},
{0x7ffffffd, 0x55555555, 0xffffff83}, {0x7ffffffe, 0x80000001, 0x00000001},
{0xfffffffd, 0x80000001, 0x80000000}, {0xffff8002, 0x00000000, 0x80000001},
{0x0000007d, 0x00000020, 0x0000007e}, {0x00000020, 0x0000007f, 0x80000001},
{0x7ffffffe, 0x80000001, 0xffff8002}, {0xffffff81, 0xffffff80, 0xffffff81},
{0x7ffffffe, 0xffffff80, 0x0000007d}, {0x00007ffd, 0x00000000, 0x55555555},
{0xcccccccc, 0xcccccccc, 0x7ffffffe}, {0xffff8002, 0x00000001, 0xffff8000},
{0x00007ffe, 0x0000007d, 0xffffffe0}, {0x00007ffd, 0x7ffffffe, 0xffffffe0},
{0x80000001, 0x7ffffffe, 0xffff8001}, {0x55555555, 0xffffff80, 0xffff8003},
{0xfffffffd, 0xffff8002, 0x55555555}, {0x33333333, 0xffff8000, 0xffff8003},
{0x7ffffffd, 0xffff8002, 0x0000007e}, {0x7fffffff, 0xffffff80, 0xfffffffd},
{0xffff8002, 0x00000001, 0xaaaaaaaa}, {0xffffff83, 0xffff8001, 0x33333333},
{0x00000000, 0xfffffffe, 0x0000007e}, {0x80000000, 0xffffffe0, 0x0000007d},
{0xffff8000, 0x33333333, 0x00000002}, {0xfffffffe, 0x00000002, 0xffffffe0},
{0x00007ffd, 0x0000007e, 0x7ffffffe}, {0xffffff81, 0xffffffff, 0x00000000},
{0x0000007e, 0x7ffffffe, 0x33333333}, {0x00000002, 0x80000001, 0xffffff80},
{0x7ffffffd, 0xffffff82, 0x7ffffffe}, {0xffffff81, 0x0000007e, 0xffffff81},
{0xffff8002, 0x00007fff, 0x0000007f}, {0xcccccccc, 0xcccccccc, 0x0000007d},
{0x7ffffffd, 0xffffff80, 0x00007ffe}, {0x55555555, 0x55555555, 0xfffffffe},
{0x00000001, 0x00000020, 0x00000001}, {0x0000007f, 0x7ffffffd, 0x80000001},
{0x55555555, 0xaaaaaaaa, 0xfffffffd}, {0x00000020, 0x00007fff, 0xffffff81},
{0xffffff80, 0x33333333, 0xffffff81}, {0x00000000, 0xffff8001, 0xffffff83},
{0x0000007e, 0x33333333, 0x7ffffffd}, {0xaaaaaaaa, 0x55555555, 0xffffffff},
{0xfffffffd, 0xffff8000, 0x00000000}, {0xffff8000, 0xfffffffe, 0x7fffffff},
{0xffff8001, 0xcccccccc, 0x33333333}, {0x00007ffd, 0xffff8001, 0x0000007f},
{0xffffff83, 0x7ffffffd, 0x7fffffff}, {0xffffff81, 0xffffffe0, 0x00007fff},
{0xffffffff, 0x00000002, 0xffffff82}, {0xffff8001, 0xffffff81, 0x55555555},
{0x00007fff, 0xffffff83, 0x00007ffe}, {0x00007fff, 0xcccccccc, 0x00000020},
{0x7fffffff, 0x7ffffffd, 0xffff8000}, {0x0000007f, 0x80000000, 0x7ffffffd},
{0x0000007e, 0x0000007e, 0x0000007d}, {0xfffffffe, 0x00000020, 0xffffff80},
{0x00007ffd, 0x00007ffe, 0xffffff82}, {0x00000020, 0x80000000, 0x0000007e},
{0x00000020, 0x00000002, 0xffffffff}, {0x00007fff, 0xffff8000, 0x00007fff},
{0xcccccccc, 0x7ffffffd, 0x80000000}, {0xffffff80, 0x00000002, 0xffffff81},
{0xfffffffe, 0xffffff83, 0x33333333}, {0xffff8000, 0x7ffffffe, 0x55555555},
{0x00007fff, 0x0000007e, 0xffffff81}, {0xaaaaaaaa, 0xcccccccc, 0xffffffe0},
{0x7ffffffd, 0xffffffff, 0xffff8003}, {0xffffff81, 0xffff8002, 0xffffff82},
{0x00000002, 0xffffffe0, 0x80000001}, {0x7ffffffe, 0x33333333, 0xaaaaaaaa},
{0x00007fff, 0x00000020, 0xfffffffe}, {0xcccccccc, 0xfffffffe, 0x00000000},
{0x7ffffffe, 0x80000001, 0xfffffffd}, {0xffffffe0, 0x00000000, 0xaaaaaaaa},
{0x80000000, 0xffffff83, 0xffff8000}, {0xffffff81, 0xfffffffe, 0xffffff83},
{0x80000000, 0x0000007e, 0xffff8002}, {0x80000001, 0x00000020, 0x00007ffe},
{0x00000000, 0x00000020, 0x0000007e}, {0x80000001, 0xffffffff, 0x7ffffffe},
{0xffffff83, 0x33333333, 0x00000001}, {0x00000020, 0xffffff80, 0xffffff81},
{0xcccccccc, 0xffff8000, 0x00007ffd}, {0xffff8003, 0x00000000, 0x0000007f},
{0xffff8003, 0x00000001, 0x0000007d}, {0x0000007e, 0x00000020, 0x55555555},
{0xffffffff, 0xfffffffe, 0xffffff83}, {0xffffff80, 0x80000000, 0xfffffffe},
{0x0000007e, 0x0000007e, 0x00000000}, {0xaaaaaaaa, 0x00000002, 0xffffffe0},
{0xffff8001, 0x00007ffe, 0x00000020}, {0x7ffffffe, 0xffff8000, 0x00007ffe},
{0xffffff80, 0x33333333, 0x00007fff}, {0x33333333, 0xffffff81, 0x00000001},
{0x00000000, 0x33333333, 0x00000020}, {0x00007fff, 0x00000020, 0x0000007e},
{0xcccccccc, 0x55555555, 0xffffffe0}, {0xffffff80, 0x0000007e, 0x33333333},
{0x0000007e, 0xffff8002, 0x00000000}, {0xffffff83, 0xffffffe0, 0xfffffffd},
{0x00000001, 0x0000007f, 0xffff8001}, {0xffffffff, 0x00000020, 0xcccccccc},
{0x7ffffffd, 0xfffffffd, 0xffff8000}, {0xffffffff, 0x80000000, 0x00007fff},
{0x00000020, 0xffffffe0, 0xfffffffd}, {0x55555555, 0xffff8002, 0x0000007f},
{0xffff8002, 0x55555555, 0x0000007f}, {0xffff8003, 0xffff8000, 0x0000007d},
{0x00007fff, 0x00007ffe, 0x00000000}, {0xcccccccc, 0xffffff81, 0x00007fff},
{0x7ffffffd, 0xcccccccc, 0xffff8000}, {0x7ffffffe, 0xffff8001, 0x80000000},
{0x0000007f, 0xffffffe0, 0x80000001}, {0xffff8000, 0x00007ffd, 0xffff8003},
{0xffff8001, 0xffffff80, 0x00000001}, {0x33333333, 0x00000000, 0x80000000},
{0xfffffffe, 0x7ffffffd, 0x80000001}, {0x00000000, 0xffffffe0, 0x80000001},
{0xffff8002, 0x7ffffffe, 0x33333333}, {0xffffffe0, 0x0000007e, 0x00000001},
{0xffffff80, 0xffffffe0, 0x00007ffe}, {0xffff8000, 0x0000007f, 0x80000001},
{0xffffff80, 0xffffff80, 0xffff8002}, {0x7fffffff, 0x0000007f, 0xfffffffd},
{0x00000001, 0xffffffe0, 0xffffffff}, {0x55555555, 0x0000007f, 0xffff8002},
{0xffff8001, 0xfffffffd, 0x00000020}, {0x00007ffd, 0xfffffffd, 0x0000007e},
{0xfffffffd, 0xffff8003, 0x55555555}, {0xfffffffe, 0xffffff80, 0x0000007f},
{0x0000007f, 0x0000007f, 0xfffffffe}, {0x33333333, 0x55555555, 0xffff8003},
{0x0000007d, 0x00000020, 0x55555555}, {0xffff8003, 0x33333333, 0xffffff83},
{0xffffffe0, 0x00007fff, 0xffffff80}, {0x00000020, 0x00000001, 0x0000007d},
{0xffffff83, 0x00007fff, 0xaaaaaaaa}, {0xfffffffd, 0xffffff83, 0x55555555},
{0xffff8002, 0x00007fff, 0xffffffe0}, {0x80000001, 0xffffff82, 0x00007ffd},
{0xffff8000, 0x00000002, 0xffffffe0}, {0xfffffffd, 0xffffff80, 0x7ffffffe},
{0xffffffff, 0xaaaaaaaa, 0xffff8000}, {0x7ffffffd, 0x00000002, 0xffff8002},
{0xffff8001, 0x00007ffe, 0xffffffff}, {0xffff8001, 0x00000001, 0x00000000},
{0x80000001, 0xffffff80, 0x7ffffffd}, {0xffffff80, 0x0000007d, 0xffffff81},
{0xffffff81, 0xcccccccc, 0xffffff81}, {0xaaaaaaaa, 0x00000000, 0xffffff81},
{0x00000002, 0x00000020, 0xffffff81}, {0x7ffffffd, 0x7ffffffe, 0xffffff83},
{0x7fffffff, 0x55555555, 0x0000007f}, {0xfffffffd, 0xffffff82, 0xfffffffd},
{0x00000020, 0x00007ffd, 0xffffff81}, {0x0000007e, 0xffffff83, 0x33333333},
{0xffffff83, 0x00007fff, 0x00000002}, {0xffffffe0, 0xffffff80, 0xffff8001},
{0x00000000, 0x00000000, 0x00000002}, {0xfffffffd, 0x7ffffffe, 0x00000001},
{0xfffffffd, 0xfffffffd, 0xffffff80}, {0xffffff83, 0x00000000, 0x00007ffe},
{0xffff8002, 0xcccccccc, 0x33333333}, {0xffffff80, 0xffffff81, 0x0000007d},
{0x0000007e, 0xffff8000, 0x00007ffe}, {0x0000007e, 0x80000000, 0x80000001},
{0xffffff83, 0x00007fff, 0xffffffe0}, {0xcccccccc, 0x00007fff, 0xffffff80},
{0x0000007f, 0x0000007e, 0xfffffffd}, {0xcccccccc, 0xffffffff, 0x00000001},
{0xffffffff, 0xffff8000, 0xffffff82}, {0xfffffffe, 0x00000002, 0xffffffff}};
// A loop will be generated for each element of this array.
+2 -2
View File
@@ -25,13 +25,13 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "../test-runner.h"
#include "../test-utils-aarch64.h"
#include "custom-disassembler.h"
#include "examples.h"
#include "non-const-visitor.h"
#include "../test-utils-aarch64.h"
#include "aarch64/macro-assembler-aarch64.h"
#include "aarch64/debugger-aarch64.h"
#include "aarch64/macro-assembler-aarch64.h"
#include "aarch64/simulator-aarch64.h"
#define TEST(name) TEST_(EXAMPLE_##name)
+1
View File
@@ -25,6 +25,7 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <sys/mman.h>
#include <cfloat>
#include <cmath>
#include <cstdio>
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -26,8 +26,8 @@
#include <stdlib.h>
#include "test-runner.h"
#include "globals-vixl.h"
#include "test-runner.h"
// These are all negative tests to check that the aborts work and print sensible
// messages. These tests cannot check the aborts with negative_testing=off.
+32 -64
View File
@@ -47,75 +47,43 @@ struct UintIntTest {
// Test IsUintN() and IsIntN() against various values and integral types.
TEST(IsUint_IsInt) {
UintIntTest<uint32_t> test_little_values_unsigned[] = {
{true, true, 1, UINT32_C(0x0)},
{true, false, 1, UINT32_C(0x1)},
{false, false, 1, UINT32_C(0x2)},
{false, false, 1, UINT32_C(0x3)},
{false, false, 1, UINT32_C(0x4)},
{false, false, 1, UINT32_C(0x5)},
{false, false, 1, UINT32_C(0x6)},
{false, false, 1, UINT32_C(0x7)},
{false, false, 1, UINT32_C(0x8)},
{false, false, 1, UINT32_C(0x9)},
{false, false, 1, UINT32_C(0xa)},
{false, false, 1, UINT32_C(0xb)},
{false, false, 1, UINT32_C(0xc)},
{false, false, 1, UINT32_C(0xd)},
{false, false, 1, UINT32_C(0xe)},
{false, false, 1, UINT32_C(0xf)},
{true, true, 1, UINT32_C(0x0)}, {true, false, 1, UINT32_C(0x1)},
{false, false, 1, UINT32_C(0x2)}, {false, false, 1, UINT32_C(0x3)},
{false, false, 1, UINT32_C(0x4)}, {false, false, 1, UINT32_C(0x5)},
{false, false, 1, UINT32_C(0x6)}, {false, false, 1, UINT32_C(0x7)},
{false, false, 1, UINT32_C(0x8)}, {false, false, 1, UINT32_C(0x9)},
{false, false, 1, UINT32_C(0xa)}, {false, false, 1, UINT32_C(0xb)},
{false, false, 1, UINT32_C(0xc)}, {false, false, 1, UINT32_C(0xd)},
{false, false, 1, UINT32_C(0xe)}, {false, false, 1, UINT32_C(0xf)},
{true, true, 2, UINT32_C(0x0)},
{true, true, 2, UINT32_C(0x1)},
{true, false, 2, UINT32_C(0x2)},
{true, false, 2, UINT32_C(0x3)},
{false, false, 2, UINT32_C(0x4)},
{false, false, 2, UINT32_C(0x5)},
{false, false, 2, UINT32_C(0x6)},
{false, false, 2, UINT32_C(0x7)},
{false, false, 2, UINT32_C(0x8)},
{false, false, 2, UINT32_C(0x9)},
{false, false, 2, UINT32_C(0xa)},
{false, false, 2, UINT32_C(0xb)},
{false, false, 2, UINT32_C(0xc)},
{false, false, 2, UINT32_C(0xd)},
{false, false, 2, UINT32_C(0xe)},
{false, false, 2, UINT32_C(0xf)},
{true, true, 2, UINT32_C(0x0)}, {true, true, 2, UINT32_C(0x1)},
{true, false, 2, UINT32_C(0x2)}, {true, false, 2, UINT32_C(0x3)},
{false, false, 2, UINT32_C(0x4)}, {false, false, 2, UINT32_C(0x5)},
{false, false, 2, UINT32_C(0x6)}, {false, false, 2, UINT32_C(0x7)},
{false, false, 2, UINT32_C(0x8)}, {false, false, 2, UINT32_C(0x9)},
{false, false, 2, UINT32_C(0xa)}, {false, false, 2, UINT32_C(0xb)},
{false, false, 2, UINT32_C(0xc)}, {false, false, 2, UINT32_C(0xd)},
{false, false, 2, UINT32_C(0xe)}, {false, false, 2, UINT32_C(0xf)},
};
UintIntTest<int32_t> test_little_values_signed[] = {
{true, true, 1, INT32_C(0)},
{true, false, 1, INT32_C(1)},
{false, false, 1, INT32_C(2)},
{false, false, 1, INT32_C(3)},
{false, false, 1, INT32_C(4)},
{false, false, 1, INT32_C(5)},
{false, false, 1, INT32_C(6)},
{false, false, 1, INT32_C(7)},
{false, true, 1, INT32_C(-1)},
{false, false, 1, INT32_C(-2)},
{false, false, 1, INT32_C(-3)},
{false, false, 1, INT32_C(-4)},
{false, false, 1, INT32_C(-5)},
{false, false, 1, INT32_C(-6)},
{false, false, 1, INT32_C(-7)},
{false, false, 1, INT32_C(-8)},
{true, true, 1, INT32_C(0)}, {true, false, 1, INT32_C(1)},
{false, false, 1, INT32_C(2)}, {false, false, 1, INT32_C(3)},
{false, false, 1, INT32_C(4)}, {false, false, 1, INT32_C(5)},
{false, false, 1, INT32_C(6)}, {false, false, 1, INT32_C(7)},
{false, true, 1, INT32_C(-1)}, {false, false, 1, INT32_C(-2)},
{false, false, 1, INT32_C(-3)}, {false, false, 1, INT32_C(-4)},
{false, false, 1, INT32_C(-5)}, {false, false, 1, INT32_C(-6)},
{false, false, 1, INT32_C(-7)}, {false, false, 1, INT32_C(-8)},
{true, true, 2, INT32_C(0)},
{true, true, 2, INT32_C(1)},
{true, false, 2, INT32_C(2)},
{true, false, 2, INT32_C(3)},
{false, false, 2, INT32_C(4)},
{false, false, 2, INT32_C(5)},
{false, false, 2, INT32_C(6)},
{false, false, 2, INT32_C(7)},
{false, true, 2, INT32_C(-1)},
{false, true, 2, INT32_C(-2)},
{false, false, 2, INT32_C(-3)},
{false, false, 2, INT32_C(-4)},
{false, false, 2, INT32_C(-5)},
{false, false, 2, INT32_C(-6)},
{false, false, 2, INT32_C(-7)},
{false, false, 2, INT32_C(-8)},
{true, true, 2, INT32_C(0)}, {true, true, 2, INT32_C(1)},
{true, false, 2, INT32_C(2)}, {true, false, 2, INT32_C(3)},
{false, false, 2, INT32_C(4)}, {false, false, 2, INT32_C(5)},
{false, false, 2, INT32_C(6)}, {false, false, 2, INT32_C(7)},
{false, true, 2, INT32_C(-1)}, {false, true, 2, INT32_C(-2)},
{false, false, 2, INT32_C(-3)}, {false, false, 2, INT32_C(-4)},
{false, false, 2, INT32_C(-5)}, {false, false, 2, INT32_C(-6)},
{false, false, 2, INT32_C(-7)}, {false, false, 2, INT32_C(-8)},
};
UintIntTest<uint32_t> test_u16[] = {
+1 -1
View File
@@ -27,8 +27,8 @@
#include "test-runner.h"
#ifdef VIXL_INCLUDE_TARGET_AARCH32
#include "aarch32/test-utils-aarch32.h"
#include "aarch32/macro-assembler-aarch32.h"
#include "aarch32/test-utils-aarch32.h"
#endif
#ifdef VIXL_INCLUDE_TARGET_AARCH64
+2 -1
View File
@@ -69,7 +69,8 @@ typedef InvalSet<Obj,
KeyType,
kInvalidKey,
kReclaimFrom,
kReclaimFactor> TestSet;
kReclaimFactor>
TestSet;
template <>
inline KeyType InvalSet<Obj,
+1 -1
View File
@@ -28,8 +28,8 @@
#include <stdio.h>
#include "pool-manager.h"
#include "pool-manager-impl.h"
#include "pool-manager.h"
#include "test-runner.h"
#define TEST(Name) TEST_(POOL_MANAGER_##Name)
+2 -2
View File
@@ -28,9 +28,9 @@
#define TEST_TEST_POOL_MANAGER_H_
#include <math.h>
#include <stdlib.h>
#include <pool-manager.h>
#include <pool-manager-impl.h>
#include <pool-manager.h>
#include <stdlib.h>
namespace vixl {
class TestPoolManager {
+1 -1
View File
@@ -24,9 +24,9 @@
// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include "test-runner.h"
+4 -4
View File
@@ -75,7 +75,7 @@ def ClangFormat(filename, in_place = False, progress_prefix = ''):
printer.PrintOverwritableLine('Processing %s' % filename,
type = printer.LINE_TYPE_LINTER)
cmd_format = ['clang-format-3.6', filename]
cmd_format = ['clang-format-3.8', filename]
temp_file, temp_file_name = tempfile.mkstemp(prefix = 'clang_format_')
cmd_format_string = '$ ' + ' '.join(cmd_format) + ' > %s' % temp_file_name
p_format = subprocess.Popen(cmd_format,
@@ -100,7 +100,7 @@ def ClangFormat(filename, in_place = False, progress_prefix = ''):
rc += p_diff.wait()
if in_place:
cmd_format = ['clang-format-3.6', '-i', filename]
cmd_format = ['clang-format-3.8', '-i', filename]
p_format = subprocess.Popen(cmd_format,
stdout=temp_file, stderr=subprocess.STDOUT)
@@ -128,10 +128,10 @@ def ClangFormatWrapper(args):
# Returns the total number of files incorrectly formatted.
def ClangFormatFiles(files, in_place = False, jobs = 1, progress_prefix = ''):
if not util.IsCommandAvailable('clang-format-3.6'):
if not util.IsCommandAvailable('clang-format-3.8'):
print(
printer.COLOUR_RED + \
("`clang-format-3.6` not found. Please ensure it is installed "
("`clang-format-3.8` not found. Please ensure it is installed "
"and in your PATH.") + \
printer.NO_COLOUR)
return -1
+2 -2
View File
@@ -34,7 +34,7 @@ From the VIXL toplevel directory run:
$ ./tools/generate_tests.py
The script assumes that `clang-format-3.6` is in the current path. If it isn't,
The script assumes that `clang-format-3.8` is in the current path. If it isn't,
you can provide your own:
$ ./tools/generate_tests.py --clang-format /patch/to/clang-format
@@ -687,7 +687,7 @@ def BuildOptions():
metavar='FILE',
help='Configuration files, each will generate a test file.')
result.add_argument('--clang-format',
default='clang-format-3.6', help='Path to clang-format.')
default='clang-format-3.8', help='Path to clang-format.')
result.add_argument('--jobs', '-j', type=int, metavar='N',
default=multiprocessing.cpu_count(),
help='Allow N jobs at once')