MCPcopy Create free account
hub / github.com/LPC4/Full-Stack / parse_store_mem

Function parse_store_mem

crates/asm-to-binary/src/assembler/parser.rs:463–468  ·  view source on GitHub ↗

Parse `"rs2, imm(rs1)"` -> (`rs2_reg`, `rs1_reg`, `imm_i32`). Used by stores.

(operands: &str)

Source from the content-addressed store, hash-verified

461 // Uses t1 (x6) as a temporary for the high half.
462 const T1: u8 = 6;
463 let low32 = (imm & 0xFFFF_FFFF) as i32;
464 let high32 = ((imm >> 32) & 0xFFFF_FFFF) as i32;
465
466 load32(T1, high32, &mut out);
467 out.push(AsmToken::Real(RealInstruction::Slli(Slli::new(T1, T1, 32))));
468 load32(rd, low32, &mut out);
469 // Zero-extend low32 into rd (clear sign-extension from load32).
470 out.push(AsmToken::Real(RealInstruction::Slli(Slli::new(rd, rd, 32))));
471 out.push(AsmToken::Real(RealInstruction::Srli(Srli::new(rd, rd, 32))));

Callers 1

parse_instruction_lineFunction · 0.85

Calls 2

parse_int_regFunction · 0.85
parse_mem_refFunction · 0.85

Tested by

no test coverage detected