mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-14 15:40:19 +02:00
Add unboxed logxor on u64 values
* libguile/vm-engine.c (ulogxor): New instruction. * module/language/cps/effects-analysis.scm (ulogxor): * module/language/cps/slot-allocation.scm (compute-var-representations): * module/language/cps/types.scm (ulogxor): * module/system/vm/assembler.scm (emit-ulogxor): Add support for new instruction. * doc/ref/vm.texi (Unboxed Integer Arithmetic): Document ulogxor.
This commit is contained in:
parent
b733ca461c
commit
49d77b1243
6 changed files with 28 additions and 4 deletions
|
@ -3802,7 +3802,22 @@ VM_NAME (scm_i_thread *thread, struct scm_vm *vp,
|
|||
NEXT (1);
|
||||
}
|
||||
|
||||
VM_DEFINE_OP (177, unused_177, NULL, NOP)
|
||||
/* ulogxor dst:8 a:8 b:8
|
||||
*
|
||||
* Place the bitwise exclusive OR of the u64 values in A and B into
|
||||
* DST.
|
||||
*/
|
||||
VM_DEFINE_OP (177, ulogxor, "ulogxor", OP1 (X8_S8_S8_S8) | OP_DST)
|
||||
{
|
||||
scm_t_uint8 dst, a, b;
|
||||
|
||||
UNPACK_8_8_8 (op, dst, a, b);
|
||||
|
||||
SP_SET_U64 (dst, SP_REF_U64 (a) ^ SP_REF_U64 (b));
|
||||
|
||||
NEXT (1);
|
||||
}
|
||||
|
||||
VM_DEFINE_OP (178, unused_178, NULL, NOP)
|
||||
VM_DEFINE_OP (179, unused_179, NULL, NOP)
|
||||
VM_DEFINE_OP (180, unused_180, NULL, NOP)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue