diff --git a/.pick_status.json b/.pick_status.json index 4558cc62153..e7835bd5f68 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -2234,7 +2234,7 @@ "description": "nak/legalize: Fold immediate sources before instructions", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "85462f74553cd835e9ba4c954330499cee832893", "notes": null diff --git a/src/nouveau/compiler/nak/legalize.rs b/src/nouveau/compiler/nak/legalize.rs index a9e0e37b702..b24e65b0dd7 100644 --- a/src/nouveau/compiler/nak/legalize.rs +++ b/src/nouveau/compiler/nak/legalize.rs @@ -816,6 +816,11 @@ fn legalize_instr( ip: usize, instr: &mut Instr, ) { + let src_types = instr.src_types(); + for (i, src) in instr.srcs_mut().iter_mut().enumerate() { + *src = src.fold_imm(src_types[i]); + } + if b.sm() >= 70 { legalize_sm70_instr(b, bl, ip, instr); } else if b.sm() >= 50 { @@ -824,11 +829,6 @@ fn legalize_instr( panic!("Unknown shader model SM{}", b.sm()); } - let src_types = instr.src_types(); - for (i, src) in instr.srcs_mut().iter_mut().enumerate() { - *src = src.fold_imm(src_types[i]); - } - let mut vec_src_map: HashMap = HashMap::new(); let mut vec_comps = HashSet::new(); for src in instr.srcs_mut() {