< prev index next >

src/cpu/ppc/vm/assembler_ppc.hpp

Print this page
rev 7958 : 8152172: PPC64: Support AES intrinsics
Reviewed-by: kvn, mdoerr, simonis
Contributed-by: horii@jp.ibm.com


 572     VMINSH_OPCODE  = (4u  << OPCODE_SHIFT |  834u     ),
 573     VMINUB_OPCODE  = (4u  << OPCODE_SHIFT |  514u     ),
 574     VMINUW_OPCODE  = (4u  << OPCODE_SHIFT |  642u     ),
 575     VMINUH_OPCODE  = (4u  << OPCODE_SHIFT |  578u     ),
 576 
 577     VCMPEQUB_OPCODE= (4u  << OPCODE_SHIFT |    6u     ),
 578     VCMPEQUH_OPCODE= (4u  << OPCODE_SHIFT |   70u     ),
 579     VCMPEQUW_OPCODE= (4u  << OPCODE_SHIFT |  134u     ),
 580     VCMPGTSH_OPCODE= (4u  << OPCODE_SHIFT |  838u     ),
 581     VCMPGTSB_OPCODE= (4u  << OPCODE_SHIFT |  774u     ),
 582     VCMPGTSW_OPCODE= (4u  << OPCODE_SHIFT |  902u     ),
 583     VCMPGTUB_OPCODE= (4u  << OPCODE_SHIFT |  518u     ),
 584     VCMPGTUH_OPCODE= (4u  << OPCODE_SHIFT |  582u     ),
 585     VCMPGTUW_OPCODE= (4u  << OPCODE_SHIFT |  646u     ),
 586 
 587     VAND_OPCODE    = (4u  << OPCODE_SHIFT | 1028u     ),
 588     VANDC_OPCODE   = (4u  << OPCODE_SHIFT | 1092u     ),
 589     VNOR_OPCODE    = (4u  << OPCODE_SHIFT | 1284u     ),
 590     VOR_OPCODE     = (4u  << OPCODE_SHIFT | 1156u     ),
 591     VXOR_OPCODE    = (4u  << OPCODE_SHIFT | 1220u     ),

 592     VRLB_OPCODE    = (4u  << OPCODE_SHIFT |    4u     ),
 593     VRLW_OPCODE    = (4u  << OPCODE_SHIFT |  132u     ),
 594     VRLH_OPCODE    = (4u  << OPCODE_SHIFT |   68u     ),
 595     VSLB_OPCODE    = (4u  << OPCODE_SHIFT |  260u     ),
 596     VSKW_OPCODE    = (4u  << OPCODE_SHIFT |  388u     ),
 597     VSLH_OPCODE    = (4u  << OPCODE_SHIFT |  324u     ),
 598     VSRB_OPCODE    = (4u  << OPCODE_SHIFT |  516u     ),
 599     VSRW_OPCODE    = (4u  << OPCODE_SHIFT |  644u     ),
 600     VSRH_OPCODE    = (4u  << OPCODE_SHIFT |  580u     ),
 601     VSRAB_OPCODE   = (4u  << OPCODE_SHIFT |  772u     ),
 602     VSRAW_OPCODE   = (4u  << OPCODE_SHIFT |  900u     ),
 603     VSRAH_OPCODE   = (4u  << OPCODE_SHIFT |  836u     ),
 604 
 605     // Vector Floating-Point
 606     // not implemented yet
 607 
 608     // Vector Status and Control
 609     MTVSCR_OPCODE  = (4u  << OPCODE_SHIFT | 1604u     ),
 610     MFVSCR_OPCODE  = (4u  << OPCODE_SHIFT | 1540u     ),
 611 


1901   inline void vcmpgtsh( VectorRegister d, VectorRegister a, VectorRegister b);
1902   inline void vcmpgtsb( VectorRegister d, VectorRegister a, VectorRegister b);
1903   inline void vcmpgtsw( VectorRegister d, VectorRegister a, VectorRegister b);
1904   inline void vcmpgtub( VectorRegister d, VectorRegister a, VectorRegister b);
1905   inline void vcmpgtuh( VectorRegister d, VectorRegister a, VectorRegister b);
1906   inline void vcmpgtuw( VectorRegister d, VectorRegister a, VectorRegister b);
1907   inline void vcmpequb_(VectorRegister d, VectorRegister a, VectorRegister b);
1908   inline void vcmpequh_(VectorRegister d, VectorRegister a, VectorRegister b);
1909   inline void vcmpequw_(VectorRegister d, VectorRegister a, VectorRegister b);
1910   inline void vcmpgtsh_(VectorRegister d, VectorRegister a, VectorRegister b);
1911   inline void vcmpgtsb_(VectorRegister d, VectorRegister a, VectorRegister b);
1912   inline void vcmpgtsw_(VectorRegister d, VectorRegister a, VectorRegister b);
1913   inline void vcmpgtub_(VectorRegister d, VectorRegister a, VectorRegister b);
1914   inline void vcmpgtuh_(VectorRegister d, VectorRegister a, VectorRegister b);
1915   inline void vcmpgtuw_(VectorRegister d, VectorRegister a, VectorRegister b);
1916   inline void vand(     VectorRegister d, VectorRegister a, VectorRegister b);
1917   inline void vandc(    VectorRegister d, VectorRegister a, VectorRegister b);
1918   inline void vnor(     VectorRegister d, VectorRegister a, VectorRegister b);
1919   inline void vor(      VectorRegister d, VectorRegister a, VectorRegister b);
1920   inline void vxor(     VectorRegister d, VectorRegister a, VectorRegister b);

