Struct rsim::processor::decode::Imm [−][src]
Fields
data: u32
width: u32
Implementations
impl Imm
[src]
impl Imm
[src]pub fn new(data: u32, width: u32) -> Imm
[src]
Generates an immediate from data + width
pub fn no_extend_u32(&self) -> u32
[src]
Return the immediate data as a u32
use rsim::processor::decode::Imm; let i = Imm::new(0xF0FF, 16); assert_eq!(i.no_extend_u32(), 0xF0FF);
pub fn no_extend_u64(&self) -> u64
[src]
Return the immediate data as a u64
use rsim::processor::decode::Imm; let i = Imm::new(0xF0FF, 16); assert_eq!(i.no_extend_u64(), 0xF0FF);
pub fn sign_extend_u32(&self) -> u32
[src]
Sign-extend the immediate value and return as a u32
use rsim::processor::decode::Imm; let i = Imm::new(0xF0FF, 16); assert_eq!(i.sign_extend_u32(), 0xFFFF_F0FF); assert_eq!(Imm::new(0x00FF_0000, 32).sign_extend_u32(), 0x00FF_0000);
pub fn sign_extend_u64(&self) -> u64
[src]
Sign-extend the immediate value and return as a u64
use rsim::processor::decode::Imm; let i = Imm::new(0xF0FF, 16); assert_eq!(i.sign_extend_u64(), 0xFFFF_FFFF_FFFF_F0FF);
pub fn sign_extend_i32(&self) -> i32
[src]
Sign-extend the immediate value and return as a i32
use rsim::processor::decode::Imm; let i = Imm::new(0xFFFF, 16); assert_eq!(i.sign_extend_i32(), -1);
pub fn sign_extend_i64(&self) -> i64
[src]
Sign-extend the immediate value and return as a i64
use rsim::processor::decode::Imm; let i = Imm::new(0xFFFF, 16); assert_eq!(i.sign_extend_i64(), -1);