From bfdaafe0ddda17beff76f275b846875eb2c8f91f Mon Sep 17 00:00:00 2001 From: cwang <cwang> Date: Tue, 22 Jun 2004 22:05:50 +0000 Subject: [PATCH] Save a few more registers for resolve_linkage_tramp --- lisp/amd64-assem.S | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/lisp/amd64-assem.S b/lisp/amd64-assem.S index 0ac2bb0ff..c34fdd184 100644 --- a/lisp/amd64-assem.S +++ b/lisp/amd64-assem.S @@ -1,6 +1,6 @@ ### x86-assem.S -*- Mode: Asm; -*- /** - * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/amd64-assem.S,v 1.2 2004/06/10 01:47:35 cwang Exp $ + * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/amd64-assem.S,v 1.3 2004/06/22 22:05:50 cwang Exp $ * * Authors: Paul F. Werkowski <pw@snoopy.mv.com> * Douglas T. Crosher @@ -833,13 +833,17 @@ GNAME(resolve_linkage_tramp): pushq %rbp # save old frame pointer movq %rsp,%rbp # establish new frame pushq %rax - pushq %rbx + # rbx is callee saved pushq %rcx pushq %rdx pushq %rdi pushq %rsi - /* maybe save r8-15 too */ - + pushq %r8 + pushq %r9 + pushq %r10 + pushq %r11 + # r12-15 is callee saved + /* calling location (plus offset) was on top of stack */ movq 8(%rbp), %rdi # arg 1 for C function call GNAME(lazy_resolve_linkage) @@ -848,12 +852,14 @@ GNAME(resolve_linkage_tramp): * registers! */ movq %rax,8(%rbp) - /* maybe pop r8-15 too */ + popq %r11 + popq %r10 + popq %r9 + popq %r8 popq %rsi popq %rdi popq %rdx popq %rcx - popq %rbx popq %rax popq %rbp ret # jump to the real target -- GitLab