Zi Shen Lim
27f95ba59b
arm64: introduce aarch64_insn_gen_data3()
...
Introduce function to generate data-processing (3 source) instructions.
Signed-off-by: Zi Shen Lim <zlim.lnx@gmail.com >
Acked-by: Will Deacon <will.deacon@arm.com >
Signed-off-by: Will Deacon <will.deacon@arm.com >
2014-09-08 14:39:20 +01:00
Zi Shen Lim
6481063989
arm64: introduce aarch64_insn_gen_data2()
...
Introduce function to generate data-processing (2 source) instructions.
Signed-off-by: Zi Shen Lim <zlim.lnx@gmail.com >
Acked-by: Will Deacon <will.deacon@arm.com >
Signed-off-by: Will Deacon <will.deacon@arm.com >
2014-09-08 14:39:20 +01:00
Zi Shen Lim
546dd36b44
arm64: introduce aarch64_insn_gen_data1()
...
Introduce function to generate data-processing (1 source) instructions.
Signed-off-by: Zi Shen Lim <zlim.lnx@gmail.com >
Acked-by: Will Deacon <will.deacon@arm.com >
Signed-off-by: Will Deacon <will.deacon@arm.com >
2014-09-08 14:39:20 +01:00
Zi Shen Lim
5fdc639a7a
arm64: introduce aarch64_insn_gen_add_sub_shifted_reg()
...
Introduce function to generate add/subtract (shifted register)
instructions.
Signed-off-by: Zi Shen Lim <zlim.lnx@gmail.com >
Acked-by: Will Deacon <will.deacon@arm.com >
Signed-off-by: Will Deacon <will.deacon@arm.com >
2014-09-08 14:39:20 +01:00
Zi Shen Lim
6098f2d5c7
arm64: introduce aarch64_insn_gen_movewide()
...
Introduce function to generate move wide (immediate) instructions.
Signed-off-by: Zi Shen Lim <zlim.lnx@gmail.com >
Acked-by: Will Deacon <will.deacon@arm.com >
Signed-off-by: Will Deacon <will.deacon@arm.com >
2014-09-08 14:39:20 +01:00
Zi Shen Lim
4a89d2c98e
arm64: introduce aarch64_insn_gen_bitfield()
...
Introduce function to generate bitfield instructions.
Signed-off-by: Zi Shen Lim <zlim.lnx@gmail.com >
Acked-by: Will Deacon <will.deacon@arm.com >
Signed-off-by: Will Deacon <will.deacon@arm.com >
2014-09-08 14:39:20 +01:00
Zi Shen Lim
9951a157fa
arm64: introduce aarch64_insn_gen_add_sub_imm()
...
Introduce function to generate add/subtract (immediate) instructions.
Signed-off-by: Zi Shen Lim <zlim.lnx@gmail.com >
Acked-by: Will Deacon <will.deacon@arm.com >
Signed-off-by: Will Deacon <will.deacon@arm.com >
2014-09-08 14:39:20 +01:00
Zi Shen Lim
1bba567d0f
arm64: introduce aarch64_insn_gen_load_store_pair()
...
Introduce function to generate load/store pair instructions.
Signed-off-by: Zi Shen Lim <zlim.lnx@gmail.com >
Acked-by: Will Deacon <will.deacon@arm.com >
Signed-off-by: Will Deacon <will.deacon@arm.com >
2014-09-08 14:39:20 +01:00
Zi Shen Lim
17cac17988
arm64: introduce aarch64_insn_gen_load_store_reg()
...
Introduce function to generate load/store (register offset)
instructions.
Signed-off-by: Zi Shen Lim <zlim.lnx@gmail.com >
Acked-by: Will Deacon <will.deacon@arm.com >
Signed-off-by: Will Deacon <will.deacon@arm.com >
2014-09-08 14:39:19 +01:00
Zi Shen Lim
345e0d35ec
arm64: introduce aarch64_insn_gen_cond_branch_imm()
...
Introduce function to generate conditional branch (immediate)
instructions.
Signed-off-by: Zi Shen Lim <zlim.lnx@gmail.com >
Acked-by: Will Deacon <will.deacon@arm.com >
Signed-off-by: Will Deacon <will.deacon@arm.com >
2014-09-08 14:39:19 +01:00
Zi Shen Lim
c0cafbae20
arm64: introduce aarch64_insn_gen_branch_reg()
...
Introduce function to generate unconditional branch (register)
instructions.
Signed-off-by: Zi Shen Lim <zlim.lnx@gmail.com >
Acked-by: Will Deacon <will.deacon@arm.com >
Signed-off-by: Will Deacon <will.deacon@arm.com >
2014-09-08 14:39:19 +01:00
Zi Shen Lim
617d2fbc45
arm64: introduce aarch64_insn_gen_comp_branch_imm()
...
Introduce function to generate compare & branch (immediate)
instructions.
Signed-off-by: Zi Shen Lim <zlim.lnx@gmail.com >
Acked-by: Will Deacon <will.deacon@arm.com >
Signed-off-by: Will Deacon <will.deacon@arm.com >
2014-09-08 14:39:19 +01:00
Jiang Liu
5c5bf25d4f
arm64: introduce aarch64_insn_gen_{nop|branch_imm}() helper functions
...
Introduce aarch64_insn_gen_{nop|branch_imm}() helper functions, which
will be used to implement jump label on ARM64.
Reviewed-by: Will Deacon <will.deacon@arm.com >
Signed-off-by: Jiang Liu <liuj97@gmail.com >
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com >
2014-01-08 15:21:29 +00:00
Jiang Liu
c84fced8d9
arm64: move encode_insn_immediate() from module.c to insn.c
...
Function encode_insn_immediate() will be used by other instruction
manipulate related functions, so move it into insn.c and rename it
as aarch64_insn_encode_immediate().
Reviewed-by: Will Deacon <will.deacon@arm.com >
Signed-off-by: Jiang Liu <liuj97@gmail.com >
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com >
2014-01-08 15:21:29 +00:00
Jiang Liu
ae16480785
arm64: introduce interfaces to hotpatch kernel and module code
...
Introduce three interfaces to patch kernel and module code:
aarch64_insn_patch_text_nosync():
patch code without synchronization, it's caller's responsibility
to synchronize all CPUs if needed.
aarch64_insn_patch_text_sync():
patch code and always synchronize with stop_machine()
aarch64_insn_patch_text():
patch code and synchronize with stop_machine() if needed
Reviewed-by: Will Deacon <will.deacon@arm.com >
Signed-off-by: Jiang Liu <liuj97@gmail.com >
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com >
2014-01-08 15:21:29 +00:00
Jiang Liu
b11a64a48c
arm64: introduce basic aarch64 instruction decoding helpers
...
Introduce basic aarch64 instruction decoding helper
aarch64_get_insn_class() and aarch64_insn_hotpatch_safe().
Reviewed-by: Will Deacon <will.deacon@arm.com >
Signed-off-by: Jiang Liu <liuj97@gmail.com >
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com >
2014-01-08 15:21:28 +00:00