[PATCH] llvm-readobj: add support for ARM EHABI unwind info

Logan Chien tzuhsiang.chien at gmail.com
Mon Jan 6 05:44:00 PST 2014



================
Comment at: tools/llvm-readobj/ARMEHABIPrinter.h:117
@@ +116,3 @@
+
+  /// ARM EHABI §6.2 - The generic model
+  ///
----------------
There is some strange symbol in this line.

================
Comment at: tools/llvm-readobj/ARMEHABIPrinter.h:129
@@ +128,3 @@
+  ///
+  /// ARM EHABI § 6.3 - The ARM-defined compact model
+  ///
----------------
There is some strange symbol in this line.

================
Comment at: tools/llvm-readobj/ARMEHABIPrinter.h:236
@@ +235,3 @@
+
+      PrintByteCode(Contents->slice(Entry * IndexTableEntrySize + 4, 3));
+    } else {
----------------
Should this be "(Entry * IndexTableEntrySize + 5)" instead?  The 0x80 itself is not an unwind opcode.

================
Comment at: test/tools/llvm-readobj/arm-unwind.s:25
@@ +24,3 @@
+	.fnend
+
+
----------------
It will be great if you include .personality1 in your test as well.  FYI.

	.syntax unified
	.cpu cortex-a9

	.section .personality1
	.align 2
	.global personality1
	.type personality1,%function
personality1:
	.fnstart
	.pad #0x100
	sub sp, sp, #0x100
	.save {r0-r11}
	push {r0-r11}
	pop {r0-r11}
	add sp, sp, #0x100
	bx lr
	.fnend


================
Comment at: tools/llvm-readobj/ARMEHABIPrinter.h:149
@@ +148,3 @@
+
+    switch (PersonalityIndex) {
+    case AEABI_UNWIND_CPP_PR0:
----------------
In fact, the only possible personality index is 0.  For the other personality index, they should be placed in .ARM.extab section.  (It will be helpful to have a look to the personality1 test case which I have given above.)


http://llvm-reviews.chandlerc.com/D2513



More information about the llvm-commits mailing list