#include <linux/kernel.h>
#include <linux/module.h>
#include "kprobes-test.h"
Go to the source code of this file.
|
#define | TEST_ISA "16" |
|
#define | DONT_TEST_IN_ITBLOCK(tests) |
|
#define | CONDITION_INSTRUCTIONS(cc_pos, tests) |
|
#define | TEST_ITBLOCK(code) |
|
#define | TEST_THUMB_TO_ARM_INTERWORK_P(code1, reg, val, code2) |
|
#define | DATA_PROCESSING16(op, val) |
|
#define | TEST_POPPC(code, offset) |
|
#define | TEST_IT(code, code2) |
|
#define | _DATA_PROCESSING32_DNM(op, s, val) |
|
#define | DATA_PROCESSING32_DNM(op, val) |
|
#define | DATA_PROCESSING32_NM(op, val) |
|
#define | _DATA_PROCESSING32_DM(op, s, val) |
|
#define | DATA_PROCESSING32_DM(op, val) |
|
#define | SINGLE_STORE(size) |
|
#define | SINGLE_LOAD(size) |
|
#define | SHIFTS32(op) |
|
#define | PARALLEL_ADD_SUB(op) |
|
#define _DATA_PROCESSING32_DM |
( |
|
op, |
|
|
|
s, |
|
|
|
val |
|
) |
| |
Value:
TEST_R(
op s" r1, r",12,
val,
", lsl #3") \
TEST_R(
op s" r2, r",11,
val,
", lsr #4") \
TEST_R(
op s" r3, r",10,
val,
", asr #5") \
TEST_R(
op s" r4, r",9,
N(
val),
", asr #6") \
TEST_R(
op s
" r5, r",8,
val,
", ror #7") \
TEST_R(
op s
" r8, r",7,
val,
", rrx") \
TEST(
op s
" r0, #0x00010001") \
TEST(
op s
" r11, #0xf5000000") \
TEST(
op s
" r7, #0x000af000") \
TEST(
op s
" r4, #0x00005a00")
#define _DATA_PROCESSING32_DNM |
( |
|
op, |
|
|
|
s, |
|
|
|
val |
|
) |
| |
Value:
TEST_RR(
op s" r1, r",1,
VAL1,
", r",2,
val,
", lsl #3") \
TEST_RR(
op s" r2, r",3,
VAL1,
", r",2,
val,
", lsr #4") \
TEST_RR(
op s" r3, r",3,
VAL1,
", r",2,
val,
", asr #5") \
TEST_RR(
op s" r4, r",5,
VAL1,
", r",2,
N(
val),
", asr #6") \
TEST_RR(
op s
" r5, r",5,
VAL1,
", r",2,
val,
", ror #7") \
TEST_RR(
op s
" r8, r",9,
VAL1,
", r",10,
val,
", rrx") \
TEST_R(
op s
" r0, r",11,
VAL1,
", #0x00010001") \
TEST_R(
op s
" r11, r",0,
VAL1,
", #0xf5000000") \
TEST_R(
op s
" r7, r",8,
VAL2,
", #0x000af000")
#define CONDITION_INSTRUCTIONS |
( |
|
cc_pos, |
|
|
|
tests |
|
) |
| |
Value:
DONT_TEST_IN_ITBLOCK(tests) \
kprobe_test_cc_position = 0;
Definition at line 24 of file kprobes-test-thumb.c.
#define DATA_PROCESSING16 |
( |
|
op, |
|
|
|
val |
|
) |
| |
#define DATA_PROCESSING32_DM |
( |
|
op, |
|
|
|
val |
|
) |
| |
Value:
_DATA_PROCESSING32_DM(
op,
"s",
val)
#define DATA_PROCESSING32_DNM |
( |
|
op, |
|
|
|
val |
|
) |
| |
Value:
_DATA_PROCESSING32_DNM(
op,
"s",
val)
#define DATA_PROCESSING32_NM |
( |
|
op, |
|
|
|
val |
|
) |
| |
Value:
TEST_RR(
op" r",1,
VAL1,
", r",2,
val,
", lsl #3") \
TEST_RR(
op" r",3,
VAL1,
", r",2,
val,
", lsr #4") \
TEST_RR(
op" r",3,
VAL1,
", r",2,
val,
", asr #5") \
TEST_RR(
op" r",5,
VAL1,
", r",2,
N(
val),
", asr #6") \
TEST_RR(
op" r",5,
VAL1,
", r",2,
val,
", ror #7") \
TEST_RR(
op" r",9,
VAL1,
", r",10,
val,
", rrx") \
TEST_R(
op" r",11,
VAL1,
", #0x00010001") \
TEST_R(
op" r",0,
VAL1,
", #0xf5000000") \
TEST_R(
op" r",8,
VAL2,
", #0x000af000")
#define DONT_TEST_IN_ITBLOCK |
( |
|
tests | ) |
|
#define PARALLEL_ADD_SUB |
( |
|
op | ) |
|
Value:
TEST_RR(
op"add16 r14, r",12,
HH2,
", r",10,
HH1,
"") \
TEST_RR(
op"asx r0, r",0,
HH1,
", r",1,
HH2,
"") \
TEST_RR(
op"asx r14, r",12,
HH2,
", r",10,
HH1,
"") \
TEST_RR(
op"sax r0, r",0,
HH1,
", r",1,
HH2,
"") \
TEST_RR(
op"sax r14, r",12,
HH2,
", r",10,
HH1,
"") \
TEST_RR(
op"sub16 r0, r",0,
HH1,
", r",1,
HH2,
"") \
TEST_RR(
op"sub16 r14, r",12,
HH2,
", r",10,
HH1,
"") \
TEST_RR(
op"add8 r0, r",0,
HH1,
", r",1,
HH2,
"") \
TEST_RR(
op"add8 r14, r",12,
HH2,
", r",10,
HH1,
"") \
TEST_RR(
op"sub8 r0, r",0,
HH1,
", r",1,
HH2,
"") \
TEST_RR(
op"sub8 r14, r",12,
HH2,
", r",10,
HH1,
"")
Value:
TEST_RR(
op" r14, r",12,
VAL2,
", r",11,10,
"")
#define SINGLE_LOAD |
( |
|
size | ) |
|
Value:TEST_P(
"ldr"size" r0, [r",11,-1024,
", #1024]") \
TEST_P(
"ldr"size" r14, [r",1, -1024,
", #1080]") \
TEST_P(
"ldr"size" r0, [r",11,256,
", #-120]") \
TEST_P(
"ldr"size" r14, [r",1, 256,
", #-128]") \
TEST_P(
"ldr"size" r0, [r",11,24,
"], #120") \
TEST_P(
"ldr"size" r14, [r",1, 24,
"], #128") \
TEST_P(
"ldr"size" r0, [r",11,24,
"], #-120") \
TEST_P(
"ldr"size" r14, [r",1,24,
"], #-128") \
TEST_P(
"ldr"size" r0, [r",11,24,
", #120]!") \
TEST_P(
"ldr"size" r14, [r",1, 24,
", #128]!") \
TEST_P(
"ldr"size" r0, [r",11,256,
", #-120]!") \
TEST_P(
"ldr"size" r14, [r",1, 256,
", #-128]!") \
TEST_PR(
"ldr"size".w r0, [r",1, 0,
", r",2, 4,
"]") \
TEST_PR(
"ldr"size" r14, [r",10,0,
", r",11,4,
", lsl #1]") \
TEST_X(
"ldr"size".w r0, 3f", \
".align 3 \n\t" \
TEST_X(
"ldr"size".w r14, 3f", \
".align 3 \n\t" \
TEST(
"ldr"size".w r7, 3b") \
TEST(
"ldr"size".w r7, [sp, #24]") \
TEST_P(
"ldr"size".w r0, [r",0,0,
"]") \
TEST_UNSUPPORTED(
"ldr"size"t r0, [r1, #4]")
#define SINGLE_STORE |
( |
|
size | ) |
|
Value:
TEST_RP(
"str"size" r",14,
VAL2,
", [r",1, -1024,
", #1080]") \
TEST_RP(
"str"size" r",0,
VAL1,
", [r",11,256,
", #-120]") \
TEST_RP(
"str"size" r",14,
VAL2,
", [r",1, 256,
", #-128]") \
TEST_RP(
"str"size" r",0,
VAL1,
", [r",11,24,
"], #120") \
TEST_RP(
"str"size" r",14,
VAL2,
", [r",1, 24,
"], #128") \
TEST_RP(
"str"size" r",0,
VAL1,
", [r",11,24,
"], #-120") \
TEST_RP(
"str"size" r",14,
VAL2,
", [r",1, 24,
"], #-128") \
TEST_RP(
"str"size" r",0,
VAL1,
", [r",11,24,
", #120]!") \
TEST_RP(
"str"size" r",14,
VAL2,
", [r",1, 24,
", #128]!") \
TEST_RP(
"str"size" r",0,
VAL1,
", [r",11,256,
", #-120]!") \
TEST_RP(
"str"size" r",14,
VAL2,
", [r",1, 256,
", #-128]!") \
TEST_RPR(
"str"size".w r",0,
VAL1,
", [r",1, 0,
", r",2, 4,
"]") \
TEST_RPR(
"str"size" r",14,
VAL2,
", [r",10,0,
", r",11,4,
", lsl #1]") \
TEST_R(
"str"size".w r",7,
VAL1,
", [sp, #24]") \
TEST_RP(
"str"size".w r",0,
VAL2,
", [r",0,0,
"]") \
TEST_UNSUPPORTED(
"str"size"t r0, [r1, #4]")
#define TEST_IT |
( |
|
code, |
|
|
|
code2 |
|
) |
| |
Value:
TEST_ARG_END("") \
"50: nop \n\t" \
" "code2" \n\t" \
"2: nop \n\t" \
TESTCASE_END
#define TEST_ITBLOCK |
( |
|
code | ) |
|
Value:
TEST_ARG_END("") \
"50: nop \n\t" \
" mov r1, #0x11 \n\t" \
" mov r2, #0x22 \n\t" \
" mov r3, #0x33 \n\t" \
"2: nop \n\t" \
TESTCASE_END \
Definition at line 29 of file kprobes-test-thumb.c.
Value:
TEST_ARG_END("") \
TESTCASE_END
#define TEST_THUMB_TO_ARM_INTERWORK_P |
( |
|
code1, |
|
|
|
reg, |
|
|
|
val, |
|
|
|
code2 |
|
) |
| |
Value:
TEST_ARG_REG(14, 99
f+1) \
TEST_ARG_END("") \
" nop \n\t" \
"50: nop \n\t" \
"1: "code1 #
reg code2
" \n\t" \
" bx lr \n\t" \
".arm \n\t" \
"3: adr lr, 2f+1 \n\t" \
" bx lr \n\t" \
".thumb \n\t" \
"2: nop \n\t" \
TESTCASE_END
Definition at line 42 of file kprobes-test-thumb.c.