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…
==============================================================================
--- 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…
==============================================================================
--- 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;