From: Nathan F. <fr...@gm...> - 2009-05-02 02:17:52
|
I see the following with recent builds: CL-USER> (disassemble 'sb-impl::get-cat-entry) ; 09B28BF8: .ENTRY (SB-C::&OPTIONAL-DISPATCH (LAMBDA (&REST SB-C::ARGS)))(&REST ARGS) ; (FUNCTION ; # ..) ; C14: 8F45F8 POP DWORD PTR [EBP-8] ; C17: E340 JECXZ L2 ; C19: 8D5DE0 LEA EBX, [EBP-32] ; C1C: 29CB SUB EBX, ECX ; C1E: 8BE3 MOV ESP, EBX ; C20: 8BD9 MOV EBX, ECX ; C22: 83E90C SUB ECX, 12 ; C25: 761B JBE L1 ; C27: 57 PUSH EDI ; C28: 56 PUSH ESI ; C29: 53 PUSH EBX ; C2A: 8BF5 MOV ESI, EBP ; C2C: 29DE SUB ESI, EBX ; C2E: 31DB XOR EBX, EBX ; C30: L0: 8B3C1E MOV EDI, [ESI+EBX] ; C33: 897C1C0C MOV [ESP+EBX+12], EDI ; C37: 83C304 ADD EBX, 4 ; C3A: 83E904 SUB ECX, 4 ; C3D: 75F1 JNE L0 ; C3F: 5B POP EBX ; C40: 5E POP ESI ; C41: 5F POP EDI ; C42: L1: 8BCB MOV ECX, EBX ; C44: 8955DC MOV [EBP-36], EDX ; C47: 83F904 CMP ECX, 4 ; C4A: 7410 JEQ L3 ; C4C: 897DD8 MOV [EBP-40], EDI ; C4F: 83F908 CMP ECX, 8 ; C52: 7408 JEQ L3 ; C54: 8975D4 MOV [EBP-44], ESI ; C57: EB03 JMP L3 ; C59: L2: 8D65E0 LEA ESP, [EBP-32] ; C5C: L3: 8B4803 MOV ECX, [EAX+3] ; C5F: 8BD5 MOV EDX, EBP ; C61: 8BC4 MOV EAX, ESP ; C63: 83EC20 SUB ESP, 32 ; C66: 8950FC MOV [EAX-4], EDX ; C69: 8BE8 MOV EBP, EAX ; C6B: C745F8748CB209 MOV DWORD PTR [EBP-8], 162696308 ; C72: EB2C JMP L5 ; C74: 7302 JNB L4 ; C76: 8BE3 MOV ESP, EBX ; C78: L4: 8BDC MOV EBX, ESP ; C7A: 83EC0C SUB ESP, 12 ; C7D: 8B154C89B209 MOV EDX, [#x9B2894C] ; 'UNDEFINED-FUNCTION ; C83: 8B3D5089B209 MOV EDI, [#x9B28950] ; :NAME ; C89: 8B054089B209 MOV EAX, [#x9B28940] ; #<FDEFINITION object for ERROR> ; C8F: B90C000000 MOV ECX, 12 ; C94: 896BFC MOV [EBX-4], EBP ; C97: 8BEB MOV EBP, EBX ; C99: FF5005 CALL DWORD PTR [EAX+5] ; C9C: 7302 JNB L5 ; C9E: 8BE3 MOV ESP, EBX ; CA0: L5: 8BF1 MOV ESI, ECX ; CA2: EBD4 JMP L4 ; CA4: CC0A BREAK 10 ; error trap ; CA6: 02 BYTE #X02 ; CA7: 01 BYTE #X01 ; OBJECT-NOT-FUN-ERROR ; CA8: 8E BYTE #X8E ; EDX ; CA9: CC0A BREAK 10 ; error trap ; CAB: 04 BYTE #X04 ; CAC: 16 BYTE #X16 ; OBJECT-NOT-SYMBOL-ERROR ; CAD: FECE01 BYTE #XFE, #XCE, #X01 ; EDI ; CB0: CC0A BREAK 10 ; error trap ; CB2: 02 BYTE #X02 ; CB3: 01 BYTE #X01 ; OBJECT-NOT-FUN-ERROR ; CB4: 8E BYTE #X8E ; EDX ; CB5: CC0A BREAK 10 ; error trap ; CB7: 04 BYTE #X04 ; CB8: 16 BYTE #X16 ; OBJECT-NOT-SYMBOL-ERROR ; CB9: FECE01 BYTE #XFE, #XCE, #X01 ; EDI ; NIL which is not what one would expect. Investigating further, one finds: CL-USER> (describe 'sb-impl::get-cat-entry) SB-IMPL::GET-CAT-ENTRY is an internal symbol in #<PACKAGE "SB-IMPL">. Macro-function: #<FUNCTION (MACRO-FUNCTION SB-IMPL::GET-CAT-ENTRY) {968E05D}> Its associated name (as in FUNCTION-LAMBDA-EXPRESSION) is (MACRO-FUNCTION SB-IMPL::GET-CAT-ENTRY). The macro's arguments are: (CHAR RT) On Sun, Oct 12, 2008 09:46:01 PM EDT it was compiled from: SYS:SRC;CODE;READER.LISP Created: Sunday, October 12, 2008 09:26:36 PM EDT which is clearly wrong, as a quick look at reader.lisp shows. Anybody have any idea what might have caused this? I haven't tried bisecting yet. -Nathan |