📄 aes-sparcv9.pl
字号:
stb %l0,[%i1+0] srl %o0,8,%l2 stb %l1,[%i1+1] stb %l2,[%i1+2] srl %o1,24,%l4 stb %o0,[%i1+3] srl %o1,16,%l5 stb %l4,[%i1+4] srl %o1,8,%l6 stb %l5,[%i1+5] stb %l6,[%i1+6] srl %o2,24,%l0 stb %o1,[%i1+7] srl %o2,16,%l1 stb %l0,[%i1+8] srl %o2,8,%l2 stb %l1,[%i1+9] stb %l2,[%i1+10] srl %o3,24,%l4 stb %o2,[%i1+11] srl %o3,16,%l5 stb %l4,[%i1+12] srl %o3,8,%l6 stb %l5,[%i1+13] stb %l6,[%i1+14] stb %o3,[%i1+15] ret restore.type AES_encrypt,#function.size AES_encrypt,(.-AES_encrypt)___$code.=<<___;.align 256AES_Td:___&_data_word( 0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96, 0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393, 0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25, 0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f, 0xdeb15a49, 0x25ba1b67, 0x45ea0e98, 0x5dfec0e1, 0xc32f7502, 0x814cf012, 0x8d4697a3, 0x6bd3f9c6, 0x038f5fe7, 0x15929c95, 0xbf6d7aeb, 0x955259da, 0xd4be832d, 0x587421d3, 0x49e06929, 0x8ec9c844, 0x75c2896a, 0xf48e7978, 0x99583e6b, 0x27b971dd, 0xbee14fb6, 0xf088ad17, 0xc920ac66, 0x7dce3ab4, 0x63df4a18, 0xe51a3182, 0x97513360, 0x62537f45, 0xb16477e0, 0xbb6bae84, 0xfe81a01c, 0xf9082b94, 0x70486858, 0x8f45fd19, 0x94de6c87, 0x527bf8b7, 0xab73d323, 0x724b02e2, 0xe31f8f57, 0x6655ab2a, 0xb2eb2807, 0x2fb5c203, 0x86c57b9a, 0xd33708a5, 0x302887f2, 0x23bfa5b2, 0x02036aba, 0xed16825c, 0x8acf1c2b, 0xa779b492, 0xf307f2f0, 0x4e69e2a1, 0x65daf4cd, 0x0605bed5, 0xd134621f, 0xc4a6fe8a, 0x342e539d, 0xa2f355a0, 0x058ae132, 0xa4f6eb75, 0x0b83ec39, 0x4060efaa, 0x5e719f06, 0xbd6e1051, 0x3e218af9, 0x96dd063d, 0xdd3e05ae, 0x4de6bd46, 0x91548db5, 0x71c45d05, 0x0406d46f, 0x605015ff, 0x1998fb24, 0xd6bde997, 0x894043cc, 0x67d99e77, 0xb0e842bd, 0x07898b88, 0xe7195b38, 0x79c8eedb, 0xa17c0a47, 0x7c420fe9, 0xf8841ec9, 0x00000000, 0x09808683, 0x322bed48, 0x1e1170ac, 0x6c5a724e, 0xfd0efffb, 0x0f853856, 0x3daed51e, 0x362d3927, 0x0a0fd964, 0x685ca621, 0x9b5b54d1, 0x24362e3a, 0x0c0a67b1, 0x9357e70f, 0xb4ee96d2, 0x1b9b919e, 0x80c0c54f, 0x61dc20a2, 0x5a774b69, 0x1c121a16, 0xe293ba0a, 0xc0a02ae5, 0x3c22e043, 0x121b171d, 0x0e090d0b, 0xf28bc7ad, 0x2db6a8b9, 0x141ea9c8, 0x57f11985, 0xaf75074c, 0xee99ddbb, 0xa37f60fd, 0xf701269f, 0x5c72f5bc, 0x44663bc5, 0x5bfb7e34, 0x8b432976, 0xcb23c6dc, 0xb6edfc68, 0xb8e4f163, 0xd731dcca, 0x42638510, 0x13972240, 0x84c61120, 0x854a247d, 0xd2bb3df8, 0xaef93211, 0xc729a16d, 0x1d9e2f4b, 0xdcb230f3, 0x0d8652ec, 0x77c1e3d0, 0x2bb3166c, 0xa970b999, 0x119448fa, 0x47e96422, 0xa8fc8cc4, 0xa0f03f1a, 0x567d2cd8, 0x223390ef, 0x87494ec7, 0xd938d1c1, 0x8ccaa2fe, 0x98d40b36, 0xa6f581cf, 0xa57ade28, 0xdab78e26, 0x3fadbfa4, 0x2c3a9de4, 0x5078920d, 0x6a5fcc9b, 0x547e4662, 0xf68d13c2, 0x90d8b8e8, 0x2e39f75e, 0x82c3aff5, 0x9f5d80be, 0x69d0937c, 0x6fd52da9, 0xcf2512b3, 0xc8ac993b, 0x10187da7, 0xe89c636e, 0xdb3bbb7b, 0xcd267809, 0x6e5918f4, 0xec9ab701, 0x834f9aa8, 0xe6956e65, 0xaaffe67e, 0x21bccf08, 0xef15e8e6, 0xbae79bd9, 0x4a6f36ce, 0xea9f09d4, 0x29b07cd6, 0x31a4b2af, 0x2a3f2331, 0xc6a59430, 0x35a266c0, 0x744ebc37, 0xfc82caa6, 0xe090d0b0, 0x33a7d815, 0xf104984a, 0x41ecdaf7, 0x7fcd500e, 0x1791f62f, 0x764dd68d, 0x43efb04d, 0xccaa4d54, 0xe49604df, 0x9ed1b5e3, 0x4c6a881b, 0xc12c1fb8, 0x4665517f, 0x9d5eea04, 0x018c355d, 0xfa877473, 0xfb0b412e, 0xb3671d5a, 0x92dbd252, 0xe9105633, 0x6dd64713, 0x9ad7618c, 0x37a10c7a, 0x59f8148e, 0xeb133c89, 0xcea927ee, 0xb761c935, 0xe11ce5ed, 0x7a47b13c, 0x9cd2df59, 0x55f2733f, 0x1814ce79, 0x73c737bf, 0x53f7cdea, 0x5ffdaa5b, 0xdf3d6f14, 0x7844db86, 0xcaaff381, 0xb968c43e, 0x3824342c, 0xc2a3405f, 0x161dc372, 0xbce2250c, 0x283c498b, 0xff0d9541, 0x39a80171, 0x080cb3de, 0xd8b4e49c, 0x6456c190, 0x7bcb8461, 0xd532b670, 0x486c5c74, 0xd0b85742);$code.=<<___; .byte 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38 .byte 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb .byte 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87 .byte 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb .byte 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d .byte 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e .byte 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2 .byte 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25 .byte 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16 .byte 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92 .byte 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda .byte 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84 .byte 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a .byte 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06 .byte 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02 .byte 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b .byte 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea .byte 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73 .byte 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85 .byte 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e .byte 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89 .byte 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b .byte 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20 .byte 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4 .byte 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31 .byte 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f .byte 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d .byte 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef .byte 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0 .byte 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61 .byte 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26 .byte 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d.type AES_Td,#object.size AES_Td,(.-AES_Td).align 64.skip 16_sparcv9_AES_decrypt: save %sp,-$frame-$locals,%sp stx %i7,[%sp+$bias+$frame+0] ! off-load return address ld [$key+240],$rounds ld [$key+0],$t0 ld [$key+4],$t1 ! ld [$key+8],$t2 ld [$key+12],$t3 srl $rounds,1,$rounds xor $t0,$s0,$s0 ld [$key+16],$t0 xor $t1,$s1,$s1 ld [$key+20],$t1 srl $s0,21,$acc0 ! xor $t2,$s2,$s2 ld [$key+24],$t2 xor $t3,$s3,$s3 and $acc0,2040,$acc0 ld [$key+28],$t3 srl $s3,13,$acc1 nop.Ldec_loop: srl $s2,5,$acc2 ! and $acc1,2040,$acc1 ldx [$tbl+$acc0],$acc0 sll $s1,3,$acc3 and $acc2,2040,$acc2 ldx [$tbl+$acc1],$acc1 srl $s1,21,$acc4 and $acc3,2040,$acc3 ldx [$tbl+$acc2],$acc2 ! srl $s0,13,$acc5 and $acc4,2040,$acc4 ldx [$tbl+$acc3],$acc3 srl $s3,5,$acc6 and $acc5,2040,$acc5 ldx [$tbl+$acc4],$acc4 fmovs %f0,%f0 sll $s2,3,$acc7 ! and $acc6,2040,$acc6 ldx [$tbl+$acc5],$acc5 srl $s2,21,$acc8 and $acc7,2040,$acc7 ldx [$tbl+$acc6],$acc6 srl $s1,13,$acc9 and $acc8,2040,$acc8 ldx [$tbl+$acc7],$acc7 ! srl $s0,5,$acc10 and $acc9,2040,$acc9 ldx [$tbl+$acc8],$acc8 sll $s3,3,$acc11 and $acc10,2040,$acc10 ldx [$tbl+$acc9],$acc9 fmovs %f0,%f0 srl $s3,21,$acc12 ! and $acc11,2040,$acc11 ldx [$tbl+$acc10],$acc10 srl $s2,13,$acc13 and $acc12,2040,$acc12 ldx [$tbl+$acc11],$acc11 srl $s1,5,$acc14 and $acc13,2040,$acc13 ldx [$tbl+$acc12],$acc12 ! sll $s0,3,$acc15 and $acc14,2040,$acc14 ldx [$tbl+$acc13],$acc13 and $acc15,2040,$acc15 add $key,32,$key ldx [$tbl+$acc14],$acc14 fmovs %f0,%f0 subcc $rounds,1,$rounds ! ldx [$tbl+$acc15],$acc15 bz,a,pn %icc,.Ldec_last add $tbl,2048,$rounds srlx $acc1,8,$acc1 xor $acc0,$t0,$t0 ld [$key+0],$s0 fmovs %f0,%f0 srlx $acc2,16,$acc2 ! xor $acc1,$t0,$t0 ld [$key+4],$s1 srlx $acc3,24,$acc3 xor $acc2,$t0,$t0 ld [$key+8],$s2 srlx $acc5,8,$acc5 xor $acc3,$t0,$t0 ld [$key+12],$s3 ! srlx $acc6,16,$acc6 xor $acc4,$t1,$t1 fmovs %f0,%f0 srlx $acc7,24,$acc7 xor $acc5,$t1,$t1 srlx $acc9,8,$acc9 xor $acc6,$t1,$t1 srlx $acc10,16,$acc10 ! xor $acc7,$t1,$t1 srlx $acc11,24,$acc11 xor $acc8,$t2,$t2 srlx $acc13,8,$acc13 xor $acc9,$t2,$t2 srlx $acc14,16,$acc14 xor $acc10,$t2,$t2 srlx $acc15,24,$acc15 ! xor $acc11,$t2,$t2 xor $acc12,$acc14,$acc14 xor $acc13,$t3,$t3 srl $t0,21,$acc0 xor $acc14,$t3,$t3 xor $acc15,$t3,$t3 srl $t3,13,$acc1 and $acc0,2040,$acc0 ! srl $t2,5,$acc2 and $acc1,2040,$acc1 ldx [$tbl+$acc0],$acc0 sll $t1,3,$acc3 and $acc2,2040,$acc2 ldx [$tbl+$acc1],$acc1 fmovs %f0,%f0 srl $t1,21,$acc4 ! and $acc3,2040,$acc3 ldx [$tbl+$acc2],$acc2 srl $t0,13,$acc5 and $acc4,2040,$acc4 ldx [$tbl+$acc3],$acc3 srl $t3,5,$acc6 and $acc5,2040,$acc5 ldx [$tbl+$acc4],$acc4 ! sll $t2,3,$acc7 and $acc6,2040,$acc6 ldx [$tbl+$acc5],$acc5 srl $t2,21,$acc8 and $acc7,2040,$acc7 ldx [$tbl+$acc6],$acc6 fmovs %f0,%f0 srl $t1,13,$acc9 ! and $acc8,2040,$acc8 ldx [$tbl+$acc7],$acc7 srl $t0,5,$acc10 and $acc9,2040,$acc9 ldx [$tbl+$acc8],$acc8 sll $t3,3,$acc11 and $acc10,2040,$acc10 ldx [$tbl+$acc9],$acc9 ! srl $t3,21,$acc12 and $acc11,2040,$acc11 ldx [$tbl+$acc10],$acc10 srl $t2,13,$acc13 and $acc12,2040,$acc12 ldx [$tbl+$acc11],$acc11 fmovs %f0,%f0 srl $t1,5,$acc14 ! and $acc13,2040,$acc13 ldx [$tbl+$acc12],$acc12 sll $t0,3,$acc15 and $acc14,2040,$acc14 ldx [$tbl+$acc13],$acc13 srlx $acc1,8,$acc1 and $acc15,2040,$acc15 ldx [$tbl+$acc14],$acc14 ! srlx $acc2,16,$acc2 xor $acc0,$s0,$s0 ldx [$tbl+$acc15],$acc15 srlx $acc3,24,$acc3 xor $acc1,$s0,$s0 ld [$key+16],$t0 fmovs %f0,%f0 srlx $acc5,8,$acc5 ! xor $acc2,$s0,$s0 ld [$key+20],$t1 srlx $acc6,16,$acc6 xor $acc3,$s0,$s0 ld [$key+24],$t2 srlx $acc7,24,$acc7 xor $acc4,$s1,$s1 ld [$key+28],$t3 ! srlx $acc9,8,$acc9 xor $acc5,$s1,$s1 ldx [$tbl+2048+0],%g0 ! prefetch td4 srlx $acc10,16,$acc10 xor $acc6,$s1,$s1 ldx [$tbl+2048+32],%g0 ! prefetch td4 srlx $acc11,24,$acc11 xor $acc7,$s1,$s1 ldx [$tbl+2048+64],%g0 ! prefetch td4 srlx $acc13,8,$acc13 xor $acc8,$s2,$s2 ldx [$tbl+2048+96],%g0 ! prefetch td4 srlx $acc14,16,$acc14 ! xor $acc9,$s2,$s2 ldx [$tbl+2048+128],%g0 ! prefetch td4 srlx $acc15,24,$acc15 xor $acc10,$s2,$s2 ldx [$tbl+2048+160],%g0 ! prefetch td4 srl $s0,21,$acc0 xor $acc11,$s2,$s2 ldx [$tbl+2048+192],%g0 ! prefetch td4 xor $acc12,$acc14,$acc14 xor $acc13,$s3,$s3 ldx [$tbl+2048+224],%g0 ! prefetch td4 and $acc0,2040,$acc0 ! xor $acc14,$s3,$s3 xor $acc15,$s3,$s3 ba .Ldec_loop srl $s3,13,$acc1.align 32.Ldec_last: srlx $acc1,8,$acc1 ! xor $acc0,$t0,$t0 ld [$key+0],$s0 srlx $acc2,16,$acc2 xor $acc1,$t0,$t0 ld [$key+4],$s1 srlx $acc3,24,$acc3 xor $acc2,$t0,$t0 ld [$key+8],$s2 ! srlx $acc5,8,$acc5 xor $acc3,$t0,$t0 ld [$key+12],$s3 srlx $acc6,16,$acc6 xor $acc4,$t1,$t1 srlx $acc7,24,$acc7 xor $acc5,$t1,$t1 srlx $acc9,8,$acc9 ! xor $acc6,$t1,$t1 srlx $acc10,16,$acc10 xor $acc7,$t1,$t1 srlx $acc11,24,$acc11 xor $acc8,$t2,$t2 srlx $acc13,8,$acc13 xor $acc9,$t2,$t2 srlx $acc14,16,$acc14 ! xor $acc10,$t2,$t2 srlx $acc15,24,$acc15 xor $acc11,$t2,$t2 xor $acc12,$acc14,$acc14 xor $acc13,$t3,$t3 srl $t0,24,$acc0 xor $acc14,$t3,$t3 xor $acc15,$t3,$t3 ! srl $t3,16,$acc1 srl $t2,8,$acc2 and $acc1,255,$acc1 ldub [$rounds+$acc0],$acc0 srl $t1,24,$acc4 and $acc2,255,$acc2 ldub [$rounds+$acc1],$acc1 srl $t0,16,$acc5 ! and $t1,255,$acc3 ldub [$rounds+$acc2],$acc2 ldub [$rounds+$acc3],$acc3 srl $t3,8,$acc6 and $acc5,255,$acc5 ldub [$rounds+$acc4],$acc4 fmovs %f0,%f0 srl $t2,24,$acc8 ! and $acc6,255,$acc6 ldub [$rounds+$acc5],$acc5 srl $t1,16,$acc9 and $t2,255,$acc7 ldub [$rounds+$acc6],$acc6 ldub [$rounds+$acc7],$acc7 fmovs %f0,%f0 srl $t0,8,$acc10 ! and $acc9,255,$acc9 ldub [$rounds+$acc8],$acc8 srl $t3,24,$acc12 and $acc10,255,$acc10 ldub [$rounds+$acc9],$acc9 srl $t2,16,$acc13 and $t3,255,$acc11 ldub [$rounds+$acc10],$acc10 ! srl $t1,8,$acc14 and $acc13,255,$acc13 ldub [$rounds+$acc11],$acc11 ldub [$rounds+$acc12],$acc12 and $acc14,255,$acc14 ldub [$rounds+$acc13],$acc13 and $t0,255,$acc15 ldub [$rounds+$acc14],$acc14 ! sll $acc0,24,$acc0 xor $acc3,$s0,$s0 ldub [$rounds+$acc15],$acc15 sll $acc1,16,$acc1 xor $acc0,$s0,$s0 ldx [%sp+$bias+$frame+0],%i7 ! restore return address fmovs %f0,%f0 sll $acc2,8,$acc2 ! xor $acc1,$s0,$s0 sll $acc4,24,$acc4 xor $acc2,$s0,$s0 sll $acc5,16,$acc5 xor $acc7,$s1,$s1 sll $acc6,8,$acc6 xor $acc4,$s1,$s1 sll $acc8,24,$acc8 ! xor $acc5,$s1,$s1 sll $acc9,16,$acc9 xor $acc11,$s2,$s2 sll $acc10,8,$acc10 xor $acc6,$s1,$s1 sll $acc12,24,$acc12 xor $acc8,$s2,$s2 sll $acc13,16,$acc13 ! xor $acc9,$s2,$s2 sll $acc14,8,$acc14 xor $acc10,$s2,$s2 xor $acc12,$acc14,$acc14 xor $acc13,$s3,$s3 xor $acc14,$s3,$s3 xor $acc15,$s3,$s3 ret restore.type _sparcv9_AES_decrypt,#function.size _sparcv9_AES_decrypt,(.-_sparcv9_AES_decrypt).align 32.globl AES_decryptAES_decrypt: or %o0,%o1,%g1 andcc %g1,3,%g0 bnz,pn %xcc,.Lunaligned_dec save %sp,-$frame,%sp ld [%i0+0],%o0 ld [%i0+4],%o1 ld [%i0+8],%o2 ld [%i0+12],%o31: call .+8 add %o7,AES_Td-1b,%o4 call _sparcv9_AES_decrypt mov %i2,%o5 st %o0,[%i1+0] st %o1,[%i1+4] st %o2,[%i1+8] st %o3,[%i1+12] ret restore.align 32.Lunaligned_dec: ldub [%i0+0],%l0 ldub [%i0+1],%l1 ldub [%i0+2],%l2 sll %l0,24,%l0 ldub [%i0+3],%l3 sll %l1,16,%l1 ldub [%i0+4],%l4 sll %l2,8,%l2 or %l1,%l0,%l0 ldub [%i0+5],%l5 sll %l4,24,%l4 or %l3,%l2,%l2 ldub [%i0+6],%l6 sll %l5,16,%l5 or %l0,%l2,%o0 ldub [%i0+7],%l7 sll %l6,8,%l6 or %l5,%l4,%l4 ldub [%i0+8],%l0 or %l7,%l6,%l6 ldub [%i0+9],%l1 or %l4,%l6,%o1 ldub [%i0+10],%l2 sll %l0,24,%l0 ldub [%i0+11],%l3 sll %l1,16,%l1 ldub [%i0+12],%l4 sll %l2,8,%l2 or %l1,%l0,%l0 ldub [%i0+13],%l5 sll %l4,24,%l4 or %l3,%l2,%l2 ldub [%i0+14],%l6 sll %l5,16,%l5 or %l0,%l2,%o2 ldub [%i0+15],%l7 sll %l6,8,%l6 or %l5,%l4,%l4 or %l7,%l6,%l6 or %l4,%l6,%o31: call .+8 add %o7,AES_Td-1b,%o4 call _sparcv9_AES_decrypt mov %i2,%o5 srl %o0,24,%l0 srl %o0,16,%l1 stb %l0,[%i1+0] srl %o0,8,%l2 stb %l1,[%i1+1] stb %l2,[%i1+2] srl %o1,24,%l4 stb %o0,[%i1+3] srl %o1,16,%l5 stb %l4,[%i1+4] srl %o1,8,%l6 stb %l5,[%i1+5] stb %l6,[%i1+6] srl %o2,24,%l0 stb %o1,[%i1+7] srl %o2,16,%l1 stb %l0,[%i1+8] srl %o2,8,%l2 stb %l1,[%i1+9] stb %l2,[%i1+10] srl %o3,24,%l4 stb %o2,[%i1+11] srl %o3,16,%l5 stb %l4,[%i1+12] srl %o3,8,%l6 stb %l5,[%i1+13] stb %l6,[%i1+14] stb %o3,[%i1+15] ret restore.type AES_decrypt,#function.size AES_decrypt,(.-AES_decrypt)___# fmovs instructions substituting for FP nops were originally added# to meet specific instruction alignment requirements to maximize ILP.# As UltraSPARC T1, a.k.a. Niagara, has shared FPU, FP nops can have# undesired effect, so just omit them and sacrifice some portion of# percent in performance...$code =~ s/fmovs.*$//gem;print $code;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -