tech-toolchain archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: www/firefox on earmv6hf
Hi,
On 2025/05/09 10:31, Jörg Sonnenberger wrote:
On 5/9/25 3:28 AM, Rin Okuyama wrote:
Hi,
I am who added this assertion to libunwind.
As described in the comment, numbering schemes for VFP
registers are different for GCC and LLVM :(
That shouldn't matter and the logic was supposed to place them in the
same location, so the assert is just wrong.
Hmm, with the attached patch, the assertions are dropped.
John, can you try this patch?
// My guess is that clang-style CFI directives in inline asm
// codes compiled by gcc, or vice versa. Although the assertions
// will be removed anyway, I'm just curious about how these fire...
Thanks,
rin
diff --git a/sys/lib/libunwind/Registers.hpp b/sys/lib/libunwind/Registers.hpp
index d10c7c44548..90890ee8ee1 100644
--- a/sys/lib/libunwind/Registers.hpp
+++ b/sys/lib/libunwind/Registers.hpp
@@ -383,8 +383,6 @@ enum {
#define FLAGS_VFPV2_USED 0x1
#define FLAGS_VFPV3_USED 0x2
-#define FLAGS_LEGACY_VFPV2_REGNO 0x4
-#define FLAGS_EXTENDED_VFPV2_REGNO 0x8
class Registers_arm32 {
public:
@@ -439,14 +437,6 @@ public:
assert(validFloatVectorRegister(num));
const void *addr = reinterpret_cast<const void *>(addr_);
if (num >= REGNO_ARM32_S0 && num <= REGNO_ARM32_S31) {
- /*
- * XXX
- * There are two numbering schemes for VFPv2 registers: s0-s31
- * (used by GCC) and d0-d15 (used by LLVM). We won't support both
- * schemes simultaneously in a same frame.
- */
- assert((flags & FLAGS_EXTENDED_VFPV2_REGNO) == 0);
- flags |= FLAGS_LEGACY_VFPV2_REGNO;
if ((flags & FLAGS_VFPV2_USED) == 0) {
lazyVFPv2();
flags |= FLAGS_VFPV2_USED;
@@ -464,12 +454,6 @@ public:
addr, sizeof(fpreg[0]) / 2);
} else {
if (num <= REGNO_ARM32_D15) {
- /*
- * XXX
- * See XXX comment above.
- */
- assert((flags & FLAGS_LEGACY_VFPV2_REGNO) == 0);
- flags |= FLAGS_EXTENDED_VFPV2_REGNO;
if ((flags & FLAGS_VFPV2_USED) == 0) {
lazyVFPv2();
flags |= FLAGS_VFPV2_USED;
@@ -496,8 +480,6 @@ private:
#undef FLAGS_VFPV2_USED
#undef FLAGS_VFPV3_USED
-#undef FLAGS_LEGACY_VFPV2_REGNO
-#undef FLAGS_EXTENDED_VFPV2_REGNO
enum {
DWARF_VAX_R0 = 0,
Home |
Main Index |
Thread Index |
Old Index