1921   inline void vrlb(     VectorRegister d, VectorRegister a, VectorRegister b);
1922   inline void vrlw(     VectorRegister d, VectorRegister a, VectorRegister b);
1923   inline void vrlh(     VectorRegister d, VectorRegister a, VectorRegister b);
1924   inline void vslb(     VectorRegister d, VectorRegister a, VectorRegister b);
1925   inline void vskw(     VectorRegister d, VectorRegister a, VectorRegister b);
1926   inline void vslh(     VectorRegister d, VectorRegister a, VectorRegister b);
1927   inline void vsrb(     VectorRegister d, VectorRegister a, VectorRegister b);
1928   inline void vsrw(     VectorRegister d, VectorRegister a, VectorRegister b);
1929   inline void vsrh(     VectorRegister d, VectorRegister a, VectorRegister b);
1930   inline void vsrab(    VectorRegister d, VectorRegister a, VectorRegister b);
1931   inline void vsraw(    VectorRegister d, VectorRegister a, VectorRegister b);
1932   inline void vsrah(    VectorRegister d, VectorRegister a, VectorRegister b);
1933   // Vector Floating-Point not implemented yet
1934   inline void mtvscr(   VectorRegister b);
1935   inline void mfvscr(   VectorRegister d);
1936 
1937   // AES (introduced with Power 8)
1938   inline void vcipher(     VectorRegister d, VectorRegister a, VectorRegister b);
1939   inline void vcipherlast( VectorRegister d, VectorRegister a, VectorRegister b);
1940   inline void vncipher(    VectorRegister d, VectorRegister a, VectorRegister b);




 572     VMINSH_OPCODE  = (4u  << OPCODE_SHIFT |  834u     ),
 573     VMINUB_OPCODE  = (4u  << OPCODE_SHIFT |  514u     ),
 574     VMINUW_OPCODE  = (4u  << OPCODE_SHIFT |  642u     ),
 575     VMINUH_OPCODE  = (4u  << OPCODE_SHIFT |  578u     ),
 576 
 577     VCMPEQUB_OPCODE= (4u  << OPCODE_SHIFT |    6u     ),
 578     VCMPEQUH_OPCODE= (4u  << OPCODE_SHIFT |   70u     ),
 579     VCMPEQUW_OPCODE= (4u  << OPCODE_SHIFT |  134u     ),
 580     VCMPGTSH_OPCODE= (4u  << OPCODE_SHIFT |  838u     ),
 581     VCMPGTSB_OPCODE= (4u  << OPCODE_SHIFT |  774u     ),
 582     VCMPGTSW_OPCODE= (4u  << OPCODE_SHIFT |  902u     ),
 583     VCMPGTUB_OPCODE= (4u  << OPCODE_SHIFT |  518u     ),
 584     VCMPGTUH_OPCODE= (4u  << OPCODE_SHIFT |  582u     ),
 585     VCMPGTUW_OPCODE= (4u  << OPCODE_SHIFT |  646u     ),
 586 
 587     VAND_OPCODE    = (4u  << OPCODE_SHIFT | 1028u     ),
 588     VANDC_OPCODE   = (4u  << OPCODE_SHIFT | 1092u     ),
 589     VNOR_OPCODE    = (4u  << OPCODE_SHIFT | 1284u     ),
 590     VOR_OPCODE     = (4u  << OPCODE_SHIFT | 1156u     ),
 591     VXOR_OPCODE    = (4u  << OPCODE_SHIFT | 1220u     ),
 592     VRLD_OPCODE    = (4u  << OPCODE_SHIFT |  196u     ),
 593     VRLB_OPCODE    = (4u  << OPCODE_SHIFT |    4u     ),
 594     VRLW_OPCODE    = (4u  << OPCODE_SHIFT |  132u     ),
 595     VRLH_OPCODE    = (4u  << OPCODE_SHIFT |   68u     ),
 596     VSLB_OPCODE    = (4u  << OPCODE_SHIFT |  260u     ),
 597     VSKW_OPCODE    = (4u  << OPCODE_SHIFT |  388u     ),
 598     VSLH_OPCODE    = (4u  << OPCODE_SHIFT |  324u     ),
 599     VSRB_OPCODE    = (4u  << OPCODE_SHIFT |  516u     ),
 600     VSRW_OPCODE    = (4u  << OPCODE_SHIFT |  644u     ),
 601     VSRH_OPCODE    = (4u  << OPCODE_SHIFT |  580u     ),
 602     VSRAB_OPCODE   = (4u  << OPCODE_SHIFT |  772u     ),
 603     VSRAW_OPCODE   = (4u  << OPCODE_SHIFT |  900u     ),
 604     VSRAH_OPCODE   = (4u  << OPCODE_SHIFT |  836u     ),
 605 
 606     // Vector Floating-Point
 607     // not implemented yet
 608 
 609     // Vector Status and Control
 610     MTVSCR_OPCODE  = (4u  << OPCODE_SHIFT | 1604u     ),
 611     MFVSCR_OPCODE  = (4u  << OPCODE_SHIFT | 1540u     ),
 612 


