/************************************************************************/ /* * The Rocq Prover / The Rocq Development Team */ /* v * Copyright INRIA, CNRS and contributors */ /* <O___,, * (see version control and CREDITS file for authors & dates) */ /* \VV/ **************************************************************/ /* // * This file is distributed under the terms of the */ /* * GNU Lesser General Public License Version 2.1 */ /* * (see LICENSE file for the text of the license) */ /************************************************************************/
# pragma once
# include <caml/callback.h> # include <caml/stack.h>
# define DECLARE_TEROP(name) \
value uint63_##name##_ml(value x, value y, value z) { \ static value const *cb = 0; \
CAMLparam3(x, y, z); \ if (!cb) cb = caml_named_value("uint63 "#name); \
CAMLreturn(caml_callback3(*cb, x, y, z)); \
}
# define CALL_TEROP(name, x, y, z) do{ \
value uint63_return_value__; \
value uint63_arg_x__ = (x); \
value uint63_arg_y__ = (y); \
value uint63_arg_z__ = (z); \
Setup_for_gc; \
uint63_return_value__ = uint63_##name##_ml(uint63_arg_x__, uint63_arg_y__, uint63_arg_z__); \
Restore_after_gc; \
accu = uint63_return_value__; \
}while(0)
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.