Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test Regression/CodeGen/X86/2004-02-08-UnwindSupport.llx fails #1010

Closed
llvmbot opened this issue Oct 19, 2005 · 3 comments
Closed

Test Regression/CodeGen/X86/2004-02-08-UnwindSupport.llx fails #1010

llvmbot opened this issue Oct 19, 2005 · 3 comments
Labels
backend:Sparc bugzilla Issues migrated from bugzilla compile-fail Use [accepts-invalid] and [rejects-valid] instead

Comments

@llvmbot
Copy link
Member

llvmbot commented Oct 19, 2005

Bugzilla Link 638
Resolution FIXED
Resolved on Feb 22, 2010 12:41
Version trunk
OS Solaris
Reporter LLVM Bugzilla Contributor

Extended Description

This test (which is really a generic code generator test) fails on SparcV9 with
the following output:

Assertion failed: 0 && "*** SWITCH instruction is not implemented yet.", file
/home/vadve/criswell/rel16/llvm/lib/Target/SparcV9/SparcV9BurgISel.cpp, line 3179
!****** Outputing Function: test ******

.section ".rodata",#alloc

.section ".text"
.align 4
.global test
.type test, 2
test:
.L_test_ltmp_0_1:
save %o6, -192, %o6
ba .L_test_l1_dounwind
nop

.L_test_l1_dounwind:
sethi %lm(llvm_2E_sjljeh_2E_jblist), %o0
sethi %hh(llvm_2E_sjljeh_2E_jblist), %o1
or %o1, %hm(llvm_2E_sjljeh_2E_jblist), %o1
sllx %o1, 32, %o1
or %o0, %o1, %o0
or %o0, %lo(llvm_2E_sjljeh_2E_jblist), %o0
ldx [%o0+0], %o0
brnz %o0, .L_test_l1_unwind
nop
ba .L_test_l1_unwinderror
nop

.L_test_l1_unwind:
sra %g0, 0, %o2
or %g0, 1, %o1
mulx %o2, 1608, %o2
add %o0, %o2, %o0
sra %g0, 0, %i0
sra %o1, 0, %o1
call longjmp
nop
jmpl %i7+8, %g0
restore %g0, 0, %g0

.L_test_l1_unwinderror:
sethi %lm(l2_abortmsg), %o1
sethi %hh(l2_abortmsg), %o3
or %g0, 2, %o0
sra %o0, 0, %o0
or %g0, 41, %o2
or %o3, %hm(l2_abortmsg), %o3
sllx %o3, 32, %o3
sra %o2, 0, %o2
or %o1, %o3, %o1
or %o1, %lo(l2_abortmsg), %o1
sra %g0, 0, %i0
call write
nop
call abort
nop
jmpl %i7+8, %g0
restore %g0, 0, %g0

.EndOf_test:
.size test, .EndOf_test-test

@lattner
Copy link
Collaborator

lattner commented Oct 19, 2005

Ah interesting. I see the bug.

Try moving createLowerSwitchPass after createLowerInvokePass in the two places it occurs in
SparcV9TargetMachine.cpp. This should fix the problem.

-Chris

@llvmbot
Copy link
Member Author

llvmbot commented Oct 19, 2005

Kudos to sabre for suggesting the fix.

This is fixed by
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20051017/028806.html

@lattner
Copy link
Collaborator

lattner commented Oct 19, 2005

nice, thanks John!

-Chris

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend:Sparc bugzilla Issues migrated from bugzilla compile-fail Use [accepts-invalid] and [rejects-valid] instead
Projects
None yet
Development

No branches or pull requests

2 participants