From 029888fd34783967acb67eed5cc6b44ff6fc7082 Mon Sep 17 00:00:00 2001
From: dtc <dtc>
Date: Mon, 19 Jan 1998 09:01:59 +0000
Subject: [PATCH] Fix the single value return from the function end breakpoint
 which had been returning two values.

---
 lisp/x86-assem.S | 23 ++++++++++-------------
 1 file changed, 10 insertions(+), 13 deletions(-)

diff --git a/lisp/x86-assem.S b/lisp/x86-assem.S
index 2b792bf4e..416c86fbe 100644
--- a/lisp/x86-assem.S
+++ b/lisp/x86-assem.S
@@ -1,6 +1,6 @@
 ### x86-assem.S -*- Mode: Asm; -*-
 /**
- * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/x86-assem.S,v 1.9 1997/11/29 19:52:32 dtc Exp $
+ * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/x86-assem.S,v 1.10 1998/01/19 09:01:59 dtc Exp $
  *
  * Authors:	Paul F. Werkowski <pw@snoopy.mv.com>
  *		Douglas T. Crosher
@@ -269,16 +269,14 @@ GNAME(closure_tramp):
 GNAME(function_end_breakpoint_guts):
 	/* Multiple Value return */
 	jmp	multiple_value_return
-	/* Single value return */
-
-	/* The eventual return will now be a multi-value return so
-	   setup for it. Multi-value returns are not in general valid
-	   for one value so convert to 2 values. Perhaps the
-	   convertion should be changed? */
-	movl	$8,%ecx		# Setup ecx=2 for the debugger.
-	movl	$NIL,%edi	# Second value
-	movl	%esp,%ebx	# ebx has the ofp
-	subl	$8,%esp		# needed?
+	/* Single value return: The eventual return will now use the
+	   multiple values return convention but with a return values
+	   count of one. */
+	movl	%esp,%ebx	# Setup ebx - the ofp.
+	subl	$4,%esp		# Allocate one stack slot for the return value
+	movl	$4,%ecx		# Setup ecx for one return value.
+	movl	$NIL,%edi	# Default second value
+	movl	$NIL,%esi	# Default third value
 		
 multiple_value_return:
 	
@@ -286,11 +284,10 @@ multiple_value_return:
 GNAME(function_end_breakpoint_trap):
 	int3
 	.byte 	trap_FunctionEndBreakpoint
+	hlt			# Should never return here.
 
-	/* Never returns here. */
 	.global GNAME(function_end_breakpoint_end)
 GNAME(function_end_breakpoint_end):
-	hlt
 
 
 	.global	GNAME(do_pending_interrupt)
-- 
GitLab