1*61f48ca3SMarcello Maggioni //===- MachineOperandTest.cpp ---------------------------------===//
2*61f48ca3SMarcello Maggioni //
3*61f48ca3SMarcello Maggioni //                     The LLVM Compiler Infrastructure
4*61f48ca3SMarcello Maggioni //
5*61f48ca3SMarcello Maggioni // This file is distributed under the University of Illinois Open Source
6*61f48ca3SMarcello Maggioni // License. See LICENSE.TXT for details.
7*61f48ca3SMarcello Maggioni //
8*61f48ca3SMarcello Maggioni //===----------------------------------------------------------------------===//
9*61f48ca3SMarcello Maggioni 
10*61f48ca3SMarcello Maggioni #include "llvm/ADT/ilist_node.h"
11*61f48ca3SMarcello Maggioni #include "llvm/CodeGen/MachineOperand.h"
12*61f48ca3SMarcello Maggioni #include "gtest/gtest.h"
13*61f48ca3SMarcello Maggioni 
14*61f48ca3SMarcello Maggioni using namespace llvm;
15*61f48ca3SMarcello Maggioni 
16*61f48ca3SMarcello Maggioni namespace {
17*61f48ca3SMarcello Maggioni 
18*61f48ca3SMarcello Maggioni TEST(MachineOperandTest, ChangeToTargetIndexTest) {
19*61f48ca3SMarcello Maggioni   // Creating a MachineOperand to change it to TargetIndex
20*61f48ca3SMarcello Maggioni   MachineOperand MO = MachineOperand::CreateImm(50);
21*61f48ca3SMarcello Maggioni 
22*61f48ca3SMarcello Maggioni   // Checking some precondition on the newly created
23*61f48ca3SMarcello Maggioni   // MachineOperand.
24*61f48ca3SMarcello Maggioni   ASSERT_TRUE(MO.isImm());
25*61f48ca3SMarcello Maggioni   ASSERT_TRUE(MO.getImm() == 50);
26*61f48ca3SMarcello Maggioni   ASSERT_FALSE(MO.isTargetIndex());
27*61f48ca3SMarcello Maggioni 
28*61f48ca3SMarcello Maggioni   // Changing to TargetIndex with some arbitrary values
29*61f48ca3SMarcello Maggioni   // for index, offset and flags.
30*61f48ca3SMarcello Maggioni   MO.ChangeToTargetIndex(74, 57, 12);
31*61f48ca3SMarcello Maggioni 
32*61f48ca3SMarcello Maggioni   // Checking that the mutation to TargetIndex happened
33*61f48ca3SMarcello Maggioni   // correctly.
34*61f48ca3SMarcello Maggioni   ASSERT_TRUE(MO.isTargetIndex());
35*61f48ca3SMarcello Maggioni   ASSERT_TRUE(MO.getIndex() == 74);
36*61f48ca3SMarcello Maggioni   ASSERT_TRUE(MO.getOffset() == 57);
37*61f48ca3SMarcello Maggioni   ASSERT_TRUE(MO.getTargetFlags() == 12);
38*61f48ca3SMarcello Maggioni }
39*61f48ca3SMarcello Maggioni 
40*61f48ca3SMarcello Maggioni } // end namespace
41