diff options
| author | Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com> | 2022-06-16 15:25:27 -0400 |
|---|---|---|
| committer | Takashi Kokubun <takashikkbn@gmail.com> | 2022-08-29 08:46:57 -0700 |
| commit | 084d4bb19228eed3e89663a2d24ab3accaa1a4ee (patch) | |
| tree | dd311304d0422ce6510bbefc857cdb2c94faa0ff | |
| parent | 4932a6ef755ae4cc473666c8757f7c51ac8c2902 (diff) | |
Implement X86Reg::sub_reg() method
| -rw-r--r-- | yjit/src/asm/x86_64/mod.rs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/yjit/src/asm/x86_64/mod.rs b/yjit/src/asm/x86_64/mod.rs index 399c2e8c7e..ca2a2f6e1f 100644 --- a/yjit/src/asm/x86_64/mod.rs +++ b/yjit/src/asm/x86_64/mod.rs @@ -88,6 +88,25 @@ pub enum X86Opnd IPRel(i32) } +impl X86Reg { + fn sub_reg(&self, num_bits: u8) -> Self { + assert!( + num_bits == 8 || + num_bits == 16 || + num_bits == 32 || + num_bits == 64 + ); + + assert!(num_bits <= self.num_bits); + + Self { + num_bits, + reg_type: self.reg_type, + reg_no: self.reg_no + } + } +} + impl X86Opnd { fn rex_needed(&self) -> bool { match self { |
