From cd2da0941035c231bc95007a269b6dc3d4b62ca9 Mon Sep 17 00:00:00 2001 From: Takashi Kokubun Date: Tue, 15 Nov 2022 21:59:38 -0800 Subject: [PATCH] MJIT: Refactor BitField dereference a little --- lib/mjit/c_pointer.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/mjit/c_pointer.rb b/lib/mjit/c_pointer.rb index 7dd836f1c9..aadf80e804 100644 --- a/lib/mjit/c_pointer.rb +++ b/lib/mjit/c_pointer.rb @@ -282,12 +282,11 @@ module RubyVM::MJIT # Dereference def * + byte = Fiddle::Pointer.new(@addr)[0, Fiddle::SIZEOF_CHAR].unpack('c').first if @width == 1 - byte = Fiddle::Pointer.new(@addr)[0, Fiddle::SIZEOF_CHAR].unpack('c').first bit = (1 & (byte >> @offset)) bit == 1 elsif @width <= 8 && @offset == 0 - byte = Fiddle::Pointer.new(@addr)[0, Fiddle::SIZEOF_CHAR].unpack('c').first bitmask = @width.times.map { |i| 1 << i }.sum byte & bitmask else