[Mono-bugs] [Bug 486408] New: Optimize does not work for long jump
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Wed Mar 18 08:12:49 EDT 2009
https://bugzilla.novell.com/show_bug.cgi?id=486408
Summary: Optimize does not work for long jump
Classification: Mono
Product: Mono: Class Libraries
Version: unspecified
Platform: Other
OS/Version: Other
Status: NEW
Severity: Normal
Priority: P5 - None
Component: Cecil
AssignedTo: jbevain at novell.com
ReportedBy: msafar at novell.com
QAContact: mono-bugs at lists.ximian.com
Found By: ---
Optimize does not work in all cases, here is one example
Jump at IL_0094 should be optimized to br.s but it's not
IL_0088: ldloc.2
IL_0089: castclass System.String
IL_008e: call string
System.Environment::ExpandEnvironmentVariables(string)
IL_0093: stloc.2
IL_0094: br IL_0108
IL_0099: ldloc.0
IL_009a: ldc.i4.4
IL_009b: bne.un.s IL_00be
IL_009d: ldc.i4.0
IL_009e: stloc.s V_7
IL_00a0: ldloc.3
IL_00a1: ldarg.2
IL_00a2: ldsfld native int System.IntPtr::Zero
IL_00a7: ldloca.s V_0
IL_00a9: ldloca.s V_7
IL_00ab: ldloca.s V_1
IL_00ad: call int32
Microsoft.Win32.Win32RegistryApi::RegQueryValueEx(native int,
string,
native int,
valuetype Microsoft.Win32.RegistryValueKind&,
int32&,
int32&)
IL_00b2: stloc.s V_4
IL_00b4: ldloc.s V_7
IL_00b6: box System.Int32
IL_00bb: stloc.2
IL_00bc: br.s IL_0108
IL_00be: ldloc.0
IL_00bf: ldc.i4.3
IL_00c0: bne.un.s IL_00d5
IL_00c2: ldarg.0
IL_00c3: ldarg.1
IL_00c4: ldarg.2
IL_00c5: ldloc.0
IL_00c6: ldloca.s V_8
IL_00c8: ldloc.1
IL_00c9: call instance int32
Microsoft.Win32.Win32RegistryApi::GetBinaryValue(class
Microsoft.Win32.RegistryKey,
string,
valuetype Microsoft.Win32.RegistryValueKind,
uint8[]&,
int32)
IL_00ce: stloc.s V_4
IL_00d0: ldloc.s V_8
IL_00d2: stloc.2
IL_00d3: br.s IL_0108
IL_00d5: ldloc.0
IL_00d6: ldc.i4.7
IL_00d7: bne.un.s IL_0102
IL_00d9: ldnull
IL_00da: stloc.2
IL_00db: ldarg.0
IL_00dc: ldarg.1
IL_00dd: ldarg.2
IL_00de: ldloc.0
IL_00df: ldloca.s V_9
IL_00e1: ldloc.1
IL_00e2: call instance int32
Microsoft.Win32.Win32RegistryApi::GetBinaryValue(class
Microsoft.Win32.RegistryKey,
string,
valuetype Microsoft.Win32.RegistryValueKind,
uint8[]&,
int32)
IL_00e7: stloc.s V_4
IL_00e9: ldloc.s V_4
IL_00eb: brtrue.s IL_0100
IL_00ed: ldloc.s V_9
IL_00ef: call string
Microsoft.Win32.RegistryKey::DecodeString(uint8[])
IL_00f4: ldc.i4.1
IL_00f5: newarr System.Char
IL_00fa: callvirt instance string[] System.String::Split(char[])
IL_00ff: stloc.2
IL_0100: br.s IL_0108
IL_0102: newobj instance void System.SystemException::.ctor()
IL_0107: throw
IL_0108: ldloc.s V_4
IL_010a: brfalse.s IL_0114
--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
More information about the mono-bugs
mailing list