case BITS3(1,0,0): ch = 'a'; irrmE = mkU32(Irrm_NEAREST); break;
// I am unsure about the following, due to the "integral exact"
// description in the manual. What does it mean? (frintx, that is)
+ // PJF exact means that if the rounding can't be done without
+ // precision loss (dst numerically equal to src after the rounding)
+ // then an exception is raised / the IXC bit gets set in the FPSR
case BITS3(1,1,0):
ch = 'x'; irrmE = mkexpr(mk_get_IR_rounding_mode()); break;
case BITS3(1,1,1):
#endif /* DARWIN_VERS >= DARWIN_10_11 */
#if DARWIN_VERS >= DARWIN_10_12
DECL_TEMPLATE(darwin, getentropy); // 500
-// NYI necp_open // 501
+DECL_TEMPLATE(darwin, necp_open); // 501
// NYI necp_client_action // 502
// 503
// 504
void*, buffer, size_t, size);
PRE_MEM_WRITE( "getentropy(buffer)", ARG1, ARG2 );
}
+
POST(getentropy)
{
vg_assert(SUCCESS);
POST_MEM_WRITE( ARG1, ARG2 );
}
+PRE(necp_open)
+{
+ PRINT("necp_open(%#lx)", ARG1);
+ PRE_REG_READ1(int, "necp_open", int, flags);
+}
+
static const HChar *ulop_name(int op)
{
switch (op) {
// _____(__NR_clonefileat), // 462
// _____(__NR_renameatx_np), // 488
MACXY(__NR_getentropy, getentropy), // 500
-// _____(__NR_necp_open), // 501
+ MACX_(__NR_necp_open, necp_open), // 501
// _____(__NR_necp_client_action), // 502
_____(VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(503)), // ???
_____(VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(504)), // ???