[Openmcl-cvs-notifications] r11314 - in /trunk/source/lisp-kernel: x86-spentry32.s x86-spentry64.s

gb at clozure.com gb at clozure.com
Sat Nov 8 12:15:23 EST 2008


Author: gb
Date: Sat Nov  8 12:15:22 2008
New Revision: 11314

Log:
Use hlt instructions (not "int $3") for things that're stubbed out/
not yet implemented (hlt will enter the kernel debugger as an
unhandled exception, "int $3" will terminate the process with
a SIGTRAP unless a debugger's installed.)

Implement _SPstack_misc_alloc_init on x8632.



Modified:
    trunk/source/lisp-kernel/x86-spentry32.s
    trunk/source/lisp-kernel/x86-spentry64.s

Modified: trunk/source/lisp-kernel/x86-spentry32.s
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/x86-spentry32.s (original)
+++ trunk/source/lisp-kernel/x86-spentry32.s Sat Nov  8 12:15:22 2008
@@ -1641,7 +1641,7 @@
 /*	nargs set to #args vpushed.  */
 =

 _spentry(stkconslist_star)
-	__(int $3)
+	__(hlt)
 	__(nop)
 _endsubp(stkconslist_star)
 =

@@ -2054,11 +2054,11 @@
 _endsubp(gvector)
 =

 _spentry(mvpass)
-	__(int $3)
+	__(hlt)
 _endsubp(mvpass)
 =

 _spentry(nthvalue)
-	__(int $3)
+	__(hlt)
 _endsubp(nthvalue)
 =

 _spentry(values)
@@ -2089,15 +2089,15 @@
 _endsubp(values)
 =

 _spentry(default_optional_args)
-	__(int $3)
+	__(hlt)
 _endsubp(default_optional_args)
 =

 _spentry(opt_supplied_p)
-	__(int $3)
+	__(hlt)
 _endsubp(opt_supplied_p)
 =

 _spentry(lexpr_entry)
-	__(int $3)
+	__(hlt)
 _endsubp(lexpr_entry)
 =

 _spentry(heap_rest_arg)
@@ -2440,7 +2440,7 @@
 _endsubp(stack_cons_rest_arg)
 =

 _spentry(getxlong)
-	__(int $3)
+	__(hlt)
 _endsubp(getxlong)
 =

 /* Have to be a little careful here: the caller may or may not have pushed=
  */
@@ -3081,7 +3081,7 @@
 _endsubp(destructuring_bind_inner)
 =

 _spentry(vpopargregs)
-	__(int $3)
+	__(hlt)
 _endsubp(vpopargregs)
 =

 /* If arg_z is an integer, return in imm0 something whose sign  */
@@ -3267,7 +3267,7 @@
 _endsubp(recover_values_for_mvcall)
 =

 _spentry(reset)
-	__(int $3)
+	__(hlt)
 _endsubp(reset)
 =

 /* temp0 =3D element-count, arg_y =3D subtag, arg_z =3D initval */
@@ -3287,8 +3287,21 @@
 	__(jump_fname())
 _endsubp(misc_alloc_init)
 =

+/* %temp1 =3D element-count, %arg_y =3D subtag, %arg_z =3D initial-value *=
/        =

 _spentry(stack_misc_alloc_init)
-	__(int $3)
+	__(push %ebp)
+        __(movl %esp,%ebp)
+        __(push %arg_z)
+        __(movl %arg_y,%arg_z)
+        __(movl %temp1,%arg_y)
+        __(pushl $local_label(stack_misc_alloc_init_back))
+        __(jmp _SPstack_misc_alloc)
+__(tra(local_label(stack_misc_alloc_init_back)))
+        __(popl %arg_y)
+	__(leave)
+	__(movl $nrs.init_misc,%fname)
+	__(set_nargs(2))
+	__(jump_fname())
 _endsubp(stack_misc_alloc_init)
 =

 	.globl C(popj)
@@ -3453,7 +3466,7 @@
 _endsubp(specrefcheck)
 =

 _spentry(restoreintlevel)
-	__(int $3)
+	__(hlt)
 _endsubp(restoreintlevel)
 =

 /* Make a lisp integer from the unsigned value in imm0 */
@@ -3529,7 +3542,7 @@
 _endsubp(getu32)
 =

 _spentry(mvpasssym)
-	__(int $3)
+	__(hlt)
 _endsubp(mvpasssym)
 =

 /* don't smash arg_z */
@@ -4165,7 +4178,7 @@
 _endsubp(ffcall)
 =

 _spentry(ffcall_return_registers)
-	__(int $3)
+	__(hlt)
 _endsubp(ffcall_return_registers)
 =

 /* We need to reserve a frame here if (a) nothing else was already pushed
@@ -4636,77 +4649,77 @@
 _endsubp(call_closure)
 =

 _spentry(poweropen_callbackX)
-	__(int $3)
+	__(hlt)
 _endsubp(poweropen_callbackX)
 =

 _spentry(poweropen_ffcallX)
-	__(int $3)
+	__(hlt)
 _endsubp(poweropen_ffcallX)
 =

 _spentry(eabi_ff_call)
-	__(int $3)
+	__(hlt)
 _endsubp(eabi_ff_call)
 =

 _spentry(eabi_callback)
-	__(int $3)
+	__(hlt)
 _endsubp(eabi_callback)
 =

 =

 /* Unused, and often not used on PPC either  */
 _spentry(callbuiltin)
-	__(int $3)
+	__(hlt)
 _endsubp(callbuiltin)
 =

 _spentry(callbuiltin0)
-	__(int $3)
+	__(hlt)
 _endsubp(callbuiltin0)
 =

 _spentry(callbuiltin1)
-	__(int $3)
+	__(hlt)
 _endsubp(callbuiltin1)
 =

 _spentry(callbuiltin2)
-	__(int $3)
+	__(hlt)
 _endsubp(callbuiltin2)
 =

 _spentry(callbuiltin3)
-	__(int $3)
+	__(hlt)
 _endsubp(callbuiltin3)
 =

 _spentry(restorefullcontext)
-	__(int $3)
+	__(hlt)
 _endsubp(restorefullcontext)
 =

 _spentry(savecontextvsp)
-	__(int $3)
+	__(hlt)
 _endsubp(savecontextvsp)
 =

 _spentry(savecontext0)
-	__(int $3)
+	__(hlt)
 _endsubp(savecontext0)
 =

 _spentry(restorecontext)
-	__(int $3)
+	__(hlt)
 _endsubp(restorecontext)
 =

 _spentry(stkconsyz)
-	__(int $3)
+	__(hlt)
 _endsubp(stkconsyz)
 =

 _spentry(stkvcell0)
-	__(int $3)
+	__(hlt)
 _endsubp(stkvcell0)
 =

 _spentry(stkvcellvsp)
-	__(int $3)
+	__(hlt)
 _endsubp(stkvcellvsp)
 =

 _spentry(breakpoint)
-        __(int $3)
+        __(hlt)
 _endsubp(breakpoint)
 =

 _spentry(unused_6)
-        __(int $3)
+        __(hlt)
 Xspentry_end:
 _endsubp(unused_6)
         .data

Modified: trunk/source/lisp-kernel/x86-spentry64.s
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/x86-spentry64.s (original)
+++ trunk/source/lisp-kernel/x86-spentry64.s Sat Nov  8 12:15:22 2008
@@ -2123,13 +2123,13 @@
 _endsubp(gvector)
 =

 _spentry(mvpass)
-	__(int $3)
+	__(hlt)
 _endsubp(mvpass)
 =

 =

 =

 _spentry(nthvalue)
-	__(int $3)
+	__(hlt)
 _endsubp(nthvalue)
 =

 _spentry(values)
@@ -2157,15 +2157,15 @@
 _endsubp(values)
 =

 _spentry(default_optional_args)
-	__(int $3)
+	__(hlt)
 _endsubp(default_optional_args)
 =

 _spentry(opt_supplied_p)
-	__(int $3)
+	__(hlt)
 _endsubp(opt_supplied_p)
 =

 _spentry(lexpr_entry)
-	__(int $3)
+	__(hlt)
 _endsubp(lexpr_entry)
 	=

 _spentry(heap_rest_arg)
@@ -3219,7 +3219,7 @@
 _endsubp(recover_values_for_mvcall)
         				=

 _spentry(reset)
-	__(int $3)
+	__(hlt)
 _endsubp(reset)
 =

 =

@@ -3396,19 +3396,19 @@
 _endsubp(restoreintlevel)
 =

 _spentry(makes32)
-	__(int $3)
+	__(hlt)
 _endsubp(makes32)
 =

 _spentry(makeu32)
-	__(int $3)
+	__(hlt)
 _endsubp(makeu32)
 =

 _spentry(gets32)
-	__(int $3)
+	__(hlt)
 _endsubp(gets32)
 =

 _spentry(getu32)
-	__(int $3)
+	__(hlt)
 _endsubp(getu32)
 =

 =

@@ -5020,55 +5020,55 @@
 =

 /* Unused, and often not used on PPC either  */
 _spentry(callbuiltin)
-	__(int $3)
+	__(hlt)
 _endsubp(callbuiltin)
 =

 _spentry(callbuiltin0)
-	__(int $3)
+	__(hlt)
 _endsubp(callbuiltin0)
 =

 _spentry(callbuiltin1)
-	__(int $3)
+	__(hlt)
 _endsubp(callbuiltin1)
 =

 _spentry(callbuiltin2)
-	__(int $3)
+	__(hlt)
 _endsubp(callbuiltin2)
 =

 _spentry(callbuiltin3)
-	__(int $3)
+	__(hlt)
 _endsubp(callbuiltin3)
 	=

 _spentry(restorefullcontext)
-	__(int $3)
+	__(hlt)
 _endsubp(restorefullcontext)
 =

 _spentry(savecontextvsp)
-	__(int $3)
+	__(hlt)
 _endsubp(savecontextvsp)
 =

 _spentry(savecontext0)
-	__(int $3)
+	__(hlt)
 _endsubp(savecontext0)
 =

 _spentry(restorecontext)
-	__(int $3)
+	__(hlt)
 _endsubp(restorecontext)
 =

 _spentry(stkconsyz)
-	__(int $3)
+	__(hlt)
 _endsubp(stkconsyz)
 =

 _spentry(stkvcell0)
-	__(int $3)
+	__(hlt)
 _endsubp(stkvcell0)
 =

 _spentry(stkvcellvsp)
-	__(int $3)
+	__(hlt)
 _endsubp(stkvcellvsp)
 =

 _spentry(breakpoint)
-        __(int $3)
+        __(hlt)
 _endsubp(breakpoint)
 =

 =

@@ -5152,7 +5152,7 @@
         __endif
         =

 _spentry(unused_5)
-        __(int $3)
+        __(hlt)
 Xspentry_end:           =

 _endsubp(unused_5)
         =




More information about the Openmcl-cvs-notifications mailing list