http://bugzilla.novell.com/show_bug.cgi?id=571131
http://bugzilla.novell.com/show_bug.cgi?id=571131#c4 --- Comment #4 from Miguel de Icaza <[email protected]> 2010-01-16 00:25:02 UTC --- converting method System.StackOverflowException:.ctor () creating vars created temp 0 (R16) of type System.StackOverflowException& this: arg R16 <- creating locals locals done method to IR System.StackOverflowException:.ctor () converting (in B2: stack: 0) IL_0000: ldarg.0 converting (in B2: stack: 1) IL_0001: ldstr "The requested operation caused a stack overflow." converting (in B2: stack: 2) IL_0006: call 0x060006df INLINE START 0xa08758 System.StackOverflowException:.ctor () -> Locale:GetText (string) created temp 1 (R19) of type System.String method to IR Locale:GetText (string) created temp 2 (R20) of type System.String converting (in B7: stack: 0) IL_0000: ldarg.0 converting (in B7: stack: 1) IL_0001: ret INLINE END System.StackOverflowException:.ctor () -> Locale:GetText (string) converting (in B2: stack: 2) IL_000b: call 0x060013aa INLINE START 0xa4d030 System.StackOverflowException:.ctor () -> System.SystemException:.ctor (string) method to IR System.SystemException:.ctor (string) created temp 3 (R23) of type System.Object created temp 4 (R24) of type System.String converting (in B12: stack: 0) IL_0000: ldarg.0 converting (in B12: stack: 1) IL_0001: ldarg.1 converting (in B12: stack: 2) IL_0002: call 0x06000619 INLINE ABORTED System.SystemException:.ctor (string) converting (in B2: stack: 0) IL_0010: ret REGION BB0 IL_0000 ID_FFFFFFFF REGION BB3 IL_0000 ID_FFFFFFFF REGION BB2 IL_0010 ID_FFFFFFFF REGION BB1 IL_0000 ID_FFFFFFFF AFTER METHOD-TO-IR 0: [IN: , OUT: BB3(0) ] AFTER METHOD-TO-IR 3: [IN: BB0(0), OUT: BB2(0) ] AFTER METHOD-TO-IR 2: [IN: BB3(0), OUT: BB1(0) ] move R17 <- R16 aot_const R18 <- nop move R20 <- R18 move R21 <- R20 move R19 <- R21 nop move R22 <- R19 move R27 <- R17 move R28 <- R22 voidcall [System.SystemException:.ctor (string)] [%rdi <- R27] [%rsi <- R28] clobbers: c br [B1] AFTER METHOD-TO-IR 1: [IN: BB2(0), OUT: ] CCOPY/2: R17 -> R16 remove_block_if_useless, removed BB3 br removal triggered 2 -> 1 HANDLE-GLOBAL-VREGS BLOCK 0: HANDLE-GLOBAL-VREGS BLOCK 2: move R17 <- R16 aot_const R18 <- move R20 <- R18 move R21 <- R20 move R19 <- R21 move R22 <- R19 move R27 <- R16 move R28 <- R22 voidcall [System.SystemException:.ctor (string)] [%rdi <- R27] [%rsi <- R28] clobbers: c nop HANDLE-GLOBAL-VREGS BLOCK 1: CONVERTED R19(1) TO VREG. CONVERTED R20(2) TO VREG. CONVERTED R23(3) TO VREG. CONVERTED R24(4) TO VREG. Reverse copyprop in BB2 on move R22 <- R19 Reverse copyprop in BB2 on move R22 <- R21 Reverse copyprop in BB2 on move R22 <- R20 Reverse copyprop in BB2 on move R22 <- R18 BEFORE LOWER-VTYPE-OPTS 0: [IN: , OUT: BB2(1) ] AFTER LOWER-VTYPE-OPTS 0: [IN: , OUT: BB2(1) ] BEFORE LOWER-VTYPE-OPTS 2: [IN: BB0(0), OUT: BB1(2) ] aot_const R22 <- move R27 <- R16 move R28 <- R22 voidcall [System.SystemException:.ctor (string)] [%rdi <- R27] [%rsi <- R28] clobbers: c AFTER LOWER-VTYPE-OPTS 2: [IN: BB0(0), OUT: BB1(2) ] aot_const R22 <- move R27 <- R16 move R28 <- R22 voidcall [System.SystemException:.ctor (string)] [%rdi <- R27] [%rsi <- R28] clobbers: c BEFORE LOWER-VTYPE-OPTS 1: [IN: BB2(1), OUT: ] AFTER LOWER-VTYPE-OPTS 1: [IN: BB2(1), OUT: ] COSTLY: System.StackOverflowException:.ctor () R16 G0 C1 %r15 SPILL BLOCK 0: SPILL BLOCK 2: aot_const R22 <- i 22 -1 -1 -1 1 aot_const R22 <- move R27 <- R16 ii 27 16 -1 -1 1 nop move R28 <- R22 ii 28 22 -1 -1 1 move R28 <- R22 voidcall [System.SystemException:.ctor (string)] [%rdi <- R27] [%rsi <- R28] clobbers: c -1 -1 -1 -1 1 voidcall [System.SystemException:.ctor (string)] [%rdi <- R27] [%rsi <- R28] clobbers: c SPILL BLOCK 1: DUMP BLOCK 0: DUMP BLOCK 2: aot_const R22 <- load_membase R27 <- [%rsp + 0x0] liverange_end R16 move R28 <- R22 voidcall [System.SystemException:.ctor (string)] [%rdi <- R27] [%rsi <- R28] clobbers: c DUMP BLOCK 1: LOCAL REGALLOC: BASIC BLOCK 2: 1 aot_const R22 <- 2 load_membase R27 <- [%rsp + 0x0] 3 liverange_end R16 4 move R28 <- R22 5 voidcall [System.SystemException:.ctor (string)] [%rdi <- R27] [%rsi <- R28] clobbers: c liveness: R22 [1 - 1] liveness: R27 [2 - 2] liveness: R28 [4 - 4] processing: 5 voidcall [System.SystemException:.ctor (string)] [%rdi <- R27] [%rsi <- R28] clobbers: c assigned arg reg %rdi to R27 assigned arg reg %rsi to R28 5 voidcall [System.SystemException:.ctor (string)] [%rdi <- R27] [%rsi <- R28] clobbers: c processing: 4 move R28 <- R22 assigned dreg %rsi to dest R28 freeable %rsi (R28) (born in 4) assigned sreg1 %rsi to R22 4 move %rsi <- %rsi processing: 3 liverange_end R16 3 liverange_end R16 processing: 2 load_membase R27 <- [%rsp + 0x0] assigned dreg %rdi to dest R27 freeable %rdi (R27) (born in 2) 2 load_membase %rdi <- [%rsp + 0x0] processing: 1 aot_const R22 <- assigned dreg %rsi to dest R22 freeable %rsi (R22) (born in 1) 1 aot_const %rsi <- Basic block 0 starting at offset 0x8 Basic block 2 starting at offset 0x8 R16 END=0x13 Basic block 1 starting at offset 0x20 Method System.StackOverflowException:.ctor () emitted at 0x414f2e90 to 0x414f2eb5 (code length 37) [mscorlib.dll] /tmp/.3VRY6U: file format elf64-x86-64 Disassembly of section .text: 0000000000000000 <tem_StackOverflowException__ctor>: <BB>:2 0: 48 83 ec 08 sub $0x8,%rsp 4: 48 89 3c 24 mov %rdi,(%rsp) 8: 49 8b 35 00 00 00 00 mov 0x0(%rip),%rsi # f <tem_StackOverflowException__ctor+0xf> f: 48 8b 3c 24 mov (%rsp),%rdi 13: 49 bb 00 00 00 00 00 mov $0x0,%r11 1a: 00 00 00 1d: 41 ff d3 callq *%r11 <BB>:1 20: 48 83 c4 08 add $0x8,%rsp 24: c3 retq Oddly, this does not seem to be what ends up in the file, this seems to be what ends up in the file: 00000000000dbb70 <System_StackOverflowException__ctor>: dbb70: 48 83 ec 08 sub $0x8,%rsp dbb74: 48 89 3c 24 mov %rdi,(%rsp) dbb78: 49 8b 35 d9 93 29 00 mov 0x2993d9(%rip),%rsi # 374f58 <__bss_start+0x2d58> dbb7f: 48 8b 3c 24 mov (%rsp),%rdi dbb83: e8 98 0a 00 00 callq dc620 <System_SystemException__ctor_string> dbb88: 00 00 add %al,(%rax) dbb8a: 00 00 add %al,(%rax) dbb8c: 00 41 ff add %al,-0x1(%rcx) dbb8f: d3 48 83 rorl %cl,-0x7d(%rax) dbb92: c4 08 c3 00 (bad)(bad) When running with GDB: Program received signal SIGILL, Illegal instruction. 0x00007ffff4de5bc1 in System.StackOverflowException:.ctor (this=..., message=0x7ffff7e55f80) from /tmp/mono-2.7/mcs/class/lib/net_2_0/mscorlib.dll.so (gdb) x/20i 0x00007ffff4de5bc1-33 0x7ffff4de5ba0 <System.StackOverflowException:.ctor>: sub $0x18,%rsp 0x7ffff4de5ba4 <System.StackOverflowException:.ctor+4>: mov %rdi,(%rsp) 0x7ffff4de5ba8 <System.StackOverflowException:.ctor+8>: mov %rsi,0x8(%rsp) 0x7ffff4de5bad <System.StackOverflowException:.ctor+13>: mov 0x8(%rsp),%rsi 0x7ffff4de5bb2 <System.StackOverflowException:.ctor+18>: callq 0x7ffff4de6620 <System.SystemException:.ctor> 0x7ffff4de5bb7 <System.StackOverflowException:.ctor+23>: add %al,(%rax) 0x7ffff4de5bb9 <System.StackOverflowException:.ctor+25>: add %al,(%rax) 0x7ffff4de5bbb <System.StackOverflowException:.ctor+27>: add %al,-0x1(%rcx) 0x7ffff4de5bbe <System.StackOverflowException:.ctor+30>: rorl %cl,-0x7d(%rax) 0x7ffff4de5bc1 <System.StackOverflowException:.ctor+33>: (bad)(bad) The dump after the callq instruction looks like this: 0x7ffff4de5bb7 <System.StackOverflowException:.ctor+23>: 0x00 0x00 0x00 0x00 0x00 0x41 0xff 0xd3 0x7ffff4de5bbf <System.StackOverflowException:.ctor+31>: 0x48 0x83 0xc4 0x18 0xc3 0x00 0x00 0x00 -- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
