PK���ȼRY��������€��� �v3.phpUT �øŽg‰gñ“gux �õ��õ��½T]kÛ0}߯pEhìâÙM7X‰çv%”v0֐µ{)Aå:6S$!ÉMJèߕ?R÷!>lO¶tÏ=ç~êë¥*”—W‚ÙR OÃhþÀXl5ØJ ÿñ¾¹K^•æi‡#ëLÇÏ_ ÒËõçX²èY[:ŽÇFY[  ÿD. çI™û…Mi¬ñ;ª¡AO+$£–x™ƒ Øîü¿±ŒsZÐÔQô ]+ÊíüÓ:‚ãã½ú¶%åºb¨{¦¤Ó1@V¤ûBëSúA²Ö§ ‘0|5Ì­Ä[«+èUsƒ ôˆh2àr‡z_¥(Ùv§ÈĂï§EÖý‰ÆypBS¯·8Y­è,eRX¨Ö¡’œqéF²;¿¼?Ø?Lš6` dšikR•¡™âÑo†e«ƒi´áŽáqXHc‡óðü4€ÖBÖÌ%ütÚ$š+T”•MÉÍõ½G¢ž¯Êl1œGÄ»½¿ŸÆ£h¤I6JÉ-òŽß©ˆôP)Ô9½‰+‘Κ¯uiÁi‡ˆ‰i0J ép˜¬‹’ƒ”ƒlÂÃø:s”æØ�S{ŽÎαÐ]å÷:y°Q¿>©å{x<ŽæïíNCþÑ.Mf?¨«2ý}=ûõýî'=£§ÿu•Ü(—¾IIa­"éþ@¶�¿ä9?^-qìÇÞôvŠeÈc ðlacã®xèÄ'®âd¶ çˆSEæódP/ÍÆv{Ô)Ó ?>…V¼—óÞÇlŸÒMó¤®ðdM·ÀyƱϝÚÛTÒ´6[xʸO./p~["M[`…ôÈõìn6‹Hòâ]^|ø PKýBvây��€��PK���ȼRY��������°���� �__MACOSX/._v3.phpUT �øŽg‰gþ“gux �õ��õ��c`cg`b`ðMLVðVˆP€'qƒøˆŽ!!AP&HÇ %PDF-1.7 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [6 0 R ] /Count 1 /Resources << /ProcSet 4 0 R /Font << /F1 8 0 R /F2 9 0 R >> >> /MediaBox [0.000 0.000 595.280 841.890] >> endobj 4 0 obj [/PDF /Text ] endobj 5 0 obj << /Producer (���d�o�m�p�d�f� �2�.�0�.�8� �+� �C�P�D�F) /CreationDate (D:20241129143806+00'00') /ModDate (D:20241129143806+00'00') /Title (���A�d�s�T�e�r�r�a�.�c�o�m� �i�n�v�o�i�c�e) >> endobj 6 0 obj << /Type /Page /MediaBox [0.000 0.000 595.280 841.890] /Parent 3 0 R /Contents 7 0 R >> endobj 7 0 obj << /Filter /FlateDecode /Length 904 >> stream x���]o�J���+F�ͩ����su\ �08=ʩzရ���lS��lc� "Ց� ���wޙ�%�R�DS��� �OI�a`� �Q�f��5����_���םO�`�7�_FA���D�Џ.j�a=�j����>��n���R+�P��l�rH�{0��w��0��=W�2D ����G���I�>�_B3ed�H�yJ�G>/��ywy�fk��%�$�2.��d_�h����&)b0��"[\B��*_.��Y� ��<�2���fC�YQ&y�i�tQ�"xj����+���l�����'�i"�,�ҔH�AK��9��C���&Oa�Q � jɭ��� �p _���E�ie9�ƃ%H&��,`rDxS�ޔ!�(�X!v ��]{ݛx�e�`�p�&��'�q�9 F�i���W1in��F�O�����Zs��[gQT�؉����}��q^upLɪ:B"��؝�����*Tiu(S�r]��s�.��s9n�N!K!L�M�?�*[��N�8��c��ۯ�b�� ��� �YZ���SR3�n�����lPN��P�;��^�]�!'�z-���ӊ���/��껣��4�l(M�E�QL��X ��~���G��M|�����*��~�;/=N4�-|y�`�i�\�e�T�<���L��G}�"В�J^���q��"X�?(V�ߣXۆ{��H[����P�� �c���kc�Z�9v�����? �a��R�h|��^�k�D4W���?Iӊ�]<��4�)$wdat���~�����������|�L��x�p|N�*��E� �/4�Qpi�x.>��d����,M�y|4^�Ż��8S/޾���uQe���D�y� ��ͧH�����j�wX � �&z� endstream endobj 8 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj 9 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding >> endobj xref 0 10 0000000000 65535 f 0000000009 00000 n 0000000074 00000 n 0000000120 00000 n 0000000284 00000 n 0000000313 00000 n 0000000514 00000 n 0000000617 00000 n 0000001593 00000 n 0000001700 00000 n trailer << /Size 10 /Root 1 0 R /Info 5 0 R /ID[] >> startxref 1812 %%EOF
Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 128

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 129

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 130

