Skip to content

Commit e9683ed

Browse files
committed
support nb_inplace_multiply
1 parent eb1d107 commit e9683ed

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/NativeMemberNames.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ public final class NativeMemberNames {
9999
public static final String NB_POW = "nb_power";
100100
public static final String NB_TRUE_DIVIDE = "nb_true_divide";
101101
public static final String NB_MULTIPLY = "nb_multiply";
102+
public static final String NB_INPLACE_MULTIPLY = "nb_inplace_multiply";
102103
public static final String OB_FVAL = "ob_fval";
103104
public static final String START = "start";
104105
public static final String STOP = "stop";

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/PyNumberMethodsWrapperMR.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,14 @@
4343
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_ADD;
4444
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_INDEX;
4545
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_MULTIPLY;
46+
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_INPLACE_MULTIPLY;
4647
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_POW;
4748
import static com.oracle.graal.python.builtins.objects.cext.NativeMemberNames.NB_TRUE_DIVIDE;
4849
import static com.oracle.graal.python.nodes.SpecialMethodNames.__ADD__;
4950
import static com.oracle.graal.python.nodes.SpecialMethodNames.__INDEX__;
5051
import static com.oracle.graal.python.nodes.SpecialMethodNames.__POW__;
5152
import static com.oracle.graal.python.nodes.SpecialMethodNames.__MUL__;
53+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__IMUL__;
5254
import static com.oracle.graal.python.nodes.SpecialMethodNames.__TRUEDIV__;
5355

5456
import com.oracle.graal.python.builtins.objects.cext.CExtNodes.ToSulongNode;
@@ -112,6 +114,13 @@ public Object access(PyNumberMethodsWrapper object, String key) {
112114
}
113115
result = getMulAttributeNode.execute(delegate);
114116
break;
117+
case NB_INPLACE_MULTIPLY:
118+
if (getMulAttributeNode == null) {
119+
CompilerDirectives.transferToInterpreterAndInvalidate();
120+
getMulAttributeNode = insert(LookupAttributeInMRONode.create(__IMUL__));
121+
}
122+
result = getMulAttributeNode.execute(delegate);
123+
break;
115124
default:
116125
// TODO extend list
117126
throw UnknownIdentifierException.raise(key);

0 commit comments

Comments
 (0)