pike.git / src / code / amd64.c

version» Context lines:

pike.git/src/code/amd64.c:1146:   }      static void amd64_free_svalue(enum amd64_reg src, int guaranteed_ref )   {    LABELS();    if( src == P_REG_RAX )    Pike_fatal("Clobbering RAX for free-svalue\n");    /* load type -> RAX */    mov_sval_type( src, P_REG_RAX );    -  and_reg_imm(P_REG_RAX, ~(MIN_REF_TYPE - 1)); +  and_reg_imm(P_REG_RAX, (~(MIN_REF_TYPE - 1)) & 0x1f);       /* if RAX != MIN_REF_TYPE */    cmp_reg32_imm( P_REG_RAX,MIN_REF_TYPE);    jne( &label_A );       /* Load pointer to refs -> RAX */    mov_mem_reg( src, OFFSETOF(svalue, u.refs), P_REG_RAX);    /* if( !--*RAX ) */    add_mem32_imm( P_REG_RAX, OFFSETOF(pike_string,refs), -1);    if( !guaranteed_ref )