Warning: Cannot modify header information - headers already sent by (output started at /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php:1) in /home/u866776246/domains/wisatalogung.com/public_html/uploads/produk/1775157541_x.php on line 131
// Copyright 2014 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package ppc64asm import ( "encoding/binary" "fmt" "log" ) const debugDecode = false const prefixOpcode = 1 // instFormat is a decoding rule for one specific instruction form. // an instruction ins matches the rule if ins&Mask == Value // DontCare bits should be zero, but the machine might not reject // ones in those bits, they are mainly reserved for future expansion // of the instruction set. // The Args are stored in the same order as the instruction manual. // // Prefixed instructions are stored as: // // prefix << 32 | suffix, // // Regular instructions are: // // inst << 32 type instFormat struct { Op Op Mask uint64 Value uint64 DontCare uint64 Args [6]*argField } // argField indicate how to decode an argument to an instruction. // First parse the value from the BitFields, shift it left by Shift // bits to get the actual numerical value. type argField struct { Type ArgType Shift uint8 BitFields } // Parse parses the Arg out from the given binary instruction i. func (a argField) Parse(i [2]uint32) Arg { switch a.Type { default: return nil case TypeUnknown: return nil case TypeReg: return R0 + Reg(a.BitFields.Parse(i)) case TypeCondRegBit: return Cond0LT + CondReg(a.BitFields.Parse(i)) case TypeCondRegField: return CR0 + CondReg(a.BitFields.Parse(i)) case TypeFPReg: return F0 + Reg(a.BitFields.Parse(i)) case TypeVecReg: return V0 + Reg(a.BitFields.Parse(i)) case TypeVecSReg: return VS0 + Reg(a.BitFields.Parse(i)) case TypeVecSpReg: return VS0 + Reg(a.BitFields.Parse(i))*2 case TypeMMAReg: return A0 + Reg(a.BitFields.Parse(i)) case TypeSpReg: return SpReg(a.BitFields.Parse(i)) case TypeImmSigned: return Imm(a.BitFields.ParseSigned(i) << a.Shift) case TypeImmUnsigned: return Imm(a.BitFields.Parse(i) << a.Shift) case TypePCRel: return PCRel(a.BitFields.ParseSigned(i) << a.Shift) case TypeLabel: return Label(a.BitFields.ParseSigned(i) << a.Shift) case TypeOffset: return Offset(a.BitFields.ParseSigned(i) << a.Shift) case TypeNegOffset: // An oddball encoding of offset for hashchk and similar. // e.g hashchk offset is 0b1111111000000000 | DX << 8 | D << 3 off := a.BitFields.ParseSigned(i) << a.Shift neg := int64(-1) << (int(a.Shift) + a.BitFields.NumBits()) return Offset(neg | off) } } type ArgType int8 const ( TypeUnknown ArgType = iota TypePCRel // PC-relative address TypeLabel // absolute address TypeReg // integer register TypeCondRegBit // conditional register bit (0-31) TypeCondRegField // conditional register field (0-7) TypeFPReg // floating point register TypeVecReg // vector register TypeVecSReg // VSX register TypeVecSpReg // VSX register pair (even only encoding) TypeMMAReg // MMA register TypeSpReg // special register (depends on Op) TypeImmSigned // signed immediate TypeImmUnsigned // unsigned immediate/flag/mask, this is the catch-all type TypeOffset // signed offset in load/store TypeNegOffset // A negative 16 bit value 0b1111111xxxxx000 encoded as 0bxxxxx (e.g in the hashchk instruction) TypeLast // must be the last one ) func (t ArgType) String() string { switch t { default: return fmt.Sprintf("ArgType(%d)", int(t)) case TypeUnknown: return "Unknown" case TypeReg: return "Reg" case TypeCondRegBit: return "CondRegBit" case TypeCondRegField: return "CondRegField" case TypeFPReg: return "FPReg" case TypeVecReg: return "VecReg" case TypeVecSReg: return "VecSReg" case TypeVecSpReg: return "VecSpReg" case TypeMMAReg: return "MMAReg" case TypeSpReg: return "SpReg" case TypeImmSigned: return "ImmSigned" case TypeImmUnsigned: return "ImmUnsigned" case TypePCRel: return "PCRel" case TypeLabel: return "Label" case TypeOffset: return "Offset" case TypeNegOffset: return "NegOffset" } } func (t ArgType) GoString() string { s := t.String() if t > 0 && t < TypeLast { return "Type" + s } return s } var ( // Errors errShort = fmt.Errorf("truncated instruction") errUnknown = fmt.Errorf("unknown instruction") ) var decoderCover []bool // Decode decodes the leading bytes in src as a single instruction using // byte order ord. func Decode(src []byte, ord binary.ByteOrder) (inst Inst, err error) { if len(src) < 4 { return inst, errShort } if decoderCover == nil { decoderCover = make([]bool, len(instFormats)) } inst.Len = 4 ui_extn := [2]uint32{ord.Uint32(src[:inst.Len]), 0} ui := uint64(ui_extn[0]) << 32 inst.Enc = ui_extn[0] opcode := inst.Enc >> 26 if opcode == prefixOpcode { // This is a prefixed instruction inst.Len = 8 if len(src) < 8 { return inst, errShort } // Merge the suffixed word. ui_extn[1] = ord.Uint32(src[4:inst.Len]) ui |= uint64(ui_extn[1]) inst.SuffixEnc = ui_extn[1] } for i, iform := range instFormats { if ui&iform.Mask != iform.Value { continue } if ui&iform.DontCare != 0 { if debugDecode { log.Printf("Decode(%#x): unused bit is 1 for Op %s", ui, iform.Op) } // to match GNU objdump (libopcodes), we ignore don't care bits } for i, argfield := range iform.Args { if argfield == nil { break } inst.Args[i] = argfield.Parse(ui_extn) } inst.Op = iform.Op if debugDecode { log.Printf("%#x: search entry %d", ui, i) continue } break } if inst.Op == 0 && inst.Enc != 0 { return inst, errUnknown } return inst, nil }