]> git.ipfire.org Git - thirdparty/valgrind.git/commit
ISA 3.1 VSX Mask Manipulation Operations
authorCarl Love <cel@us.ibm.com>
Sat, 2 May 2020 04:49:33 +0000 (23:49 -0500)
committerCarl Love <cel@us.ibm.com>
Thu, 4 Mar 2021 18:33:48 +0000 (12:33 -0600)
commit82777ee4080a339fb16d970411b743598b00590c
tree8c7af8c2ce7d16d3a61025fea66826715e0f299d
parentb92d30bb6de3aec40be9ad368f10f881e2b84ca7
ISA 3.1 VSX Mask Manipulation Operations

Add support for:

mtvsrbmMove to VSR Byte Mask
mtvsrbmiMove To VSR Byte Mask Immediate
mtvsrdmMove to VSR Doubleword Mask
mtvsrhmMove to VSR Halfword Mask
mtvsrqmMove to VSR Quadword Mask
mtvsrwmMove to VSR Word Mask
vcntmbbVector Count Mask Bits Byte
vcntmbdVector Count Mask Bits Doubleword
vcntmbhVector Count Mask Bits Halfword
vcntmbwVector Count Mask Bits Word
vexpandbmVector Expand Byte Mask
vexpanddmVector Expand Doubleword Mask
vexpandhmVector Expand Halfword Mask
vexpandqmVector Expand Quadword Mask
vexpandwmVector Expand Word Mask
vextractbmVector Extract Byte Mask
vextractdmVector Extract Doubleword Mask
vextracthmVector Extract Halfword Mask
vextractqmVector Extract Quadword Mask
vextractwmVector Extract Word Mask

Re-implemented the copy_MSB_bit_fields() function.  It can be done similarly to
the implementation of the vgnb instruction leveraging the clean helpers
used for the vgnb instruction.

Reimplemented the vexpandXm instructions eliminating
the call to copy_MSB_bit_fileds() and the need for the
for(i = 0; i< max; i++) loop.

Reimplemented the mtvsrXm instructions to remove the
need for the for(i = 0; i< max; i++) loop.

The computations for vexpandXm and mtvsrXm instructions
can be done much more efficiently.
VEX/priv/guest_ppc_toIR.c