Skip to content

Commit 68aa9b0

Browse files
committed
Map some math-related ops.
1 parent e295778 commit 68aa9b0

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

src/vm/parrot/QAST/Operations.nqp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1720,6 +1720,8 @@ QAST::Operations.add_core_pirop_mapping('mod_i', 'mod', 'Iii', :inlinable(1));
17201720
QAST::Operations.add_core_pirop_mapping('mod_I', 'nqp_bigint_mod', 'PPPP', :inlinable(1));
17211721
QAST::Operations.add_core_pirop_mapping('expmod_I', 'nqp_bigint_exp_mod', 'PPPPP', :inlinable(1));
17221722
QAST::Operations.add_core_pirop_mapping('isprime_I', 'nqp_bigint_is_prime', 'IPi', :inlinable(1));
1723+
QAST::Operations.add_core_pirop_mapping('srand', 'srand', '0i', :inlinable(1));
1724+
QAST::Operations.add_core_pirop_mapping('rand_n', 'rand', 'Nn', :inlinable(1));
17231725
QAST::Operations.add_core_pirop_mapping('rand_I', 'nqp_bigint_rand', 'PPP', :inlinable(1));
17241726
QAST::Operations.add_core_pirop_mapping('mod_n', 'mod', 'Nnn', :inlinable(1));
17251727
QAST::Operations.add_core_pirop_mapping('pow_n', 'pow', 'Nnn', :inlinable(1));
@@ -1745,6 +1747,24 @@ QAST::Operations.add_core_pirop_mapping('radix_I', 'nqp_bigint_radix', 'PisiiP',
17451747
QAST::Operations.add_core_pirop_mapping('log_n', 'ln', 'NN', :inlinable(1));
17461748
QAST::Operations.add_core_pirop_mapping('exp_n', 'exp', 'Nn', :inlinable(1));
17471749
QAST::Operations.add_core_pirop_mapping('isnanorinf', 'is_inf_or_nan', 'In', :inlinable(1));
1750+
QAST::Operations.add_core_op('inf', :inlinable(1), -> $qastcomp, $op {
1751+
$qastcomp.as_post(QAST::VM.new(
1752+
:pirop('set Ns'),
1753+
QAST::SVal.new( :value('Inf') )
1754+
))
1755+
});
1756+
QAST::Operations.add_core_op('neginf', :inlinable(1), -> $qastcomp, $op {
1757+
$qastcomp.as_post(QAST::VM.new(
1758+
:pirop('set Ns'),
1759+
QAST::SVal.new( :value('-Inf') )
1760+
))
1761+
});
1762+
QAST::Operations.add_core_op('nan', :inlinable(1), -> $qastcomp, $op {
1763+
$qastcomp.as_post(QAST::VM.new(
1764+
:pirop('set Ns'),
1765+
QAST::SVal.new( :value('NaN') )
1766+
))
1767+
});
17481768

17491769
# trig opcodes
17501770
QAST::Operations.add_core_pirop_mapping('sin_n', 'sin', 'NN', :inlinable(1));

0 commit comments

Comments
 (0)