[ros-diffs] [tkreuzer] 37462: - use (unsigned) long instead of ULONG - add DW_CFA_offset_extended_sf

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Wed Nov 19 20:03:40 CET 2008


Author: tkreuzer
Date: Wed Nov 19 13:03:40 2008
New Revision: 37462

URL: http://svn.reactos.org/svn/reactos?rev=37462&view=rev
Log:
- use (unsigned) long instead of ULONG
- add DW_CFA_offset_extended_sf

Modified:
    branches/ros-amd64-bringup/reactos/tools/rsym/dwarf2.h
    branches/ros-amd64-bringup/reactos/tools/rsym/rsym64.c

Modified: branches/ros-amd64-bringup/reactos/tools/rsym/dwarf2.h
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/tools/rsym/dwarf2.h?rev=37462&r1=37461&r2=37462&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/tools/rsym/dwarf2.h [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/tools/rsym/dwarf2.h [iso-8859-1] Wed Nov 19 13:03:40 2008
@@ -802,27 +802,27 @@
 
 typedef struct
 {
-    ULONG Length;
+    unsigned long Length;
     char *Next;
     char *CiePointer;
-    ULONG PcBegin;
-    ULONG PcRange;
-    ULONG AugLength;
+    unsigned long PcBegin;
+    unsigned long PcRange;
+    unsigned long AugLength;
     char *AugData;
     char *Instructions;
 } DW2FDE, *PDW2FDE;
 
 typedef struct _CFSTATE
 {
-    ULONG Location;
-    ULONG Code;
-    ULONG Reg;
-    ULONG Reg2;
-    ULONG FramePtr;
-    ULONG FramePtrDiff;
-    ULONG Offset;
-    ULONG IsUwop;
-    ULONG Scope;
+    unsigned long Location;
+    unsigned long Code;
+    unsigned long Reg;
+    unsigned long Reg2;
+    long FramePtr;
+    long FramePtrDiff;
+    long Offset;
+    unsigned long IsUwop;
+    unsigned long Scope;
 } DW2CFSTATE, *PDW2CFSTATE;
 
 #define NextCIE(p) ((void*)((char*)p + p->Length + 4))

Modified: branches/ros-amd64-bringup/reactos/tools/rsym/rsym64.c
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/tools/rsym/rsym64.c?rev=37462&r1=37461&r2=37462&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/tools/rsym/rsym64.c [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/tools/rsym/rsym64.c [iso-8859-1] Wed Nov 19 13:03:40 2008
@@ -131,7 +131,7 @@
     {
         State->Code = DW_CFA_offset;
         State->Reg = Code & 0x3f;
-        Length += DwDecodeUleb128(&State->Offset, pc + 1);
+        Length += DwDecodeUleb128((unsigned long*)&State->Offset, pc + 1);
         State->Offset *= 8; // fixme data alignment
         State->IsUwop = 1;
     }
@@ -162,9 +162,14 @@
             break;
         case DW_CFA_offset_extended:
             Length += DwDecodeUleb128(&State->Reg, pc + Length);
-            Length += DwDecodeUleb128(&State->Offset, pc + Length);
+            Length += DwDecodeUleb128((unsigned long*)&State->Offset, pc + Length);
             State->IsUwop = 1;
             break;
+        case DW_CFA_offset_extended_sf:
+            Length += DwDecodeUleb128(&State->Reg, pc + Length);
+            Length += DwDecodeSleb128(&State->Offset, pc + Length);
+            State->IsUwop = 1;
+            break;
         case DW_CFA_restore_extended:
             Length += DwDecodeUleb128(&State->Reg, pc + Length);
             break;
@@ -184,19 +189,19 @@
             break;
         case DW_CFA_def_cfa:
             Length += DwDecodeUleb128(&State->Reg, pc + Length);
-            Length += DwDecodeUleb128(&State->FramePtr, pc + Length);
+            Length += DwDecodeUleb128((unsigned long*)&State->FramePtr, pc + Length);
             State->IsUwop = 1;
             break;
         case DW_CFA_def_cfa_register:
             Length += DwDecodeUleb128(&State->Reg, pc + Length);
             break;
         case DW_CFA_def_cfa_offset:
-            Length += DwDecodeUleb128(&State->FramePtr, pc + Length);
+            Length += DwDecodeUleb128((unsigned long*)&State->FramePtr, pc + Length);
             State->IsUwop = 1;
             break;
         case DW_CFA_def_cfa_sf:
             Length += DwDecodeUleb128(&State->Reg, pc + Length);
-            Length += DwDecodeSleb128((LONG*)&State->FramePtr, pc + Length);
+            Length += DwDecodeSleb128(&State->FramePtr, pc + Length);
             State->FramePtr *= 8; // data alignment
             State->IsUwop = 1;
             break;



More information about the Ros-diffs mailing list