mirror of
https://github.com/corda/corda.git
synced 2025-01-05 20:54:13 +00:00
various bugfixes involving longs
This commit is contained in:
parent
abc46c3d30
commit
7e0731ebdd
2
makefile
2
makefile
@ -1,4 +1,4 @@
|
|||||||
#MAKEFLAGS = -s
|
MAKEFLAGS = -s
|
||||||
|
|
||||||
arch = $(shell uname -m)
|
arch = $(shell uname -m)
|
||||||
ifeq ($(arch),i586)
|
ifeq ($(arch),i586)
|
||||||
|
@ -1010,6 +1010,11 @@ class Assembler {
|
|||||||
code.append(0x99);
|
code.append(0x99);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cqo() {
|
||||||
|
rex();
|
||||||
|
cdq();
|
||||||
|
}
|
||||||
|
|
||||||
void imul4(Register src, unsigned srcOffset, Register dst) {
|
void imul4(Register src, unsigned srcOffset, Register dst) {
|
||||||
code.append(0x0f);
|
code.append(0x0f);
|
||||||
offsetInstruction(0xaf, 0, 0x40, 0x80, dst, src, srcOffset);
|
offsetInstruction(0xaf, 0, 0x40, 0x80, dst, src, srcOffset);
|
||||||
@ -1048,6 +1053,10 @@ class Assembler {
|
|||||||
code.append(0xd8 | reg);
|
code.append(0xd8 | reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void int3() {
|
||||||
|
code.append(0xcc);
|
||||||
|
}
|
||||||
|
|
||||||
Buffer code;
|
Buffer code;
|
||||||
Buffer jumps;
|
Buffer jumps;
|
||||||
};
|
};
|
||||||
@ -2099,10 +2108,10 @@ class Compiler: public Assembler {
|
|||||||
Label greater(this);
|
Label greater(this);
|
||||||
|
|
||||||
if (BytesPerWord == 8) {
|
if (BytesPerWord == 8) {
|
||||||
popLong(rdx);
|
|
||||||
popLong(rax);
|
popLong(rax);
|
||||||
|
popLong(rcx);
|
||||||
|
|
||||||
cmp(rax, rdx);
|
cmp(rax, rcx);
|
||||||
jl(less);
|
jl(less);
|
||||||
jg(greater);
|
jg(greater);
|
||||||
|
|
||||||
@ -2118,8 +2127,8 @@ class Compiler: public Assembler {
|
|||||||
|
|
||||||
next.mark();
|
next.mark();
|
||||||
} else {
|
} else {
|
||||||
popLong(rcx, rbx);
|
|
||||||
popLong(rax, rdx);
|
popLong(rax, rdx);
|
||||||
|
popLong(rcx, rbx);
|
||||||
|
|
||||||
cmp(rdx, rbx);
|
cmp(rdx, rbx);
|
||||||
jl(less);
|
jl(less);
|
||||||
@ -2145,8 +2154,9 @@ class Compiler: public Assembler {
|
|||||||
|
|
||||||
case ldiv_:
|
case ldiv_:
|
||||||
if (BytesPerWord == 8) {
|
if (BytesPerWord == 8) {
|
||||||
popLong(rax);
|
|
||||||
popLong(rcx);
|
popLong(rcx);
|
||||||
|
popLong(rax);
|
||||||
|
cqo();
|
||||||
Assembler::idiv(rcx);
|
Assembler::idiv(rcx);
|
||||||
pushLong(rax);
|
pushLong(rax);
|
||||||
} else {
|
} else {
|
||||||
@ -2218,6 +2228,7 @@ class Compiler: public Assembler {
|
|||||||
if (BytesPerWord == 8) {
|
if (BytesPerWord == 8) {
|
||||||
popLong(rax);
|
popLong(rax);
|
||||||
popLong(rcx);
|
popLong(rcx);
|
||||||
|
cqo();
|
||||||
Assembler::idiv(rcx);
|
Assembler::idiv(rcx);
|
||||||
pushLong(rdx);
|
pushLong(rdx);
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user