forked from OSchip/llvm-project
[SPARC] Repair floating-point condition encodings in assembly parser.
The encodings for floating point conditions A(lways) and N(ever) were incorrectly specified for the assembly parser, per Sparc manual v8 page 121. This change corrects that mistake. Also, strangely, all of the branch instructions already had MC test cases, except for the broken ones. Added the tests. Patch by Chris Dewhurst Differential Revision: http://reviews.llvm.org/D17074 llvm-svn: 260390
This commit is contained in:
parent
f6c9ae9c6d
commit
26fc9bf682
|
@ -267,9 +267,9 @@ defm : int_cond_alias<"neg", 0b0110>;
|
|||
defm : int_cond_alias<"vc", 0b1111>;
|
||||
defm : int_cond_alias<"vs", 0b0111>;
|
||||
|
||||
defm : fp_cond_alias<"a", 0b0000>;
|
||||
defm : fp_cond_alias<"", 0b0000>; // same as a; gnu asm, not in manual
|
||||
defm : fp_cond_alias<"n", 0b1000>;
|
||||
defm : fp_cond_alias<"a", 0b1000>;
|
||||
defm : fp_cond_alias<"", 0b1000>; // same as a; gnu asm, not in manual
|
||||
defm : fp_cond_alias<"n", 0b0000>;
|
||||
defm : fp_cond_alias<"u", 0b0111>;
|
||||
defm : fp_cond_alias<"g", 0b0110>;
|
||||
defm : fp_cond_alias<"ug", 0b0101>;
|
||||
|
|
|
@ -124,6 +124,18 @@
|
|||
! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
|
||||
bvs .BB0
|
||||
|
||||
! CHECK: fba .BB0 ! encoding: [0x11,0b10AAAAAA,A,A]
|
||||
! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
|
||||
fba .BB0
|
||||
|
||||
! CHECK: fba .BB0 ! encoding: [0x11,0b10AAAAAA,A,A]
|
||||
! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
|
||||
fb .BB0
|
||||
|
||||
! CHECK: fbn .BB0 ! encoding: [0x01,0b10AAAAAA,A,A]
|
||||
! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
|
||||
fbn .BB0
|
||||
|
||||
! CHECK: fbu .BB0 ! encoding: [0x0f,0b10AAAAAA,A,A]
|
||||
! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
|
||||
fbu .BB0
|
||||
|
@ -131,6 +143,7 @@
|
|||
! CHECK: fbg .BB0 ! encoding: [0x0d,0b10AAAAAA,A,A]
|
||||
! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
|
||||
fbg .BB0
|
||||
|
||||
! CHECK: fbug .BB0 ! encoding: [0x0b,0b10AAAAAA,A,A]
|
||||
! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br22
|
||||
fbug .BB0
|
||||
|
|
|
@ -770,6 +770,18 @@
|
|||
! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19
|
||||
bpos,a,pt %xcc, .BB0
|
||||
|
||||
! CHECK: fba %fcc0, .BB0 ! encoding: [0x11,0b01001AAA,A,A]
|
||||
! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19
|
||||
fba %fcc0, .BB0
|
||||
|
||||
! CHECK: fba %fcc0, .BB0 ! encoding: [0x11,0b01001AAA,A,A]
|
||||
! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19
|
||||
fb %fcc0, .BB0
|
||||
|
||||
! CHECK: fbn %fcc0, .BB0 ! encoding: [0x01,0b01001AAA,A,A]
|
||||
! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19
|
||||
fbn %fcc0, .BB0
|
||||
|
||||
! CHECK: fbu %fcc0, .BB0 ! encoding: [0x0f,0b01001AAA,A,A]
|
||||
! CHECK-NEXT: ! fixup A - offset: 0, value: .BB0, kind: fixup_sparc_br19
|
||||
fbu %fcc0, .BB0
|
||||
|
|
Loading…
Reference in New Issue