Skip to content

Commit d36485e

Browse files
author
Carl Masak
committed
[QAST::Operations] some more opcodes
Do let me know if any of these aren't meant to be kept around any more. I'll remove them right away. :)
1 parent 0ce175f commit d36485e

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

src/QAST/Operations.nqp

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,3 +377,40 @@ QAST::Operations.add_core_pirop_mapping('unshift_s', 'unshift', '0Ps');
377377
QAST::Operations.add_core_pirop_mapping('unshift_i', 'unshift', '0Pi');
378378
QAST::Operations.add_core_pirop_mapping('unshift_n', 'unshift', '0Pn');
379379
QAST::Operations.add_core_pirop_mapping('splice', 'splice', '0PPii');
380+
381+
# repr-level aggregate operations
382+
QAST::Operations.add_core_pirop_mapping('r_atpos', 'repr_at_pos_obj', 'PPi');
383+
QAST::Operations.add_core_pirop_mapping('r_atpos_i', 'repr_at_pos_int', 'IPi');
384+
QAST::Operations.add_core_pirop_mapping('r_atpos_n', 'repr_at_pos_num', 'NPi');
385+
QAST::Operations.add_core_pirop_mapping('r_bindpos', 'repr_bind_pos_obj', '2PiP');
386+
QAST::Operations.add_core_pirop_mapping('r_bindpos_i', 'repr_bind_pos_int', '2Pii');
387+
QAST::Operations.add_core_pirop_mapping('r_bindpos_n', 'repr_bind_pos_num', '2Pin');
388+
389+
# object opcodes
390+
QAST::Operations.add_core_pirop_mapping('bindattr', 'setattribute', '3PPsP');
391+
QAST::Operations.add_core_pirop_mapping('bindattr_i', 'repr_bind_attr_int', '3PPsi');
392+
QAST::Operations.add_core_pirop_mapping('bindattr_n', 'repr_bind_attr_num', '3PPsn');
393+
QAST::Operations.add_core_pirop_mapping('bindattr_s', 'repr_bind_attr_str', '3PPss');
394+
QAST::Operations.add_core_pirop_mapping('getattr', 'getattribute', 'PPPs');
395+
QAST::Operations.add_core_pirop_mapping('getattr_i', 'repr_get_attr_int', 'IPPs');
396+
QAST::Operations.add_core_pirop_mapping('getattr_n', 'repr_get_attr_num', 'NPPs');
397+
QAST::Operations.add_core_pirop_mapping('getattr_s', 'repr_get_attr_str', 'SPPs');
398+
QAST::Operations.add_core_pirop_mapping('create', 'repr_instance_of', 'PP');
399+
QAST::Operations.add_core_pirop_mapping('clone', 'clone', 'PP');
400+
QAST::Operations.add_core_pirop_mapping('isconcrete', 'repr_defined', 'IP');
401+
QAST::Operations.add_core_pirop_mapping('iscont', 'is_container', 'IP');
402+
QAST::Operations.add_core_pirop_mapping('isnull', 'isnull', 'IP');
403+
QAST::Operations.add_core_pirop_mapping('isnull_s', 'isnull', 'IS');
404+
QAST::Operations.add_core_pirop_mapping('istrue', 'istrue', 'IP');
405+
QAST::Operations.add_core_pirop_mapping('istype', 'type_check', 'IPP');
406+
QAST::Operations.add_core_pirop_mapping('null', 'null', 'P');
407+
QAST::Operations.add_core_pirop_mapping('unbox_i', 'repr_unbox_int', 'IP');
408+
QAST::Operations.add_core_pirop_mapping('unbox_n', 'repr_unbox_num', 'NP');
409+
QAST::Operations.add_core_pirop_mapping('unbox_s', 'repr_unbox_str', 'SP');
410+
QAST::Operations.add_core_pirop_mapping('box_i', 'repr_box_int', 'PiP');
411+
QAST::Operations.add_core_pirop_mapping('box_n', 'repr_box_num', 'PnP');
412+
QAST::Operations.add_core_pirop_mapping('box_s', 'repr_box_str', 'PsP');
413+
QAST::Operations.add_core_pirop_mapping('where', 'get_id', 'IP');
414+
415+
# serialization context related opcodes
416+
QAST::Operations.add_core_pirop_mapping('sha1', 'nqp_sha1', 'Ss');

0 commit comments

Comments
 (0)