"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/vm/moar/ops/perl6_ops.c" between
rakudo-2020.07.tar.gz and rakudo-2020.08.tar.gz

About: Rakudo is a compiler for the Perl 6 programming language.

perl6_ops.c  (rakudo-2020.07):perl6_ops.c  (rakudo-2020.08)
skipping to change at line 175 skipping to change at line 175
} }
static MVMuint8 s_p6stateinit[] = { static MVMuint8 s_p6stateinit[] = {
MVM_operand_int64 | MVM_operand_write_reg MVM_operand_int64 | MVM_operand_write_reg
}; };
static void p6stateinit(MVMThreadContext *tc, MVMuint8 *cur_op) { static void p6stateinit(MVMThreadContext *tc, MVMuint8 *cur_op) {
GET_REG(tc, 0).i64 = tc->cur_frame->flags & MVM_FRAME_FLAG_STATE_INIT ? 1 : 0; GET_REG(tc, 0).i64 = tc->cur_frame->flags & MVM_FRAME_FLAG_STATE_INIT ? 1 : 0;
} }
/* First FIRST, use a flag in the object header. */ /* First FIRST, use a flag in the object header. */
#ifdef MVM_COLLECTABLE_FLAGS1
#define RAKUDO_FIRST_FLAG 128
#else
#define RAKUDO_FIRST_FLAG 16384 #define RAKUDO_FIRST_FLAG 16384
#endif
static MVMuint8 s_p6setfirstflag[] = { static MVMuint8 s_p6setfirstflag[] = {
MVM_operand_obj | MVM_operand_write_reg, MVM_operand_obj | MVM_operand_write_reg,
MVM_operand_obj | MVM_operand_read_reg MVM_operand_obj | MVM_operand_read_reg
}; };
static void p6setfirstflag(MVMThreadContext *tc, MVMuint8 *cur_op) { static void p6setfirstflag(MVMThreadContext *tc, MVMuint8 *cur_op) {
MVMObject *code_obj = GET_REG(tc, 2).o; MVMObject *code_obj = GET_REG(tc, 2).o;
MVMObject *vm_code = MVM_frame_find_invokee(tc, code_obj, NULL); MVMObject *vm_code = MVM_frame_find_invokee(tc, code_obj, NULL);
#ifdef MVM_COLLECTABLE_FLAGS1
vm_code->header.flags1 |= RAKUDO_FIRST_FLAG;
#else
vm_code->header.flags |= RAKUDO_FIRST_FLAG; vm_code->header.flags |= RAKUDO_FIRST_FLAG;
#endif
GET_REG(tc, 0).o = code_obj; GET_REG(tc, 0).o = code_obj;
} }
static MVMuint8 s_p6takefirstflag[] = { static MVMuint8 s_p6takefirstflag[] = {
MVM_operand_int64 | MVM_operand_write_reg MVM_operand_int64 | MVM_operand_write_reg
}; };
static void p6takefirstflag(MVMThreadContext *tc, MVMuint8 *cur_op) { static void p6takefirstflag(MVMThreadContext *tc, MVMuint8 *cur_op) {
MVMObject *vm_code = tc->cur_frame->code_ref; MVMObject *vm_code = tc->cur_frame->code_ref;
#ifdef MVM_COLLECTABLE_FLAGS1
if (vm_code->header.flags1 & RAKUDO_FIRST_FLAG) {
vm_code->header.flags1 ^= RAKUDO_FIRST_FLAG;
#else
if (vm_code->header.flags & RAKUDO_FIRST_FLAG) { if (vm_code->header.flags & RAKUDO_FIRST_FLAG) {
vm_code->header.flags ^= RAKUDO_FIRST_FLAG; vm_code->header.flags ^= RAKUDO_FIRST_FLAG;
#endif
GET_REG(tc, 0).i64 = 1; GET_REG(tc, 0).i64 = 1;
} }
else { else {
GET_REG(tc, 0).i64 = 0; GET_REG(tc, 0).i64 = 0;
} }
} }
#define RAKUDO_FRAME_PRE_FLAG MVM_FRAME_FLAG_HLL_1 #define RAKUDO_FRAME_PRE_FLAG MVM_FRAME_FLAG_HLL_1
static MVMuint8 s_p6setpre[] = { static MVMuint8 s_p6setpre[] = {
 End of changes. 6 change blocks. 
0 lines changed or deleted 13 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)