Module Name:    src
Committed By:   rin
Date:           Mon May 31 11:41:22 UTC 2021

Modified Files:
        src/sys/lib/libunwind: Registers.hpp unwind_registers.S

Log Message:
PR toolchain/55837

Misc style fixes for clarity:

- Rename lazyVFP1() and lazyVFP3() to lazyVFPv2() and lazyVFPv3(),
  respectively. Note that VFPv1 was obsoleted and replaced by VFPv2.

- Introduce enum for flags.

- Add few comments.

No functional changes.


To generate a diff of this commit:
cvs rdiff -u -r1.21 -r1.22 src/sys/lib/libunwind/Registers.hpp
cvs rdiff -u -r1.18 -r1.19 src/sys/lib/libunwind/unwind_registers.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/lib/libunwind/Registers.hpp
diff -u src/sys/lib/libunwind/Registers.hpp:1.21 src/sys/lib/libunwind/Registers.hpp:1.22
--- src/sys/lib/libunwind/Registers.hpp:1.21	Tue Feb 23 15:09:27 2021
+++ src/sys/lib/libunwind/Registers.hpp	Mon May 31 11:41:22 2021
@@ -350,9 +350,8 @@ public:
       return REGNO_ARM32_SPSR;
     if (num >= DWARF_ARM32_D0 && num <= DWARF_ARM32_D31)
       return REGNO_ARM32_D0 + (num - DWARF_ARM32_D0);
-    if (num >= DWARF_ARM32_S0 && num <= DWARF_ARM32_S31) {
+    if (num >= DWARF_ARM32_S0 && num <= DWARF_ARM32_S31)
       return REGNO_ARM32_S0 + (num - DWARF_ARM32_S0);
-    }
     return LAST_REGISTER + 1;
   }
 
@@ -385,9 +384,9 @@ public:
   void copyFloatVectorRegister(int num, uint64_t addr_) {
     const void *addr = reinterpret_cast<const void *>(addr_);
     if (num >= REGNO_ARM32_S0 && num <= REGNO_ARM32_S31) {
-      if ((flags & 1) == 0) {
-        lazyVFP1();
-        flags |= 1;
+      if ((flags & FLAGS_VFPV2_USED) == 0) {
+        lazyVFPv2();
+        flags |= FLAGS_VFPV2_USED;
       }
       /*
        * Emulate single precision register as half of the
@@ -402,27 +401,32 @@ public:
         addr, sizeof(fpreg[0]) / 2);
     }
     if (num <= REGNO_ARM32_D15) {
-      if ((flags & 1) == 0) {
-        lazyVFP1();
-        flags |= 1;
+      if ((flags & FLAGS_VFPV2_USED) == 0) {
+        lazyVFPv2();
+        flags |= FLAGS_VFPV2_USED;
       }
     } else {
-      if ((flags & 2) == 0) {
-        lazyVFP3();
-        flags |= 2;
+      if ((flags & FLAGS_VFPV3_USED) == 0) {
+        lazyVFPv3();
+        flags |= FLAGS_VFPV3_USED;
       }
     }
     memcpy(fpreg + (num - REGNO_ARM32_D0), addr, sizeof(fpreg[0]));
   }
 
-  __dso_hidden void lazyVFP1();
-  __dso_hidden void lazyVFP3();
+  __dso_hidden void lazyVFPv2();
+  __dso_hidden void lazyVFPv3();
   __dso_hidden void jumpto() const __dead;
 
 private:
   uint32_t reg[REGNO_ARM32_SPSR + 1];
   uint32_t flags;
   uint64_t fpreg[32];
+
+  enum {
+    FLAGS_VFPV2_USED = 0x1,
+    FLAGS_VFPV3_USED = 0x2,
+  };
 };
 
 enum {

Index: src/sys/lib/libunwind/unwind_registers.S
diff -u src/sys/lib/libunwind/unwind_registers.S:1.18 src/sys/lib/libunwind/unwind_registers.S:1.19
--- src/sys/lib/libunwind/unwind_registers.S:1.18	Tue Feb 23 15:09:27 2021
+++ src/sys/lib/libunwind/unwind_registers.S	Mon May 31 11:41:22 2021
@@ -360,37 +360,37 @@ ARM_ENTRY(_ZN7_Unwind15Registers_arm32C1
 	mrs	r1, cpsr
 	str	r1, [r0, #64]	/* CPSR */
 	mov	r1, #0
-	str	r1, [r0, #68]
+	str	r1, [r0, #68]	/* flags */
 	RET
 END(_ZN7_Unwind15Registers_arm32C1Ev)
 
-	.hidden _ZN7_Unwind15Registers_arm328lazyVFP1Ev
-ARM_ENTRY(_ZN7_Unwind15Registers_arm328lazyVFP1Ev)
+	.hidden _ZN7_Unwind15Registers_arm329lazyVFPv2Ev
+ARM_ENTRY(_ZN7_Unwind15Registers_arm329lazyVFPv2Ev)
 	add	r0, #72
 	vstmia	r0, {d0-d15}
 	RET
-END(_ZN7_Unwind15Registers_arm328lazyVFP1Ev)
+END(_ZN7_Unwind15Registers_arm329lazyVFPv2Ev)
 
-	.hidden _ZN7_Unwind15Registers_arm328lazyVFP3Ev
-ARM_ENTRY(_ZN7_Unwind15Registers_arm328lazyVFP3Ev)
+	.hidden _ZN7_Unwind15Registers_arm329lazyVFPv3Ev
+ARM_ENTRY(_ZN7_Unwind15Registers_arm329lazyVFPv3Ev)
 	add	r0, #200
 	vstmia	r0, {d16-d31}
 	RET
-END(_ZN7_Unwind15Registers_arm328lazyVFP3Ev)
+END(_ZN7_Unwind15Registers_arm329lazyVFPv3Ev)
 
 	.hidden _ZNK7_Unwind15Registers_arm326jumptoEv
 ARM_ENTRY(_ZNK7_Unwind15Registers_arm326jumptoEv)
-	ldrb	r1, [r0, #68]
+	ldrb	r1, [r0, #68]	/* flags */
 	tst	r1, #1
-	beq	.Lnovfp1
+	beq	.Lnovfpv2
 	add	r2, r0, #72
 	vldmia	r2, {d0-d15}
-.Lnovfp1:
+.Lnovfpv2:
 	tst	r1, #2
-	beq	.Lnovfp3
+	beq	.Lnovfpv3
 	add	r2, r0, #200
 	vldmia	r2, {d16-d31}
-.Lnovfp3:
+.Lnovfpv3:
 	ldr	r1, [r0, #64]
 	msr	cpsr_sxc, r1
 	ldmia	r0, {r0-r15}

Reply via email to