master: Work around some Windows issue.

apache--- via Sbcl-commits <[email protected]> Wed, 20 May 2026 21:21:26 +0000
Newsgroups gmane.lisp.steel-bank.cvs
Message-ID <[email protected]>
The branch "master" has been updated in SBCL:
       via  a7ee5386610dfd6605b8ae896556dbeb9d4b3709 (commit)
      from  a72425d87f09bd5bf8af1ba019b676669ac4096a (commit)

- Log -----------------------------------------------------------------
commit a7ee5386610dfd6605b8ae896556dbeb9d4b3709
Author: Charles Zhang <[email protected]>
Date:   Wed May 20 21:11:32 2026 +0200

    Work around some Windows issue.
    
    No idea.
---
 src/runtime/arm64-arch.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/runtime/arm64-arch.c b/src/runtime/arm64-arch.c
index e9e8d3af1..20787de74 100644
--- a/src/runtime/arm64-arch.c
+++ b/src/runtime/arm64-arch.c
@@ -203,8 +203,11 @@ void arch_do_displaced_inst(os_context_t *context, unsigned int orig_inst)
           *os_context_register_addr(context, rt) = *((uint64_t *)(pc + offset));
         else if (opc == 0b00)
           *os_context_register_addr(context, rt) = *((uint32_t *)(pc + offset));
-        else
-          lose("Unsupported LDR (literal) variant.");
+        else if (opc == 0b10)
+          *os_context_register_addr(context, rt) = (uint64_t)(int64_t)(*(int32_t *)(pc + offset));
+        // FIXME: Why does Windows crash out here?
+        // else
+          // lose("Unsupported LDR (literal) variant.");
         next_pc += 1;
     }
     else if (((orig_inst >> 24) & 0b11111) == 0b10000) {

-----------------------------------------------------------------------


hooks/post-receive
-- 
SBCL