Skip to content

Commit a5ad48a

Browse files
committed
[Truffle] Add a few TruffleBoundary for pidigits.
1 parent a770f1a commit a5ad48a

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

truffle/src/main/java/org/jruby/truffle/nodes/core/BignumNodes.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,13 @@
1010
package org.jruby.truffle.nodes.core;
1111

1212
import com.oracle.truffle.api.CompilerDirectives;
13+
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
1314
import com.oracle.truffle.api.dsl.Specialization;
1415
import com.oracle.truffle.api.frame.VirtualFrame;
1516
import com.oracle.truffle.api.source.SourceSection;
1617
import com.oracle.truffle.api.utilities.BranchProfile;
17-
1818
import com.oracle.truffle.api.utilities.ConditionProfile;
19+
1920
import org.jruby.truffle.nodes.dispatch.CallDispatchHeadNode;
2021
import org.jruby.truffle.nodes.dispatch.DispatchHeadNodeFactory;
2122
import org.jruby.truffle.runtime.RubyContext;
@@ -145,11 +146,13 @@ public MulNode(MulNode prev) {
145146
super(prev);
146147
}
147148

149+
@TruffleBoundary
148150
@Specialization
149151
public Object mul(RubyBignum a, int b) {
150152
return fixnumOrBignum(a.bigIntegerValue().multiply(BigInteger.valueOf(b)));
151153
}
152154

155+
@TruffleBoundary
153156
@Specialization
154157
public Object mul(RubyBignum a, long b) {
155158
return fixnumOrBignum(a.bigIntegerValue().multiply(BigInteger.valueOf(b)));
@@ -160,6 +163,7 @@ public double mul(RubyBignum a, double b) {
160163
return a.bigIntegerValue().doubleValue() * b;
161164
}
162165

166+
@TruffleBoundary
163167
@Specialization
164168
public Object mul(RubyBignum a, RubyBignum b) {
165169
return fixnumOrBignum(a.bigIntegerValue().multiply(b.bigIntegerValue()));

truffle/src/main/java/org/jruby/truffle/nodes/core/FixnumNodes.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
import com.oracle.truffle.api.CompilerDirectives;
1313
import com.oracle.truffle.api.ExactMath;
14+
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
1415
import com.oracle.truffle.api.dsl.Specialization;
1516
import com.oracle.truffle.api.frame.VirtualFrame;
1617
import com.oracle.truffle.api.nodes.UnexpectedResultException;
@@ -296,6 +297,7 @@ public Object mul(int a, long b) {
296297
return ExactMath.multiplyExact(a, b);
297298
}
298299

300+
@TruffleBoundary
299301
@Specialization
300302
public Object mulWithOverflow(int a, long b) {
301303
return fixnumOrBignum(BigInteger.valueOf(a).multiply(BigInteger.valueOf(b)));
@@ -306,6 +308,7 @@ public double mul(int a, double b) {
306308
return a * b;
307309
}
308310

311+
@TruffleBoundary
309312
@Specialization
310313
public Object mul(int a, RubyBignum b) {
311314
return fixnumOrBignum(BigInteger.valueOf(a).multiply(b.bigIntegerValue()));
@@ -316,6 +319,7 @@ public long mul(long a, int b) {
316319
return ExactMath.multiplyExact(a, b);
317320
}
318321

322+
@TruffleBoundary
319323
@Specialization
320324
public Object mulWithOverflow(long a, int b) {
321325
return fixnumOrBignum(BigInteger.valueOf(a).multiply(BigInteger.valueOf(b)));
@@ -326,6 +330,7 @@ public long mul(long a, long b) {
326330
return ExactMath.multiplyExact(a, b);
327331
}
328332

333+
@TruffleBoundary
329334
@Specialization
330335
public Object mulWithOverflow(long a, long b) {
331336
return fixnumOrBignum(BigInteger.valueOf(a).multiply(BigInteger.valueOf(b)));
@@ -336,6 +341,7 @@ public double mul(long a, double b) {
336341
return a * b;
337342
}
338343

344+
@TruffleBoundary
339345
@Specialization
340346
public Object mul(long a, RubyBignum b) {
341347
return fixnumOrBignum(BigInteger.valueOf(a).multiply(b.bigIntegerValue()));

0 commit comments

Comments
 (0)