ruby-changes:73147
From: Maxime <ko1@a...>
Date: Tue, 30 Aug 2022 00:55:39 +0900 (JST)
Subject: [ruby-changes:73147] 67de662c44 (master): Add Opnd.rm_num_bits() method
https://git.ruby-lang.org/ruby.git/commit/?id=67de662c44 From 67de662c4419d4d115f40f8d3ed0c295b581dcf0 Mon Sep 17 00:00:00 2001 From: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@s...> Date: Thu, 16 Jun 2022 15:34:17 -0400 Subject: Add Opnd.rm_num_bits() method --- yjit/src/backend/ir.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/yjit/src/backend/ir.rs b/yjit/src/backend/ir.rs index a441303d64..785ea7a9aa 100644 --- a/yjit/src/backend/ir.rs +++ b/yjit/src/backend/ir.rs @@ -175,17 +175,27 @@ impl Opnd https://github.com/ruby/ruby/blob/trunk/yjit/src/backend/ir.rs#L175 } } - /// Constant pointer operand + /// Constructor for constant pointer operand pub fn const_ptr(ptr: *const u8) -> Self { Opnd::UImm(ptr as u64) } + /// Unwrap a register operand pub fn unwrap_reg(&self) -> Reg { match self { Opnd::Reg(reg) => *reg, _ => unreachable!("trying to unwrap {:?} into reg", self) } } + + /// Get the size in bits for register/memory operands + pub fn rm_num_bits(&self) -> u8 { + match self { + Opnd::Reg(reg) => reg.num_bits, + Opnd::Mem(mem) => mem.num_bits, + _ => unreachable!() + } + } } impl From<usize> for Opnd { -- cgit v1.2.1 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/