<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/yjit/src/asm/arm64/arg/bitmask_imm.rs, branch ruby_3_3</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>YJIT: Fix `clippy::useless_vec` in a test</title>
<updated>2023-11-10T21:55:56+00:00</updated>
<author>
<name>Alan Wu</name>
<email>XrXr@users.noreply.github.com</email>
</author>
<published>2023-11-10T20:54:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f5fa90fe0bf8f606e80a86f02f939003e7aa6834'/>
<id>f5fa90fe0bf8f606e80a86f02f939003e7aa6834</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Strip trailing spaces [ci skip]</title>
<updated>2023-01-12T00:29:56+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2023-01-12T00:28:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=cc15963aa30ed41d4e5263233134d275de832683'/>
<id>cc15963aa30ed41d4e5263233134d275de832683</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>YJIT: fix ARM64 bitmask encoding for 32 bit registers (#6503)</title>
<updated>2022-10-06T22:41:38+00:00</updated>
<author>
<name>Alan Wu</name>
<email>XrXr@users.noreply.github.com</email>
</author>
<published>2022-10-06T22:41:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=43e87c7e8ab5cbf253c8f11daf9c8ad4bc3d7b3e'/>
<id>43e87c7e8ab5cbf253c8f11daf9c8ad4bc3d7b3e</id>
<content type='text'>
For logical instructions such as AND, there is a constraint that the N
part of the bitmask immediate must be 0. We weren't respecting this
condition previously and were silently emitting undefined instructions.

Check for this condition in the assembler and tweak the backend to
correctly detect whether a number could be encoded as an immediate in a
32 bit logical instruction. Due to the nature of the immediate encoding,
the same numeric value encodes differently depending on the size of
the register the instruction works on.

We currently don't have cases where we use 32 bit immediates but we ran
into this encoding issue during development.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For logical instructions such as AND, there is a constraint that the N
part of the bitmask immediate must be 0. We weren't respecting this
condition previously and were silently emitting undefined instructions.

Check for this condition in the assembler and tweak the backend to
correctly detect whether a number could be encoded as an immediate in a
32 bit logical instruction. Due to the nature of the immediate encoding,
the same numeric value encodes differently depending on the size of
the register the instruction works on.

We currently don't have cases where we use 32 bit immediates but we ran
into this encoding issue during development.</pre>
</div>
</content>
</entry>
<entry>
<title>Optimize bitmask immediates (https://github.com/Shopify/ruby/pull/403)</title>
<updated>2022-08-29T15:47:11+00:00</updated>
<author>
<name>Kevin Newton</name>
<email>kddnewton@gmail.com</email>
</author>
<published>2022-08-12T15:59:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=ff3f1d15d2244dcafe5d7a748922e7c8b6b0f3bd'/>
<id>ff3f1d15d2244dcafe5d7a748922e7c8b6b0f3bd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixes (https://github.com/Shopify/ruby/pull/340)</title>
<updated>2022-08-29T15:47:04+00:00</updated>
<author>
<name>Kevin Newton</name>
<email>kddnewton@gmail.com</email>
</author>
<published>2022-07-22T20:06:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=13e5b56a5d8f36815fb9aa3834d82a54b69e087a'/>
<id>13e5b56a5d8f36815fb9aa3834d82a54b69e087a</id>
<content type='text'>
* Fix conditional jumps to label

* Bitmask immediates cannot be u64::MAX
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Fix conditional jumps to label

* Bitmask immediates cannot be u64::MAX
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixes (https://github.com/Shopify/ruby/pull/336)</title>
<updated>2022-08-29T15:47:03+00:00</updated>
<author>
<name>Kevin Newton</name>
<email>kddnewton@gmail.com</email>
</author>
<published>2022-07-21T20:25:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=70e117d512636465d8dc2094b22dd6535602050a'/>
<id>70e117d512636465d8dc2094b22dd6535602050a</id>
<content type='text'>
* Fix bitmask encoding to u32

* Fix splitting for Op::And to account for bitmask immediate
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Fix bitmask encoding to u32

* Fix splitting for Op::And to account for bitmask immediate
</pre>
</div>
</content>
</entry>
<entry>
<title>Better splitting for Op::Test on AArch64 (https://github.com/Shopify/ruby/pull/335)</title>
<updated>2022-08-29T15:47:03+00:00</updated>
<author>
<name>Kevin Newton</name>
<email>kddnewton@gmail.com</email>
</author>
<published>2022-07-21T18:48:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=76b05ba9e8f72ce98057d3817f6f353c9e62a892'/>
<id>76b05ba9e8f72ce98057d3817f6f353c9e62a892</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>LSL, LSR, B.cond (https://github.com/Shopify/ruby/pull/303)</title>
<updated>2022-08-29T15:46:58+00:00</updated>
<author>
<name>Kevin Newton</name>
<email>kddnewton@gmail.com</email>
</author>
<published>2022-06-22T16:27:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=b272c57f27628ab114206c777d5b274713d31079'/>
<id>b272c57f27628ab114206c777d5b274713d31079</id>
<content type='text'>
* LSL and LSR

* B.cond

* Move A64 files around to make more sense

* offset -&gt; byte_offset for bcond
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* LSL and LSR

* B.cond

* Move A64 files around to make more sense

* offset -&gt; byte_offset for bcond
</pre>
</div>
</content>
</entry>
</feed>
