Lines Matching refs:code
82 $code .= <<___;
335 $code .= <<___;
357 $code .= <<___;
367 $code .= <<___;
387 $code .= <<___;
394 $code .= <<___;
400 $code .= <<___;
420 $code .= <<___;
426 $code .= "vmovdqa64 %zmm0,`$STACK_HKEYS_OFFSET + 64*$i`(%rsp)\n";
428 $code .= ".Lskip_hkeys_cleanup_${label_suffix}:\n";
435 $code .= "vzeroupper\n";
443 $code .= <<___;
453 $code .= "lea 8(%rbp),%rsp\n";
455 $code .= "lea (%rbp),%rsp\n";
456 $code .= ".cfi_def_cfa_register %rsp\n";
460 $code .= <<___;
467 $code .= <<___;
492 $code .= "vzeroall\n";
495 $code .= "vpxorq %xmm${i},%xmm${i},%xmm${i}\n";
499 $code .= "vpxorq %xmm${i},%xmm${i},%xmm${i}\n";
506 $code .= "xor $reg,$reg\n";
510 $code .= "xor $reg,$reg\n";
536 $code .= <<___;
544 $code .= <<___;
564 $code .= <<___;
584 $code .= "vmovdqu64 $ZTMP2,@{[HashKeyByIdx($i,\"%rsp\")]}\n";
589 $code .= "vmovdqu64 $ZTMP3,@{[HashKeyByIdx($i,\"%rsp\")]}\n";
602 $code .= "vmovdqu64 $ZTMP2,@{[HashKeyByIdx($i,\"%rsp\")]}\n";
607 $code .= "vmovdqu64 $ZTMP3,@{[HashKeyByIdx($i,\"%rsp\")]}\n";
612 $code .= ".L_skip_hkeys_precomputation_${label_suffix}:\n";
647 $code .= "$OPCODE $SRC2[$reg_idx],$SRC1[$reg_idx],$DST[$reg_idx]\n";
657 $code .= "$OPCODE @{[XWORD($SRC2REG)]},@{[XWORD($SRC1REG)]},@{[XWORD($DSTREG)]}\n";
659 $code .= "$OPCODE @{[YWORD($SRC2REG)]},@{[YWORD($SRC1REG)]},@{[YWORD($DSTREG)]}\n";
661 $code .= "$OPCODE $SRC2REG,$SRC1REG,$DSTREG\n";
689 …$code .= "vmovdqu8 @{[EffectiveAddress($INP,$DATA_OFFSET,$src_offset)]},$DST[$dst_idx]\n";
699 …$code .= "vmovdqu8 @{[EffectiveAddress($INP,$DATA_OFFSET,$src_offset)]},@{[XWORD($DSTREG)…
701 …$code .= "vmovdqu8 @{[EffectiveAddress($INP,$DATA_OFFSET,$src_offset)]},@{[YWORD($DSTREG)…
703 …$code .= "vmovdqu8 @{[EffectiveAddress($INP,$DATA_OFFSET,$src_offset)]},$DSTREG\{$MASK\}{…
731 $code .= "vmovdqu8 $SRC[$src_idx],`$dst_offset`($OUTP,$DATA_OFFSET,1)\n";
741 $code .= "vmovdqu8 @{[XWORD($SRCREG)]},`$dst_offset`($OUTP,$DATA_OFFSET,1){$MASK}\n";
743 $code .= "vmovdqu8 @{[YWORD($SRCREG)]},`$dst_offset`($OUTP,$DATA_OFFSET,1){$MASK}\n";
745 $code .= "vmovdqu8 $SRCREG,`$dst_offset`($OUTP,$DATA_OFFSET,1){$MASK}\n";
812 $code .= <<___;
829 $code .= <<___;
897 $code .= "vmovdqa64 @{[EffectiveAddress($INPTR,$INOFF,($INDIS+0*64))]},$ZTMP9\n";
903 $code .= "vpxorq $HASH,$ZTMP9,$ZTMP9\n";
905 $code .= <<___;
915 $code .= "vmovdqa64 @{[EffectiveAddress($INPTR,$INOFF,($INDIS+1*64))]},$ZTMP9\n";
919 $code .= <<___;
929 $code .= <<___;
936 $code .= <<___;
946 $code .= "vmovdqa64 @{[EffectiveAddress($INPTR,$INOFF,($INDIS+2*64))]},$ZTMP9\n";
950 $code .= <<___;
960 $code .= "vmovdqa64 @{[EffectiveAddress($INPTR,$INOFF,($INDIS+3*64))]},$ZTMP9\n";
964 $code .= <<___;
977 $code .= <<___;
990 $code .= "vmovdqa64 POLY2(%rip),@{[XWORD($ZTMP2)]}\n";
1025 $code .= "vpxorq $AAD_HASH_IN,$CIPHER_IN[0],$CIPHER_IN[0]\n";
1029 $code .= <<___;
1060 $code .= <<___;
1082 $code .= <<___;
1099 $code .= <<___;
1121 $code .= <<___;
1129 $code .= <<___;
1137 $code .= <<___;
1151 $code .= <<___;
1159 $code .= <<___;
1169 $code .= <<___;
1178 $code .= <<___;
1192 $code .= <<___;
1199 $code .= <<___;
1214 $code .= "vmovdqa64 POLY2(%rip),@{[XWORD($HK)]}\n";
1240 $code .= <<___;
1299 $code .= <<___;
1307 $code .= <<___;
1317 $code .= <<___;
1329 $code .= <<___;
1339 $code .= "vmovdqu64 $ZT6,@{[HashKeyByIdx(12,$GCM128_CTX)]}\n";
1343 $code .= "vmovdqu64 $ZT5,@{[HashKeyByIdx(16,$GCM128_CTX)]}\n";
1361 $code .= <<___;
1368 $code .= <<___;
1374 $code .= "kmovw ($TMP1,$TMP2,2),$MASK\n";
1376 $code .= "vmovdqu8 ($INPUT),${OUTPUT}{$MASK}{z}\n";
1417 $code .= <<___;
1431 $code .= <<___;
1443 $code .= "mov \$1,$HKEYS_READY\n";
1454 $code .= <<___;
1474 $code .= <<___;
1494 $code .= <<___;
1507 $code .= <<___;
1520 $code .= "mov \$1,$HKEYS_READY\n";
1531 $code .= <<___;
1551 $code .= <<___;
1583 $code .= <<___;
1632 $code .= ".L_AAD_blocks_${aad_blocks}_${label_suffix}:\n";
1634 $code .= "sub \$`12*16*8`, $T3\n";
1636 $code .= "sub \$`8*16*8`, $T3\n";
1638 $code .= "sub \$`4*16*8`, $T3\n";
1640 $code .= "kmovq ($T3),$MASKREG\n";
1653 $code .= "jmp .L_CALC_AAD_done_${label_suffix}\n";
1657 $code .= ".L_CALC_AAD_done_${label_suffix}:\n";
1709 $code .= <<___;
1718 $code .= <<___;
1732 $code .= <<___;
1737 $code .= <<___;
1743 $code .= <<___;
1748 $code .= "lea ($PLAIN_CIPH_LEN, $LENGTH, 1),$IA1\n";
1750 $code .= <<___;
1763 $code .= <<___;
1770 $code .= <<___;
1776 $code .= <<___;
1784 $code .= <<___;
1795 $code .= <<___;
1800 $code .= "add $PLAIN_CIPH_LEN,($PBLOCK_LEN)\n";
1802 $code .= <<___;
1814 $code .= <<___;
1820 $code .= <<___;
1856 $code .= "vmovdqa64 SHUF_MASK(%rip),@{[XWORD($SHUFMASK)]}\n";
1858 $code .= "vmovdqa64 SHUF_MASK(%rip),@{[YWORD($SHUFMASK)]}\n";
1860 $code .= "vmovdqa64 SHUF_MASK(%rip),$SHUFMASK\n";
1865 $code .= "vpaddd ONE(%rip),$CTR,@{[XWORD($CTR0)]}\n";
1867 $code .= <<___;
1872 $code .= <<___;
1877 $code .= "vpaddd ddq_add_5678(%rip),@{[ZWORD($CTR)]},$CTR1\n";
1880 $code .= "vpaddd ddq_add_8888(%rip),$CTR0,$CTR2\n";
1883 $code .= "vpaddd ddq_add_8888(%rip),$CTR1,$CTR3\n";
1888 $code .= <<___;
1893 $code .= "sub \$`3*64`,$IA1\n";
1895 $code .= "sub \$`2*64`,$IA1\n";
1897 $code .= "sub \$`1*64`,$IA1\n";
1899 $code .= "kmovq ($IA0,$IA1,8),$MASKREG\n";
1904 $code .= "vextracti32x4 \$`($NUM_BLOCKS - 1)`,$CTR0,$CTR\n";
1906 $code .= "vextracti32x4 \$`($NUM_BLOCKS - 5)`,$CTR1,$CTR\n";
1908 $code .= "vextracti32x4 \$`($NUM_BLOCKS - 9)`,$CTR2,$CTR\n";
1910 $code .= "vextracti32x4 \$`($NUM_BLOCKS - 13)`,$CTR3,$CTR\n";
1921 $code .= "vbroadcastf64x2 `($j * 16)`($AES_KEYS),$ZT1\n";
1929 $code .= "vextracti32x4 \$`($NUM_BLOCKS - 1)`,$CTR0,$LAST_CIPHER_BLK\n";
1931 $code .= "vextracti32x4 \$`($NUM_BLOCKS - 5)`,$CTR1,$LAST_CIPHER_BLK\n";
1933 $code .= "vextracti32x4 \$`($NUM_BLOCKS - 9)`,$CTR2,$LAST_CIPHER_BLK\n";
1935 $code .= "vextracti32x4 \$`($NUM_BLOCKS - 13)`,$CTR3,$LAST_CIPHER_BLK\n";
1939 $code .= "mov $CIPH_PLAIN_OUT,$IA0\n";
1944 $code .= "vmovdqu8 $CTR0,${CTR0}{$MASKREG}{z}\n";
1946 $code .= "vmovdqu8 $CTR1,${CTR1}{$MASKREG}{z}\n";
1948 $code .= "vmovdqu8 $CTR2,${CTR2}{$MASKREG}{z}\n";
1950 $code .= "vmovdqu8 $CTR3,${CTR3}{$MASKREG}{z}\n";
1973 $code .= "vextracti32x4 \$`($NUM_BLOCKS-1)`,$DAT0,$LAST_GHASH_BLK\n";
1975 $code .= "vextracti32x4 \$`($NUM_BLOCKS-5)`,$DAT1,$LAST_GHASH_BLK\n";
1977 $code .= "vextracti32x4 \$`($NUM_BLOCKS-9)`,$DAT2,$LAST_GHASH_BLK\n";
1979 $code .= "vextracti32x4 \$`($NUM_BLOCKS-13)`,$DAT3,$LAST_GHASH_BLK\n";
2023 $code .= "sub \$16 * ($NUM_BLOCKS - 1),$LENGTH\n";
2027 $code .= <<___;
2053 $code .= "jmp .L_small_initial_compute_done_${label_suffix}\n";
2056 $code .= <<___;
2091 $code .= <<___;
2105 $code .= "vmovdqa64 POLY2(%rip),@{[XWORD($ZT0)]}\n";
2108 $code .= <<___;
2130 $code .= ".L_small_initial_compute_done_${label_suffix}:\n";
2138 $code .= <<___;
2144 $code .= "vpxorq $LAST_GHASH_BLK,$HASH_IN_OUT,$HASH_IN_OUT\n";
2147 $code .= ".L_after_reduction_${label_suffix}:\n";
2305 $code .= <<___;
2310 $code .= "sub \$`3*64`,$IA1\n";
2312 $code .= "sub \$`2*64`,$IA1\n";
2314 $code .= "sub \$`1*64`,$IA1\n";
2316 $code .= "kmovq ($IA0,$IA1,8),$MASKREG\n";
2321 $code .= <<___;
2329 $code .= <<___;
2337 $code .= <<___;
2343 $code .= "vpaddd $B12_15,$B04_07,$B08_11\n";
2346 $code .= "vpaddd $B12_15,$B08_11,$B12_15\n";
2351 $code .= <<___;
2360 $code .= "vpxorq `$GHASHIN_BLK_OFFSET + (0*64)`(%rsp),$HASH_IN_OUT,$GHDAT1\n";
2362 $code .= "vmovdqa64 `$GHASHIN_BLK_OFFSET + (0*64)`(%rsp),$GHDAT1\n";
2365 $code .= "vmovdqu64 @{[EffectiveAddress(\"%rsp\",$HASHKEY_OFFSET,0*64)]},$GHKEY1\n";
2371 $code .= "vextracti32x4 \$`($NUM_BLOCKS - 1)`,$B00_03,@{[XWORD($CTR_BE)]}\n";
2373 $code .= "vextracti32x4 \$`($NUM_BLOCKS - 5)`,$B04_07,@{[XWORD($CTR_BE)]}\n";
2375 $code .= "vextracti32x4 \$`($NUM_BLOCKS - 9)`,$B08_11,@{[XWORD($CTR_BE)]}\n";
2377 $code .= "vextracti32x4 \$`($NUM_BLOCKS - 13)`,$B12_15,@{[XWORD($CTR_BE)]}\n";
2379 $code .= "vshufi64x2 \$0b00000000,$CTR_BE,$CTR_BE,$CTR_BE\n";
2381 $code .= <<___;
2398 $code .= "vbroadcastf64x2 `(16 * 2)`($AES_KEYS),$AESKEY1\n";
2400 $code .= <<___;
2416 $code .= "vbroadcastf64x2 `(16 * 3)`($AES_KEYS),$AESKEY2\n";
2418 $code .= <<___;
2434 $code .= "vbroadcastf64x2 `(16 * 4)`($AES_KEYS),$AESKEY1\n";
2436 $code .= <<___;
2450 $code .= "vbroadcastf64x2 `(16 * 5)`($AES_KEYS),$AESKEY2\n";
2452 $code .= <<___;
2466 $code .= "vbroadcastf64x2 `(16 * 6)`($AES_KEYS),$AESKEY1\n";
2477 $code .= "vbroadcastf64x2 `(16 * 7)`($AES_KEYS),$AESKEY2\n";
2479 $code .= <<___;
2493 $code .= "vbroadcastf64x2 `(16 * 8)`($AES_KEYS),$AESKEY1\n";
2498 $code .= "vpternlogq \$0x96,$GH2T,$GH1T,$GH1M\n";
2502 $code .= "vpxorq $GH2M,$GH1M,$GH1M\n";
2504 $code .= <<___;
2515 $code .= <<___;
2521 $code .= <<___;
2535 $code .= "vbroadcastf64x2 `(16 * 9)`($AES_KEYS),$AESKEY2\n";
2541 $code .= <<___;
2554 $code .= "vbroadcastf64x2 `(16 * 10)`($AES_KEYS),$AESKEY1\n";
2560 $code .= <<___;
2565 $code .= <<___;
2586 $code .= "vbroadcastf64x2 `(16 * 11)`($AES_KEYS),$AESKEY2\n";
2592 $code .= <<___;
2606 $code .= "vbroadcastf64x2 `(16 * 12)`($AES_KEYS),$AESKEY1\n";
2612 $code .= "vbroadcastf64x2 `(16 * 13)`($AES_KEYS),$AESKEY2\n";
2617 $code .= "vbroadcastf64x2 `(16 * 14)`($AES_KEYS),$AESKEY1\n";
2628 $code .= <<___;
2654 $code .= "vextracti32x4 \$`($NUM_BLOCKS - 1)`,$B00_03,@{[XWORD($LAST_CIPHER_BLK)]}\n";
2656 $code .= "vextracti32x4 \$`($NUM_BLOCKS - 5)`,$B04_07,@{[XWORD($LAST_CIPHER_BLK)]}\n";
2658 $code .= "vextracti32x4 \$`($NUM_BLOCKS - 9)`,$B08_11,@{[XWORD($LAST_CIPHER_BLK)]}\n";
2660 $code .= "vextracti32x4 \$`($NUM_BLOCKS - 13)`,$B12_15,@{[XWORD($LAST_CIPHER_BLK)]}\n";
2665 $code .= "mov $CIPH_PLAIN_OUT,$IA0\n";
2674 $code .= "vmovdqu8 $B00_03,${B00_03}{$MASKREG}{z}\n";
2676 $code .= "vmovdqu8 $B04_07,${B04_07}{$MASKREG}{z}\n";
2678 $code .= "vmovdqu8 $B08_11,${B08_11}{$MASKREG}{z}\n";
2680 $code .= "vmovdqu8 $B12_15,${B12_15}{$MASKREG}{z}\n";
2690 $code .= "vmovdqu8 $DATA1,${DATA1}{$MASKREG}{z}\n";
2692 $code .= "vmovdqu8 $DATA2,${DATA2}{$MASKREG}{z}\n";
2694 $code .= "vmovdqu8 $DATA3,${DATA3}{$MASKREG}{z}\n";
2696 $code .= "vmovdqu8 $DATA4,${DATA4}{$MASKREG}{z}\n";
2707 $code .= "vextracti32x4 \$`($NUM_BLOCKS-1)`,$DATA1,@{[XWORD($LAST_GHASH_BLK)]}\n";
2709 $code .= "vextracti32x4 \$`($NUM_BLOCKS-5)`,$DATA2,@{[XWORD($LAST_GHASH_BLK)]}\n";
2711 $code .= "vextracti32x4 \$`($NUM_BLOCKS-9)`,$DATA3,@{[XWORD($LAST_GHASH_BLK)]}\n";
2713 $code .= "vextracti32x4 \$`($NUM_BLOCKS-13)`,$DATA4,@{[XWORD($LAST_GHASH_BLK)]}\n";
2804 $code .= <<___;
2856 $code .= ".L_last_num_blocks_is_${num_blocks}_${label_suffix}:\n";
2869 $code .= "jmp .L_last_blocks_done_${label_suffix}\n";
2872 $code .= ".L_last_num_blocks_is_0_${label_suffix}:\n";
2888 $code .= ".L_last_blocks_done_${label_suffix}:\n";
2987 $code .= <<___;
3011 $code .= "vbroadcastf64x2 `(16 * 0)`($AES_KEYS),$AESKEY1\n";
3013 $code .= "vpxorq `$GHASHIN_BLK_OFFSET + (0*64)`(%rsp),$GHASH_IN,$GHDAT1\n";
3015 $code .= "vmovdqa64 `$GHASHIN_BLK_OFFSET + (0*64)`(%rsp),$GHDAT1\n";
3018 $code .= <<___;
3140 $code .= <<___;
3148 $code .= <<___;
3156 $code .= <<___;
3171 $code .= <<___;
3182 $code .= <<___;
3192 $code .= <<___;
3209 $code .= <<___;
3216 $code .= "vbroadcastf64x2 `(16 * 11)`($AES_KEYS),$AESKEY2\n";
3222 $code .= <<___;
3233 $code .= <<___;
3246 $code .= <<___;
3266 $code .= <<___;
3278 $code .= <<___;
3303 $code .= <<___;
3310 $code .= <<___;
3320 $code .= <<___;
3337 $code .= <<___;
3351 $code .= <<___;
3355 $code .= "vpxorq `16*0`($AES_KEY),$XMM0, $XMM0\n\n";
3357 $code .= "vaesenc `16*$i`($AES_KEY),$XMM0,$XMM0\n\n";
3359 $code .= <<___;
3364 $code .= ".Lexit_aes_${label_suffix}:\n\n";
3398 $code .= "vpxor $J0,$J0,$J0\n";
3403 $code .= <<___;
3415 $code .= "vpshufb SHUF_MASK(%rip),$J0,$J0 # ; perform a 16Byte swap\n";
3453 $code .= <<___;
3461 $code .= <<___;
3474 $code .= <<___;
3511 $code .= "vmovdqu64 $CTX_OFFSET_AadHash($GCM128_CTX),$AAD_HASH\n";
3518 $code .= "vmovdqu64 $AAD_HASH,$CTX_OFFSET_AadHash($GCM128_CTX)\n";
3561 $code .= <<___;
3613 $code .= ".L_small_initial_num_blocks_is_${num_blocks}_${label_suffix}:\n";
3622 $code .= "jmp .L_small_initial_blocks_encrypted_${label_suffix}\n";
3626 $code .= ".L_small_initial_blocks_encrypted_${label_suffix}:\n";
3744 $code .= "cmpq \$0,$PLAIN_CIPH_LEN\n";
3746 $code .= "or $PLAIN_CIPH_LEN,$PLAIN_CIPH_LEN\n";
3748 $code .= "je .L_enc_dec_done_${label_suffix}\n";
3753 $code .= "xor $HKEYS_READY, $HKEYS_READY\n";
3754 $code .= "vmovdqu64 `$CTX_OFFSET_AadHash`($GCM128_CTX),$AAD_HASHx\n";
3764 $code .= "vmovdqu64 `$CTX_OFFSET_CurCount`($GCM128_CTX),$CTR_BLOCKx\n";
3769 $code .= "mov $PLAIN_CIPH_LEN,$LENGTH\n";
3773 $code .= <<___;
3778 $code .= <<___;
3810 $code .= <<___;
3826 $code .= "mov \$1,$HKEYS_READY\n";
3828 $code .= <<___;
3839 $code .= ".L_encrypt_big_nblocks_${label_suffix}:\n";
3884 $code .= <<___;
3906 $code .= ".L_encrypt_0_blocks_ghash_32_${label_suffix}:\n";
3909 $code .= <<___;
3922 $code .= "add \$`(16 * 16)`,@{[DWORD($HASHK_PTR)]}\n";
3933 $code .= "vpshufb @{[XWORD($SHUF_MASK)]},$CTR_BLOCKx,$CTR_BLOCKx\n";
3934 $code .= "jmp .L_ghash_done_${label_suffix}\n";
3943 $code .= ".L_encrypt_32_blocks_${label_suffix}:\n";
3981 $code .= <<___;
3987 $code .= "mov @{[DWORD($LENGTH)]},@{[DWORD($IA0)]}\n";
3988 $code .= <<___;
4003 $code .= "vpshufb @{[XWORD($SHUF_MASK)]},$CTR_BLOCKx,$CTR_BLOCKx\n";
4004 $code .= "jmp .L_ghash_done_${label_suffix}\n";
4012 $code .= ".L_encrypt_16_blocks_${label_suffix}:\n";
4036 $code .= <<___;
4054 $code .= "vpshufb @{[XWORD($SHUF_MASK)]},$CTR_BLOCKx,$CTR_BLOCKx\n";
4055 $code .= <<___;
4067 $code .= "mov @{[DWORD($LENGTH)]},@{[DWORD($IA0)]}\n";
4071 $code .= "mov \$1,$HKEYS_READY\n";
4073 $code .= <<___;
4089 $code .= "vpshufb @{[XWORD($SHUF_MASK)]},$CTR_BLOCKx,$CTR_BLOCKx\n";
4090 $code .= <<___;
4110 $code .= ".L_ghash_done_${label_suffix}:\n";
4113 $code .= "vmovdqu64 $CTR_BLOCKx,`$CTX_OFFSET_CurCount`($GCM128_CTX)\n";
4114 $code .= <<___;
4155 $code .= <<___;
4194 $code .= <<___;
4202 $code .= <<___;
4223 $code .= <<___;
4231 $code .= <<___;
4241 $code .= <<___;
4246 $code .= <<___;
4263 $code .= <<___;
4268 $code .= <<___;
4279 $code .= <<___;
4290 $code .= <<___;
4303 $code .= ".text\n";
4313 $code .= <<___;
4322 $code .= <<___;
4332 $code .= "vpxorq %xmm16,%xmm16,%xmm16\n";
4334 $code .= <<___;
4357 $code .= "vzeroupper\n";
4359 $code .= <<___;
4376 $code .= <<___;
4386 $code .= <<___;
4417 $code .= <<___;
4433 $code .= <<___;
4443 $code .= <<___;
4470 $code .= <<___;
4490 $code .= <<___;
4506 $code .= <<___;
4532 $code .= <<___;
4547 $code .= <<___;
4552 $code .= "jmp .Lexit_gcm_encrypt\n";
4554 $code .= ".Lexit_gcm_encrypt:\n";
4556 $code .= <<___;
4575 $code .= <<___;
4591 $code .= <<___;
4617 $code .= <<___;
4632 $code .= <<___;
4637 $code .= "jmp .Lexit_gcm_decrypt\n";
4639 $code .= ".Lexit_gcm_decrypt:\n";
4641 $code .= <<___;
4656 $code .= <<___;
4665 $code .= <<___;
4674 $code .= <<___;
4687 $code .= <<___;
4697 $code .= <<___;
4707 $code .= "vmovdqu64 ($arg1),%xmm1\n";
4708 $code .= "vmovdqu64 @{[HashKeyByIdx(1,$arg2)]},%xmm2\n";
4712 $code .= "vmovdqu64 %xmm1,($arg1)\n";
4717 $code .= "vzeroupper\n";
4719 $code .= <<___;
4746 $code .= <<___;
4769 $code .= <<___;
4785 $code .= <<___;
4792 $code .= <<___;
4806 $code .= <<___;
4814 $code .= <<___;
4945 $code .= <<___;
4976 $code =~ s/\`([^\`]*)\`/eval $1/gem;
4977 print $code;