Skip to content

Tags: ruby/ruby

Tags

v3_2_0

Toggle commit message
v3.2.0
      

v3_2_0_rc1

Toggle commit message
[DOC] Improve documentation to RB_ALLOCV
      Although the storage of the opaque Ruby object is an array of VALUEs, the intention of RB_ALLOCV is to allocate bytes of memory.

v3_1_3

Toggle commit message
merge revision(s) 3071a72:
      	Add a comment about confusing code [ci skip]

	---
	 configure.ac | 1 +
	 1 file changed, 1 insertion(+)

v3_0_5

Toggle commit message
Merge openssl-2.2.2
      The changes can be found at:

  ruby/openssl@v2.2.1...v2.2.2

v2_7_7

Toggle commit message
Use %printer directive for Bison 3.8 (used release flow)
      This is backport of fa05697

v3_2_0_preview3

Toggle commit message
Merge RubyGems/Bundler master from ee2f8398324af4bc1b95f7565ce2fda981…
      …26e026

v3_2_0_preview2

Toggle commit message
Remove as many unnecessary moves as possible (#6342)
      This commit does a bunch of stuff to try to eliminate as many
unnecessary mov instructions as possible.

First, it introduces the Insn::LoadInto instruction. Previously
when we needed a value to go into a specific register (like in
Insn::CCall when we're putting values into the argument registers
or in Insn::CRet when we're putting a value into the return
register) we would first load the value and then mov it into the
correct register. This resulted in a lot of duplicated work with
short live ranges since they basically immediately we unnecessary.
The new instruction accepts a destination and does not interact
with the register allocator at all, making it much more efficient.

We then use the new instruction when we're loading values into
argument registers for AArch64 or X86_64, and when we're returning
a value from AArch64. Notably we don't do it when we're returning
a value from X86_64 because everything can be accomplished with a
single mov anyway.

A couple of unnecessary movs were also present because when we
called the split_load_opnd function in a lot of split passes we
were loading all registers and instruction outputs. We no longer do
that.

This commit also makes it so that UImm(0) passes through the
Insn::Store split without attempting to be loaded, which allows it
can take advantage of the zero register. So now instead of mov-ing
0 into a register and then calling store, it just stores XZR.

v3_1_2

Toggle commit message
teenyup
      

v3_0_4

Toggle commit message
Fix dtoa buffer overrun
      

v2_7_6

Toggle commit message
Fix dtoa buffer overrun