mirror of
https://github.com/corda/corda.git
synced 2025-01-23 04:48:09 +00:00
implement and8, or8, and xor8 for 32-bit systems
This commit is contained in:
parent
8dc674b3d2
commit
74a7da3010
@ -1870,9 +1870,12 @@ MemoryOperand::accept(Context* c, Operation op, RegisterOperand* operand)
|
|||||||
switch (op) {
|
switch (op) {
|
||||||
case and4:
|
case and4:
|
||||||
case and8:
|
case and8:
|
||||||
assert(c, BytesPerWord == 8 or op == and4); // todo
|
if (BytesPerWord == 4 and op == and8) {
|
||||||
|
accept(c, and4, operand);
|
||||||
encode(c, 0x21, operand->value(c), this, true);
|
high(c)->accept(c, and4, register_(c, operand->high(c)));
|
||||||
|
} else {
|
||||||
|
encode(c, 0x21, operand->value(c), this, true);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case add4:
|
case add4:
|
||||||
@ -2017,9 +2020,12 @@ MemoryOperand::accept(Context* c, Operation op, RegisterOperand* operand)
|
|||||||
|
|
||||||
case or4:
|
case or4:
|
||||||
case or8:
|
case or8:
|
||||||
assert(c, BytesPerWord == 8 or op == or4); // todo
|
if (BytesPerWord == 4 and op == or8) {
|
||||||
|
accept(c, or4, operand);
|
||||||
encode(c, 0x09, operand->value(c), this, true);
|
high(c)->accept(c, or4, register_(c, operand->high(c)));
|
||||||
|
} else {
|
||||||
|
encode(c, 0x09, operand->value(c), this, true);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case rem4:
|
case rem4:
|
||||||
@ -2148,9 +2154,12 @@ MemoryOperand::accept(Context* c, Operation op, RegisterOperand* operand)
|
|||||||
|
|
||||||
case xor4:
|
case xor4:
|
||||||
case xor8: {
|
case xor8: {
|
||||||
assert(c, BytesPerWord == 8 or op == xor4); // todo
|
if (BytesPerWord == 4 and op == xor8) {
|
||||||
|
accept(c, xor4, operand);
|
||||||
encode(c, 0x31, operand->value(c), this, true);
|
high(c)->accept(c, xor4, register_(c, operand->high(c)));
|
||||||
|
} else {
|
||||||
|
encode(c, 0x31, operand->value(c), this, true);
|
||||||
|
}
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
default: abort(c);
|
default: abort(c);
|
||||||
|
Loading…
Reference in New Issue
Block a user