2cd9f50073ffacdf703e6d9bccac65b6d1151029
1 #ifndef INTERNAL_BOP_H /*-*-C-*-vi:se ft=c:*/
5 #include "ruby/internal/dllexport.h"
7 enum ruby_basic_operators
{
43 MJIT_SYMBOL_EXPORT_BEGIN
44 RUBY_EXTERN
short ruby_vm_redefined_flag
[BOP_LAST_
];
45 MJIT_SYMBOL_EXPORT_END
48 #define INTEGER_REDEFINED_OP_FLAG (1 << 0)
49 #define FLOAT_REDEFINED_OP_FLAG (1 << 1)
50 #define STRING_REDEFINED_OP_FLAG (1 << 2)
51 #define ARRAY_REDEFINED_OP_FLAG (1 << 3)
52 #define HASH_REDEFINED_OP_FLAG (1 << 4)
53 /* #define BIGNUM_REDEFINED_OP_FLAG (1 << 5) */
54 #define SYMBOL_REDEFINED_OP_FLAG (1 << 6)
55 #define TIME_REDEFINED_OP_FLAG (1 << 7)
56 #define REGEXP_REDEFINED_OP_FLAG (1 << 8)
57 #define NIL_REDEFINED_OP_FLAG (1 << 9)
58 #define TRUE_REDEFINED_OP_FLAG (1 << 10)
59 #define FALSE_REDEFINED_OP_FLAG (1 << 11)
60 #define PROC_REDEFINED_OP_FLAG (1 << 12)
62 #define BASIC_OP_UNREDEFINED_P(op, klass) (LIKELY((ruby_vm_redefined_flag[(op)]&(klass)) == 0))