€•ó<Œsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ2/translations/zh_CN/arch/arm64/legacy_instructions”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/zh_TW/arch/arm64/legacy_instructions”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/it_IT/arch/arm64/legacy_instructions”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/ja_JP/arch/arm64/legacy_instructions”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/ko_KR/arch/arm64/legacy_instructions”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ2/translations/sp_SP/arch/arm64/legacy_instructions”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒLegacy instructions”h]”hŒLegacy instructions”…””}”(hh¨hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hh£hžhhŸŒL/var/lib/git/docbuild/linux/Documentation/arch/arm64/legacy_instructions.rst”h KubhŒ paragraph”“”)”}”(hX=The arm64 port of the Linux kernel provides infrastructure to support emulation of instructions which have been deprecated, or obsoleted in the architecture. The infrastructure code uses undefined instruction hooks to support emulation. Where available it also allows turning on the instruction execution in hardware.”h]”hX=The arm64 port of the Linux kernel provides infrastructure to support emulation of instructions which have been deprecated, or obsoleted in the architecture. The infrastructure code uses undefined instruction hooks to support emulation. Where available it also allows turning on the instruction execution in hardware.”…””}”(hh¹hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khh£hžhubh¸)”}”(hŒ½The emulation mode can be controlled by writing to sysctl nodes (/proc/sys/abi). The following explains the different execution behaviours and the corresponding values of the sysctl nodes -”h]”hŒ½The emulation mode can be controlled by writing to sysctl nodes (/proc/sys/abi). The following explains the different execution behaviours and the corresponding values of the sysctl nodes -”…””}”(hhÇhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K hh£hžhubhŒ bullet_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒŠUndef Value: 0 Generates undefined instruction abort. Default for instructions that have been obsoleted in the architecture, e.g., SWP ”h]”(hŒdefinition_list”“”)”}”(hhh]”hŒdefinition_list_item”“”)”}”(hŒUndef Value: 0 ”h]”(hŒterm”“”)”}”(hŒUndef”h]”hŒUndef”…””}”(hhíhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhŸh¶h KhhçubhŒ definition”“”)”}”(hhh]”h¸)”}”(hŒValue: 0”h]”hŒValue: 0”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khhýubah}”(h]”h ]”h"]”h$]”h&]”uh1hûhhçubeh}”(h]”h ]”h"]”h$]”h&]”uh1håhŸh¶h Khhâubah}”(h]”h ]”h"]”h$]”h&]”uh1hàhhÜubh¸)”}”(hŒwGenerates undefined instruction abort. Default for instructions that have been obsoleted in the architecture, e.g., SWP”h]”hŒwGenerates undefined instruction abort. Default for instructions that have been obsoleted in the architecture, e.g., SWP”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KhhÜubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÚhh×hžhhŸh¶h NubhÛ)”}”(hŒóEmulate Value: 1 Uses software emulation. To aid migration of software, in this mode usage of emulated instruction is traced as well as rate limited warnings are issued. This is the default for deprecated instructions, .e.g., CP15 barriers ”h]”(há)”}”(hhh]”hæ)”}”(hŒEmulate Value: 1 ”h]”(hì)”}”(hŒEmulate”h]”hŒEmulate”…””}”(hj?hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhŸh¶h Khj;ubhü)”}”(hhh]”h¸)”}”(hŒValue: 1”h]”hŒValue: 1”…””}”(hjPhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KhjMubah}”(h]”h ]”h"]”h$]”h&]”uh1hûhj;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1håhŸh¶h Khj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1hàhj4ubh¸)”}”(hŒÞUses software emulation. To aid migration of software, in this mode usage of emulated instruction is traced as well as rate limited warnings are issued. This is the default for deprecated instructions, .e.g., CP15 barriers”h]”hŒÞUses software emulation. To aid migration of software, in this mode usage of emulated instruction is traced as well as rate limited warnings are issued. This is the default for deprecated instructions, .e.g., CP15 barriers”…””}”(hjphžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khj4ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÚhh×hžhhŸh¶h NubhÛ)”}”(hXYHardware Execution Value: 2 Although marked as deprecated, some implementations may support the enabling/disabling of hardware support for the execution of these instructions. Using hardware execution generally provides better performance, but at the loss of ability to gather runtime statistics about the use of the deprecated instructions. ”h]”(há)”}”(hhh]”hæ)”}”(hŒHardware Execution Value: 2 ”h]”(hì)”}”(hŒHardware Execution”h]”hŒHardware Execution”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhŸh¶h Khj‹ubhü)”}”(hhh]”h¸)”}”(hŒValue: 2”h]”hŒValue: 2”…””}”(hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1hûhj‹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1håhŸh¶h Khjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1hàhj„ubh¸)”}”(hX9Although marked as deprecated, some implementations may support the enabling/disabling of hardware support for the execution of these instructions. Using hardware execution generally provides better performance, but at the loss of ability to gather runtime statistics about the use of the deprecated instructions.”h]”hX9Although marked as deprecated, some implementations may support the enabling/disabling of hardware support for the execution of these instructions. Using hardware execution generally provides better performance, but at the loss of ability to gather runtime statistics about the use of the deprecated instructions.”…””}”(hjÀhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K hj„ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÚhh×hžhhŸh¶h Nubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ*”uh1hÕhŸh¶h Khh£hžhubh¸)”}”(hŒ¼The default mode depends on the status of the instruction in the architecture. Deprecated instructions should default to emulation while obsolete instructions must be undefined by default.”h]”hŒ¼The default mode depends on the status of the instruction in the architecture. Deprecated instructions should default to emulation while obsolete instructions must be undefined by default.”…””}”(hjÜhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K&hh£hžhubh¸)”}”(hŒwNote: Instruction emulation may not be possible in all cases. See individual instruction notes for further information.”h]”hŒwNote: Instruction emulation may not be possible in all cases. See individual instruction notes for further information.”…””}”(hjêhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K*hh£hžhubh¢)”}”(hhh]”(h§)”}”(hŒSupported legacy instructions”h]”hŒSupported legacy instructions”…””}”(hjûhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hjøhžhhŸh¶h K.ubhÖ)”}”(hhh]”hÛ)”}”(hŒSWP{B} ”h]”h¸)”}”(hŒSWP{B}”h]”hŒSWP{B}”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K/hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhj hžhhŸh¶h Nubah}”(h]”h ]”h"]”h$]”h&]”jÚjÛuh1hÕhŸh¶h K/hjøhžhubhŒ field_list”“”)”}”(hhh]”(hŒfield”“”)”}”(hhh]”(hŒ field_name”“”)”}”(hŒNode”h]”hŒNode”…””}”(hj6hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj1hŸh¶h KubhŒ field_body”“”)”}”(hŒ/proc/sys/abi/swp”h]”h¸)”}”(hjHh]”hŒ/proc/sys/abi/swp”…””}”(hjJhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K1hjFubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j/hŸh¶h K1hj,hžhubj0)”}”(hhh]”(j5)”}”(hŒStatus”h]”hŒStatus”…””}”(hjfhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjchŸh¶h KubjE)”}”(hŒObsolete”h]”h¸)”}”(hjvh]”hŒObsolete”…””}”(hjxhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K2hjtubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjcubeh}”(h]”h ]”h"]”h$]”h&]”uh1j/hŸh¶h K2hj,hžhubj0)”}”(hhh]”(j5)”}”(hŒDefault”h]”hŒDefault”…””}”(hj”hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hj‘hŸh¶h KubjE)”}”(hŒ Undef (0) ”h]”h¸)”}”(hŒ Undef (0)”h]”hŒ Undef (0)”…””}”(hj¦hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K3hj¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhj‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j/hŸh¶h K3hj,hžhubeh}”(h]”h ]”h"]”h$]”h&]”uh1j*hjøhžhhŸh¶h K1ubhÖ)”}”(hhh]”hÛ)”}”(hŒCP15 Barriers ”h]”h¸)”}”(hŒ CP15 Barriers”h]”hŒ CP15 Barriers”…””}”(hjÍhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K5hjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhjÆhžhhŸh¶h Nubah}”(h]”h ]”h"]”h$]”h&]”jÚjÛuh1hÕhŸh¶h K5hjøhžhubj+)”}”(hhh]”(j0)”}”(hhh]”(j5)”}”(hŒNode”h]”hŒNode”…””}”(hjíhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjêhŸh¶h KubjE)”}”(hŒ/proc/sys/abi/cp15_barrier”h]”h¸)”}”(hjýh]”hŒ/proc/sys/abi/cp15_barrier”…””}”(hjÿhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K7hjûubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjêubeh}”(h]”h ]”h"]”h$]”h&]”uh1j/hŸh¶h K7hjçhžhubj0)”}”(hhh]”(j5)”}”(hŒStatus”h]”hŒStatus”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjhŸh¶h KubjE)”}”(hŒ Deprecated”h]”h¸)”}”(hj+h]”hŒ Deprecated”…””}”(hj-hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K8hj)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j/hŸh¶h K8hjçhžhubj0)”}”(hhh]”(j5)”}”(hŒDefault”h]”hŒDefault”…””}”(hjIhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjFhŸh¶h KubjE)”}”(hŒ Emulate (1) ”h]”h¸)”}”(hŒ Emulate (1)”h]”hŒ Emulate (1)”…””}”(hj[hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K9hjWubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjFubeh}”(h]”h ]”h"]”h$]”h&]”uh1j/hŸh¶h K9hjçhžhubeh}”(h]”h ]”h"]”h$]”h&]”uh1j*hjøhžhhŸh¶h K7ubhÖ)”}”(hhh]”hÛ)”}”(hŒSETEND ”h]”h¸)”}”(hŒSETEND”h]”hŒSETEND”…””}”(hj‚hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K;hj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÚhj{hžhhŸh¶h Nubah}”(h]”h ]”h"]”h$]”h&]”jÚjÛuh1hÕhŸh¶h K;hjøhžhubj+)”}”(hhh]”(j0)”}”(hhh]”(j5)”}”(hŒNode”h]”hŒNode”…””}”(hj¢hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjŸhŸh¶h KubjE)”}”(hŒ/proc/sys/abi/setend”h]”h¸)”}”(hj²h]”hŒ/proc/sys/abi/setend”…””}”(hj´hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K=hj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjŸubeh}”(h]”h ]”h"]”h$]”h&]”uh1j/hŸh¶h K=hjœhžhubj0)”}”(hhh]”(j5)”}”(hŒStatus”h]”hŒStatus”…””}”(hjÐhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjÍhŸh¶h KubjE)”}”(hŒ Deprecated”h]”h¸)”}”(hjàh]”hŒ Deprecated”…””}”(hjâhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K>hjÞubah}”(h]”h ]”h"]”h$]”h&]”uh1jDhjÍubeh}”(h]”h ]”h"]”h$]”h&]”uh1j/hŸh¶h K>hjœhžhubj0)”}”(hhh]”(j5)”}”(hŒDefault”h]”hŒDefault”…””}”(hjþhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j4hjûhŸh¶h KubjE)”}”(hXEmulate (1)* Note: All the cpus on the system must have mixed endian support at EL0 for this feature to be enabled. If a new CPU - which doesn't support mixed endian - is hotplugged in after this feature has been enabled, there could be unexpected results in the application.”h]”(h¸)”}”(hŒ Emulate (1)*”h]”hŒ Emulate (1)*”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K?hj ubh¸)”}”(hXNote: All the cpus on the system must have mixed endian support at EL0 for this feature to be enabled. If a new CPU - which doesn't support mixed endian - is hotplugged in after this feature has been enabled, there could be unexpected results in the application.”h]”hXNote: All the cpus on the system must have mixed endian support at EL0 for this feature to be enabled. If a new CPU - which doesn’t support mixed endian - is hotplugged in after this feature has been enabled, there could be unexpected results in the application.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KAhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jDhjûubeh}”(h]”h ]”h"]”h$]”h&]”uh1j/hŸh¶h K?hjœhžhubeh}”(h]”h ]”h"]”h$]”h&]”uh1j*hjøhžhhŸh¶h K=ubeh}”(h]”Œsupported-legacy-instructions”ah ]”h"]”Œsupported legacy instructions”ah$]”h&]”uh1h¡hh£hžhhŸh¶h K.ubeh}”(h]”Œlegacy-instructions”ah ]”h"]”Œlegacy instructions”ah$]”h&]”uh1h¡hhhžhhŸh¶h Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”h¶uh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(h¦NŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jqŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h¶Œ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jKjHjCj@uŒ nametypes”}”(jK‰jC‰uh}”(jHh£j@jøuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhžhub.