arguments swapped for loadFromEA() (#21040)

This commit is contained in:
Walter Bright 2025-03-20 01:07:57 -07:00 committed by GitHub
parent 996de2ad3a
commit 49a7c10bdf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 7 additions and 5 deletions

View file

@ -58,6 +58,7 @@ nothrow:
void loadFromEA(ref code cs, reg_t reg, uint szw, uint szr)
{
//debug printf("loadFromEA() reg: %d, szw: %d, szr: %d\n", reg, szw, szr);
assert(szr <= szw);
cs.Iop = INSTR.nop;
assert(reg != NOREG);
if (mask(reg) & INSTR.FLOATREGS) // if floating point store

View file

@ -1297,7 +1297,7 @@ void assignaddrc(code* c)
uint ins = c.Iop;
if (0 && c.IFL1 != FL.unde)
{
printf("FL: %s ", fl_str(c.IFL1));
printf("FL: %-8s ", fl_str(c.IFL1));
disassemble(ins);
}
switch (c.IFL1)
@ -1380,8 +1380,8 @@ void assignaddrc(code* c)
}
static if (0)
{
symbol_print(*s);
printf("c: %p, x%08x\n", c, c.Iop);
//symbol_print(*s);
//printf("c: %p, x%08x\n", c, c.Iop);
printf("s = %s, Soffset = %d, Para.size = %d, BPoff = %d, EBPtoESP = %d, Voffset = %d\n",
s.Sident.ptr, cast(int)s.Soffset, cast(int)cgstate.Para.size, cast(int)cgstate.BPoff,
cast(int)cgstate.EBPtoESP, cast(int)c.IEV1.Voffset);
@ -1440,6 +1440,7 @@ void assignaddrc(code* c)
{
uint imm12 = field(ins,21,10); // unsigned 12 bits
offset += imm12 << shift; // add in imm
//printf("shift: %d offset: %llx imm12: %x\n", shift, offset, imm12);
assert((offset & ((1 << shift) - 1)) == 0); // no misaligned access
imm12 = cast(uint)(offset >> shift);
assert(imm12 < 0x1000);

View file

@ -617,7 +617,7 @@ void cdmulass(ref CGstate cg, ref CodeBuilder cdb,elem* e,ref regm_t pretregs)
{
retregs = cg.allregs & ~earegm & ~regm2;
reg = allocreg(cdb,retregs,tyml);
loadFromEA(cs,reg,sz,sz == 8 ? 8 : 4);
loadFromEA(cs,reg,sz == 8 ? 8 : 4, sz);
cdb.gen(&cs);
}
getregs(cdb,retregs); // destroy these regs
@ -768,7 +768,7 @@ void cdshass(ref CGstate cg, ref CodeBuilder cdb,elem* e,ref regm_t pretregs)
{
retregs = cg.allregs & ~earegm & ~Rshiftcntm;
Rshiftee = allocreg(cdb,retregs,tyml);
loadFromEA(cs,Rshiftee,sz,sz == 8 ? 8 : 4);
loadFromEA(cs,Rshiftee,sz == 8 ? 8 : 4,sz);
cdb.gen(&cs);
}