Fix bug where bitwise-AND was being used and it should have been bitwise-OR.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@126904 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp b/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp
index a9eaa85..9602a78 100644
--- a/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp
+++ b/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp
@@ -6325,7 +6325,7 @@
                   
                 // t == UInt(Rt); imm32 = ZeroExtend(imm4H:imm4L, 32); add = (U == ’1’);
                 t = Bits32 (opcode, 15, 12);
-                imm32 = (imm4H << 4) & imm4L;
+                imm32 = (imm4H << 4) | imm4L;
                 add = BitIsSet (opcode, 23);
                   
                 // if t == 15 then UNPREDICTABLE;                  
@@ -6645,7 +6645,7 @@
             
                 uint32_t imm4H = Bits32 (opcode, 11, 8);
                 uint32_t imm4L = Bits32 (opcode, 3, 0);
-                imm32 = (imm4H << 4) & imm4L;
+                imm32 = (imm4H << 4) | imm4L;
                   
                 // index = (P == ’1’);	add = (U == ’1’);	wback = (P == ’0’) || (W == ’1’); 
                 index = BitIsSet (opcode, 24);
@@ -6757,7 +6757,7 @@
                 t = Bits32 (opcode, 15, 12);
                 uint32_t imm4H = Bits32 (opcode, 11, 8);
                 uint32_t imm4L = Bits32 (opcode, 3, 0);
-                imm32 = (imm4H << 4) & imm4L;
+                imm32 = (imm4H << 4) | imm4L;
                 add = BitIsSet (opcode, 23);
                   
                 // if t == 15 then UNPREDICTABLE;
@@ -7051,7 +7051,7 @@
                 n = Bits32 (opcode, 19, 16);
                 uint32_t imm4H = Bits32 (opcode, 11,8);
                 uint32_t imm4L = Bits32 (opcode, 3, 0);
-                imm32 = (imm4H << 4) & imm4L;
+                imm32 = (imm4H << 4) | imm4L;
                   
                 // index = (P == ’1’);	add = (U == ’1’);	wback = (P == ’0’) || (W == ’1’); 
                 index = BitIsSet (opcode, 24);
@@ -7177,7 +7177,7 @@
                 t = Bits32 (opcode, 15, 12);
                 uint32_t imm4H = Bits32 (opcode, 11, 8);
                 uint32_t imm4L = Bits32 (opcode, 3, 0);
-                imm32 = (imm4H << 4) & imm4L;
+                imm32 = (imm4H << 4) | imm4L;
                 add = BitIsSet (opcode, 23);
                   
                 // if t == 15 then UNPREDICTABLE;