Lines Matching +full:self +full:- +full:working +full:- +full:mode
1 // SPDX-License-Identifier: GPL-2.0
32 if ((a >> L1_CACHE_SHIFT) != ((a + len - 1) >> L1_CACHE_SHIFT)) in instruction_align_assert()
43 * N N <.d> delay slot mode
50 u32 u_offset = target - pcl; in arc_gen_branch()
54 * Offset in 32-bit branch instruction must to fit into s25. in arc_gen_branch()
58 if ((s32)u_offset < -16777216 || (s32)u_offset > 16777214) in arc_gen_branch()
85 jump_label_t *instr_addr = (jump_label_t *)entry->code; in arch_jump_label_transform()
91 instr = arc_gen_branch(entry->code, entry->target); in arch_jump_label_transform()
96 flush_icache_range(entry->code, entry->code + JUMP_LABEL_NOP_SIZE); in arch_jump_label_transform()
100 #define SELFTEST_MSG "ARC: instruction generation self-test: "
112 instr_got = arc_gen_branch(test->pc, test->target_address); in branch_gen_test()
113 if (instr_got == test->expected_instr) in branch_gen_test()
117 test->pc, test->target_address, in branch_gen_test()
118 test->expected_instr, instr_got); in branch_gen_test()
120 return -EFAULT; in branch_gen_test()
126 * from real working code.
129 {0x90007548, 0x90007514, 0xffcf07cd}, /* tiny (-52) offs */
130 {0x9000c9c0, 0x9000c782, 0xffcf05c3}, /* tiny (-574) offs */
131 {0x9000cc1c, 0x9000c782, 0xffcf0367}, /* tiny (-1178) offs */
132 {0x9009dce0, 0x9009d106, 0xff8f0427}, /* small (-3034) offs */
133 {0x9000f5de, 0x90007d30, 0xfc0f0755}, /* big (-30892) offs */
134 {0x900a2444, 0x90035f64, 0xc9cf0321}, /* huge (-443616) offs */
149 return -EFAULT; in instr_gen_test()