Skip to content

Commit 5dcc807

Browse files
authored
x86: Add ESBASE, DSBASE to Arch as registers for 32b. (#545)
1 parent 14a58af commit 5dcc807

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

lib/Arch/X86/Arch.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1363,17 +1363,19 @@ void X86Arch::PopulateBasicBlockFunction(llvm::Module *module,
13631363
REG(DS, seg.ds.flat, u16);
13641364
REG(CS, seg.cs.flat, u16);
13651365

1366-
ir.CreateStore(zero_addr_val, ir.CreateAlloca(addr, nullptr, "ESBASE"));
1367-
ir.CreateStore(zero_addr_val, ir.CreateAlloca(addr, nullptr, "DSBASE"));
13681366
ir.CreateStore(zero_addr_val, ir.CreateAlloca(addr, nullptr, "CSBASE"));
13691367

13701368
if (64 == address_size) {
13711369
ir.CreateStore(zero_addr_val, ir.CreateAlloca(addr, nullptr, "SSBASE"));
1370+
ir.CreateStore(zero_addr_val, ir.CreateAlloca(addr, nullptr, "ESBASE"));
1371+
ir.CreateStore(zero_addr_val, ir.CreateAlloca(addr, nullptr, "DSBASE"));
13721372
REG(GSBASE, addr.gs_base.qword, addr);
13731373
REG(FSBASE, addr.fs_base.qword, addr);
13741374

13751375
} else {
13761376
REG(SSBASE, addr.ss_base.dword, addr);
1377+
REG(ESBASE, addr.es_base.dword, addr);
1378+
REG(DSBASE, addr.ds_base.dword, addr);
13771379
REG(GSBASE, addr.gs_base.dword, addr);
13781380
REG(FSBASE, addr.fs_base.dword, addr);
13791381
}

0 commit comments

Comments
 (0)