Skip to content

Instantly share code, notes, and snippets.

@brson
Created December 1, 2011 23:00
Show Gist options
  • Save brson/1420541 to your computer and use it in GitHub Desktop.
Save brson/1420541 to your computer and use it in GitHub Desktop.
TlsReg = X86::GS;
BuildMI(checkMBB, DL, TII.get(X86::LEA32r), ScratchReg).addReg(X86::ESP)
.addImm(1).addReg(0).addImm(-StackSize).addReg(0);
if (ST->isTargetLinux()) {
TlsOffset = 0x30;
BuildMI(checkMBB, DL, TII.get(X86::CMP32rm)).addReg(ScratchReg)
.addReg(0).addImm(0).addReg(0).addImm(TlsOffset).addReg(TlsReg);
} else if (ST->isTargetDarwin()) {
TlsOffset = 0x48 + 90*4;
unsigned ScratchReg2 = getScratchRegister(Is64Bit, MF, false);
BuildMI(checkMBB, DL, TII.get(X86::MOV32ri))
.addReg(ScratchReg2).addImm(TlsOffset);
BuildMI(checkMBB, DLL, TII.get(X86::CMP32rm))
.addReg(ScratchReg)
.addReg(ScratchReg2).addImm(1).addReg(0)
.addImm(0)
.addReg(TlsReg);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment