@@ -181,6 +181,7 @@ fn flat_to_px86(instr: Flat) -> Vec<X86> {
181
181
Flat :: If ( cnd, thn, els) => {
182
182
let ( eq_left, eq_right) = match * cnd {
183
183
x => match x {
184
+ // https://github.com/rust-lang/rust/issues/16223
184
185
Flat :: EqP ( left, right) => ( left, right) ,
185
186
_ => panic ! ( "if cond needs to be Flat::EqP" ) ,
186
187
} ,
@@ -293,6 +294,7 @@ fn get_live_after_sets(mut instrs: Vec<X86>, lives: HashSet<String>)
293
294
get_live_after_sets ( elss. clone ( ) , live_of_next. clone ( ) ) ;
294
295
let cond_vars = match * cnd. clone ( ) {
295
296
x => match x {
297
+ // https://github.com/rust-lang/rust/issues/16223
296
298
X86 :: EqP ( left, right) => {
297
299
match ( left, right) {
298
300
( X86Arg :: Var ( l) , X86Arg :: Var ( r) ) => vec ! [ l, r] ,
@@ -451,6 +453,7 @@ fn assign_homes_to_instrs(instrs: Vec<X86>, locs: HashMap<String, X86Arg>) -> Ve
451
453
X86 :: IfWithLives ( cnd, thn, thn_lives, els, els_lives) => {
452
454
let new_cnd = match * cnd {
453
455
x => match x {
456
+ // https://github.com/rust-lang/rust/issues/16223
454
457
X86 :: EqP ( left, right) => {
455
458
let new_left = match left {
456
459
X86Arg :: Var ( v) => locs. get ( & v) . unwrap ( ) . clone ( ) ,
@@ -516,6 +519,7 @@ fn lower_if (instr: X86) -> Vec<X86> {
516
519
X86 :: If ( cnd, thn, els) => {
517
520
let ( eqp_left, eqp_right) = match * cnd {
518
521
x => match x {
522
+ // https://github.com/rust-lang/rust/issues/16223
519
523
X86 :: EqP ( left, right) => ( left, right) ,
520
524
_ => panic ! ( "if cond is always EqP" ) ,
521
525
} ,
0 commit comments