Recognize the eax/ebp/eip etc version of x86 register
authorJason Molenda <jmolenda@apple.com>
Fri, 28 Sep 2012 05:46:55 +0000 (05:46 +0000)
committerJason Molenda <jmolenda@apple.com>
Fri, 28 Sep 2012 05:46:55 +0000 (05:46 +0000)
names in addition to the rax/rbp/rip register names when
deciding whether a register is volatile or not.

llvm-svn: 164812

lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp

index f7312c6..e3b4ae6 100644 (file)
@@ -1169,6 +1169,16 @@ ABISysV_x86_64::RegisterIsCalleeSaved (const RegisterInfo *reg_info)
                     return name[3] == '\0';
                 break;
 
+            default:
+                break;
+            }
+        }
+
+        // Accept shorter-variant versions, rbx/ebx, rip/ eip, etc.
+        if (name[0] == 'r' || name[0] == 'e')
+        {
+            switch (name[1])
+            {
             case 'b': // rbp, rbx
                 if (name[2] == 'p' || name[2] == 'x')
                     return name[3] == '\0';
@@ -1184,8 +1194,6 @@ ABISysV_x86_64::RegisterIsCalleeSaved (const RegisterInfo *reg_info)
                     return name[3] == '\0';
                 break;
 
-            default:
-                break;
             }
         }
     }