[Mono-bugs] [Bug 571131] Build fails only on 64bit xen instance with illegal operation
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Fri Jan 15 19:25:04 EST 2010
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 <miguel at novell.com> 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.
More information about the mono-bugs
mailing list