move cdcmp_flag to CGstate.cmp_flag (#16546)

This commit is contained in:
Walter Bright 2024-05-31 17:45:46 -07:00 committed by GitHub
parent 1b2b3dd763
commit 4fd3fb0e69
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 6 additions and 9 deletions

View file

@ -226,6 +226,7 @@ struct CGstate
con_t regcon; // register contents
BackendPass pass;
int cmp_flag; // pass extra flag from cdcod() to cdcmp()
/**********************************
* Set value in regimmed for reg.
* NOTE: For 16 bit generator, this is always a (targ_short) sign-extended

View file

@ -44,8 +44,6 @@ nothrow:
import dmd.backend.cg : segfl, stackfl;
__gshared int cdcmp_flag;
import dmd.backend.divcoeff : choose_multiplier, udiv_coefficients;
/*******************************
@ -2346,7 +2344,7 @@ void cdcond(ref CGstate cg, ref CodeBuilder cdb,elem *e,regm_t *pretregs)
retregs = BYTEREGS;
}
cdcmp_flag = 1 | rex;
cg.cmp_flag = 1 | rex;
v1 = cast(targ_size_t)e21.Vllong;
v2 = cast(targ_size_t)e22.Vllong;
if (jop == JNC)

View file

@ -29,9 +29,11 @@ import core.stdc.string;
import dmd.backend.cc;
import dmd.backend.cdef;
import dmd.backend.cg : datafl;
import dmd.backend.code;
import dmd.backend.x86.code_x86;
import dmd.backend.codebuilder;
import dmd.backend.divcoeff : choose_multiplier, udiv_coefficients;
import dmd.backend.mem;
import dmd.backend.el;
import dmd.backend.global;
@ -44,10 +46,6 @@ import dmd.backend.x86.xmm;
nothrow:
@safe:
import dmd.backend.cg : datafl;
import dmd.backend.divcoeff : choose_multiplier, udiv_coefficients;
/*******************************
* Return number of times symbol s appears in tree e.
*/
@ -2505,8 +2503,8 @@ void cdcmp(ref CGstate cg, ref CodeBuilder cdb,elem *e,regm_t *pretregs)
//printf("cdcmp(e = %p, pretregs = %s)\n",e,regm_str(*pretregs));
// Collect extra parameter. This is pretty ugly...
int flag = cdcmp_flag;
cdcmp_flag = 0;
int flag = cg.cmp_flag;
cg.cmp_flag = 0;
elem *e1 = e.E1;
elem *e2 = e.E2;