[Lldb-commits] [lldb] r348710 - Remove some UB in RegisterContextDarwin_arm64.cpp

Frederic Riss via lldb-commits lldb-commits at lists.llvm.org
Sat Dec 8 18:35:19 PST 2018


Author: friss
Date: Sat Dec  8 18:35:19 2018
New Revision: 348710

URL: http://llvm.org/viewvc/llvm-project?rev=348710&view=rev
Log:
Remove some UB in RegisterContextDarwin_arm64.cpp

Modified:
    lldb/trunk/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp
    lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp

Modified: lldb/trunk/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp?rev=348710&r1=348709&r2=348710&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp (original)
+++ lldb/trunk/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp Sat Dec  8 18:35:19 2018
@@ -90,7 +90,7 @@ static inline uint64_t
 AddWithCarry(uint32_t N, uint64_t x, uint64_t y, bit carry_in,
              EmulateInstructionARM64::ProcState &proc_state) {
   uint64_t unsigned_sum = UInt(x) + UInt(y) + UInt(carry_in);
-  int64_t signed_sum = SInt(x) + SInt(y) + UInt(carry_in);
+  int64_t signed_sum = 0;//SInt(x) + SInt(y) + UInt(carry_in);
   uint64_t result = unsigned_sum;
   if (N < 64)
     result = Bits64(result, N - 1, 0);

Modified: lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp?rev=348710&r1=348709&r2=348710&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp (original)
+++ lldb/trunk/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp Sat Dec  8 18:35:19 2018
@@ -338,12 +338,22 @@ bool RegisterContextDarwin_arm64::ReadRe
   case gpr_x26:
   case gpr_x27:
   case gpr_x28:
+    value.SetUInt64(gpr.x[reg - gpr_x0]);
+    break;
   case gpr_fp:
+    value.SetUInt64(gpr.fp);
+    break;
   case gpr_sp:
+    value.SetUInt64(gpr.sp);
+    break;
   case gpr_lr:
+    value.SetUInt64(gpr.lr);
+    break;
   case gpr_pc:
+    value.SetUInt64(gpr.pc);
+    break;
   case gpr_cpsr:
-    value.SetUInt64(gpr.x[reg - gpr_x0]);
+    value.SetUInt64(gpr.cpsr);
     break;
 
   case gpr_w0:




More information about the lldb-commits mailing list