NAME

experimental.ops - Experimental Opcodes

DESCRIPTION

This file contains experimental opcodes.

These opcodes should be considered implicitly deprecated - that is, they may be removed in any release.

If you rely on any of these opcodes, please open a Trac ticket at https://trac.parrot.org/.

When making changes to any ops file, run make bootstrap-ops to regenerate all generated ops files.

More Experimental Ops

trap()
Break into debugger. Implementation notes:
 - x86/gcc ... works with gdb
 - ppc/gcc ... works with gdb, to proceed: gdb> p $pc = $pc + 4
 - TODO
For other architectures, this is a noop.
set_label(invar PMC, inconst LABEL)
Sets the opcode_t* label value for the given PMC. This is basically only useful for PMCs such as Sub, Continuation, ExceptionHandler and derivatives
get_label(out INT, invar PMC)
Gets the opcode_t* label value from the given PMC. This is basically only useful for PMCs such as Sub, Continuation, ExceptionHandler and derivatives
fetch(out PMC, in PMC, in PMC, in PMC)
Fetches a value from $2, keyed by $3 into $1. If the resulting PMC is PMCNULL, uses the type in $4 to create and return a new PMC.
fetch(out PMC, in PMC, in INT, in PMC)
fetch(out PMC, in PMC, in STR, in PMC)
vivify(out PMC, in PMC, in PMC, in PMC)
Fetches a value from $2, keyed by $3 into $1. If the resulting PMC is PMCNULL, uses the type in $4 to create and return a new PMC.
vivify(out PMC, in PMC, in INT, in PMC)
vivify(out PMC, in PMC, in STR, in PMC)
new(out PMC, in STR, in INT)
new(out PMC, in PMC, in INT)
root_new(out PMC, in PMC, in INT)

COPYRIGHT

Copyright (C) 2001-2011, Parrot Foundation.

LICENSE

This program is free software. It is subject to the same license as the Parrot interp itself.