(word: u32)
| 883 | |
| 884 | // I-type immediate: bits[31:20], sign-extended to 64 bits. |
| 885 | fn i_imm(word: u32) -> i64 { |
| 886 | sign_ext(field(word, 31, 20), 12) |
| 887 | } |
| 888 | |
| 889 | // U-type immediate: upper 20 bits placed at [31:12], lower 12 bits zero. |
| 890 | // We sign-extend from the 32-bit word so that large addresses work correctly. |