1902   inline void vcmpgtsh( VectorRegister d, VectorRegister a, VectorRegister b);
1903   inline void vcmpgtsb( VectorRegister d, VectorRegister a, VectorRegister b);
1904   inline void vcmpgtsw( VectorRegister d, VectorRegister a, VectorRegister b);
1905   inline void vcmpgtub( VectorRegister d, VectorRegister a, VectorRegister b);
1906   inline void vcmpgtuh( VectorRegister d, VectorRegister a, VectorRegister b);
1907   inline void vcmpgtuw( VectorRegister d, VectorRegister a, VectorRegister b);
1908   inline void vcmpequb_(VectorRegister d, VectorRegister a, VectorRegister b);
1909   inline void vcmpequh_(VectorRegister d, VectorRegister a, VectorRegister b);
1910   inline void vcmpequw_(VectorRegister d, VectorRegister a, VectorRegister b);
1911   inline void vcmpgtsh_(VectorRegister d, VectorRegister a, VectorRegister b);
1912   inline void vcmpgtsb_(VectorRegister d, VectorRegister a, VectorRegister b);
1913   inline void vcmpgtsw_(VectorRegister d, VectorRegister a, VectorRegister b);
1914   inline void vcmpgtub_(VectorRegister d, VectorRegister a, VectorRegister b);
1915   inline void vcmpgtuh_(VectorRegister d, VectorRegister a, VectorRegister b);
1916   inline void vcmpgtuw_(VectorRegister d, VectorRegister a, VectorRegister b);
1917   inline void vand(     VectorRegister d, VectorRegister a, VectorRegister b);
1918   inline void vandc(    VectorRegister d, VectorRegister a, VectorRegister b);
1919   inline void vnor(     VectorRegister d, VectorRegister a, VectorRegister b);
1920   inline void vor(      VectorRegister d, VectorRegister a, VectorRegister b);
1921   inline void vxor(     VectorRegister d, VectorRegister a, VectorRegister b);
1922   inline void vrld(     VectorRegister d, VectorRegister a, VectorRegister b);
1923   inline void vrlb(     VectorRegister d, VectorRegister a, VectorRegister b);
1924   inline void vrlw(     VectorRegister d, VectorRegister a, VectorRegister b);
1925   inline void vrlh(     VectorRegister d, VectorRegister a, VectorRegister b);
1926   inline void vslb(     VectorRegister d, VectorRegister a, VectorRegister b);
1927   inline void vskw(     VectorRegister d, VectorRegister a, VectorRegister b);
1928   inline void vslh(     VectorRegister d, VectorRegister a, VectorRegister b);
1929   inline void vsrb(     VectorRegister d, VectorRegister a, VectorRegister b);
1930   inline void vsrw(     VectorRegister d, VectorRegister a, VectorRegister b);
1931   inline void vsrh(     VectorRegister d, VectorRegister a, VectorRegister b);
1932   inline void vsrab(    VectorRegister d, VectorRegister a, VectorRegister b);
1933   inline void vsraw(    VectorRegister d, VectorRegister a, VectorRegister b);
1934   inline void vsrah(    VectorRegister d, VectorRegister a, VectorRegister b);
1935   // Vector Floating-Point not implemented yet
1936   inline void mtvscr(   VectorRegister b);
1937   inline void mfvscr(   VectorRegister d);
1938 
1939   // AES (introduced with Power 8)
1940   inline void vcipher(     VectorRegister d, VectorRegister a, VectorRegister b);
1941   inline void vcipherlast( VectorRegister d, VectorRegister a, VectorRegister b);
1942   inline void vncipher(    VectorRegister d, VectorRegister a, VectorRegister b);


< prev index next >