equal
deleted
inserted
replaced
112 |
112 |
113 if (op == 0xEB || (op & 0xF0) == 0x70) { |
113 if (op == 0xEB || (op & 0xF0) == 0x70) { |
114 // short offset operators (jmp and jcc) |
114 // short offset operators (jmp and jcc) |
115 char* disp = (char*) &branch[1]; |
115 char* disp = (char*) &branch[1]; |
116 int imm8 = target - (address) &disp[1]; |
116 int imm8 = target - (address) &disp[1]; |
117 guarantee(this->is8bit(imm8), "Short forward jump exceeds 8-bit offset at %s:%d", file, line); |
117 guarantee(this->is8bit(imm8), "Short forward jump exceeds 8-bit offset at %s:%d", |
|
118 file == NULL ? "<NULL>" : file, line); |
118 *disp = imm8; |
119 *disp = imm8; |
119 } else { |
120 } else { |
120 int* disp = (int*) &branch[(op == 0x0F || op == 0xC7)? 2: 1]; |
121 int* disp = (int*) &branch[(op == 0x0F || op == 0xC7)? 2: 1]; |
121 int imm32 = target - (address) &disp[1]; |
122 int imm32 = target - (address) &disp[1]; |
122 *disp = imm32; |
123 *disp = imm32; |