Adding a bunch of nops around trace calls.
5 before, 2 after (so it's easy to see what goes with what).
This commit is contained in:
parent
1ad0bb7843
commit
5e66f7b04b
|
@ -673,6 +673,10 @@ void X64Emitter::TraceKernelCall() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (int n = 0; n < 5; n++) {
|
||||||
|
c.nop();
|
||||||
|
}
|
||||||
|
|
||||||
if (FLAGS_annotate_disassembly) {
|
if (FLAGS_annotate_disassembly) {
|
||||||
c.comment("XeTraceKernelCall (+spill)");
|
c.comment("XeTraceKernelCall (+spill)");
|
||||||
}
|
}
|
||||||
|
@ -691,6 +695,10 @@ void X64Emitter::TraceKernelCall() {
|
||||||
call->setArgument(1, arg1);
|
call->setArgument(1, arg1);
|
||||||
call->setArgument(2, c.getGpArg(1));
|
call->setArgument(2, c.getGpArg(1));
|
||||||
call->setArgument(3, arg3);
|
call->setArgument(3, arg3);
|
||||||
|
|
||||||
|
for (int n = 0; n < 2; n++) {
|
||||||
|
c.nop();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void X64Emitter::TraceUserCall() {
|
void X64Emitter::TraceUserCall() {
|
||||||
|
@ -700,6 +708,10 @@ void X64Emitter::TraceUserCall() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (int n = 0; n < 5; n++) {
|
||||||
|
c.nop();
|
||||||
|
}
|
||||||
|
|
||||||
if (FLAGS_annotate_disassembly) {
|
if (FLAGS_annotate_disassembly) {
|
||||||
c.comment("XeTraceUserCall (+spill)");
|
c.comment("XeTraceUserCall (+spill)");
|
||||||
}
|
}
|
||||||
|
@ -718,6 +730,10 @@ void X64Emitter::TraceUserCall() {
|
||||||
call->setArgument(1, arg1);
|
call->setArgument(1, arg1);
|
||||||
call->setArgument(2, c.getGpArg(1));
|
call->setArgument(2, c.getGpArg(1));
|
||||||
call->setArgument(3, arg3);
|
call->setArgument(3, arg3);
|
||||||
|
|
||||||
|
for (int n = 0; n < 2; n++) {
|
||||||
|
c.nop();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void X64Emitter::TraceInstruction(InstrData& i) {
|
void X64Emitter::TraceInstruction(InstrData& i) {
|
||||||
|
@ -727,6 +743,10 @@ void X64Emitter::TraceInstruction(InstrData& i) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (int n = 0; n < 5; n++) {
|
||||||
|
c.nop();
|
||||||
|
}
|
||||||
|
|
||||||
if (FLAGS_annotate_disassembly) {
|
if (FLAGS_annotate_disassembly) {
|
||||||
c.comment("XeTraceInstruction (+spill)");
|
c.comment("XeTraceInstruction (+spill)");
|
||||||
}
|
}
|
||||||
|
@ -744,6 +764,10 @@ void X64Emitter::TraceInstruction(InstrData& i) {
|
||||||
call->setArgument(0, c.getGpArg(0));
|
call->setArgument(0, c.getGpArg(0));
|
||||||
call->setArgument(1, arg1);
|
call->setArgument(1, arg1);
|
||||||
call->setArgument(2, arg2);
|
call->setArgument(2, arg2);
|
||||||
|
|
||||||
|
for (int n = 0; n < 2; n++) {
|
||||||
|
c.nop();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void X64Emitter::TraceInvalidInstruction(InstrData& i) {
|
void X64Emitter::TraceInvalidInstruction(InstrData& i) {
|
||||||
|
@ -753,6 +777,10 @@ void X64Emitter::TraceInvalidInstruction(InstrData& i) {
|
||||||
c.comment("XeInvalidInstruction (+spill)");
|
c.comment("XeInvalidInstruction (+spill)");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (int n = 0; n < 5; n++) {
|
||||||
|
c.nop();
|
||||||
|
}
|
||||||
|
|
||||||
SpillRegisters();
|
SpillRegisters();
|
||||||
|
|
||||||
// TODO(benvanik): remove once fixed: https://code.google.com/p/asmjit/issues/detail?id=86
|
// TODO(benvanik): remove once fixed: https://code.google.com/p/asmjit/issues/detail?id=86
|
||||||
|
@ -766,6 +794,10 @@ void X64Emitter::TraceInvalidInstruction(InstrData& i) {
|
||||||
call->setArgument(0, c.getGpArg(0));
|
call->setArgument(0, c.getGpArg(0));
|
||||||
call->setArgument(1, arg1);
|
call->setArgument(1, arg1);
|
||||||
call->setArgument(2, arg2);
|
call->setArgument(2, arg2);
|
||||||
|
|
||||||
|
for (int n = 0; n < 5; n++) {
|
||||||
|
c.nop();
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -776,6 +808,10 @@ void X64Emitter::TraceBranch(uint32_t cia) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (int n = 0; n < 5; n++) {
|
||||||
|
c.nop();
|
||||||
|
}
|
||||||
|
|
||||||
if (FLAGS_annotate_disassembly) {
|
if (FLAGS_annotate_disassembly) {
|
||||||
c.comment("XeTraceBranch (+spill)");
|
c.comment("XeTraceBranch (+spill)");
|
||||||
}
|
}
|
||||||
|
@ -815,6 +851,10 @@ void X64Emitter::TraceBranch(uint32_t cia) {
|
||||||
call->setArgument(0, c.getGpArg(0));
|
call->setArgument(0, c.getGpArg(0));
|
||||||
call->setArgument(1, arg1);
|
call->setArgument(1, arg1);
|
||||||
call->setArgument(2, arg2);
|
call->setArgument(2, arg2);
|
||||||
|
|
||||||
|
for (int n = 0; n < 2; n++) {
|
||||||
|
c.nop();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int X64Emitter::GenerateIndirectionBranch(uint32_t cia, GpVar& target,
|
int X64Emitter::GenerateIndirectionBranch(uint32_t cia, GpVar& target,
|
||||||
|
|
Loading…
Reference in New Issue