args);
+
+// Convert a list of arguments into a node
+// triple, given the signature of a function
+Node packArguments(std::vector args, std::string sig,
+ int funId, Metadata m);
+
+// Create a node for argument unpacking
+Node unpackArguments(std::vector vars, Metadata m);
+
+#endif
diff --git a/libserpent/opcodes.cpp b/libserpent/opcodes.cpp
new file mode 100644
index 000000000..b24144e46
--- /dev/null
+++ b/libserpent/opcodes.cpp
@@ -0,0 +1,154 @@
+#include
+#include
+#include
+#include