teak-llvm/lldb/packages/Python/lldbsuite/test/functionalities/unwind/ehframe/main.c
Pavel Labath d5ee7ab47e Add and fix some tests for PPC64
Summary:
TestExprsChar.py
Char is unsigned char by default in PowerPC.

TestDisassembleBreakpoint.py
Modify disassemble testcase to consider multiple architectures.

TestThreadJump.py
Jumping directly to the return line on PowerPC architecture dos not
means returning the value that is seen on the code. The last test fails,
because it needs the execution of some assembly in the beginning of the
function. Avoiding this test for this architecture.

TestEhFrameUnwind.py
Implement func for ppc64le test case.

TestWatchLocation.py
TestStepOverWatchpoint.py
PowerPC currently supports only one H/W watchpoint.

TestDisassembleRawData.py
Add PowerPC opcode and instruction for disassemble testcase.

Reviewers: labath

Reviewed By: labath

Subscribers: davide, labath, alexandreyy, lldb-commits, luporl, lbianc

Differential Revision: https://reviews.llvm.org/D44472
Patch by Alexandre Yukio Yamashita <alexandre.yamashita@eldorado.org.br>.

llvm-svn: 328488
2018-03-26 12:42:07 +00:00

59 lines
1.0 KiB
C

void func() {
#ifdef __powerpc64__
__asm__ (
"mflr 0;"
"std 0,16(1);"
"addi 1,1,-24;"
"mr 31,1;"
".cfi_def_cfa_offset 24;"
"addi 0,0,0;"
"addi 1,1,24;"
"ld 0,16(1);"
".cfi_def_cfa_offset 0;"
);
#elif !defined __mips__
__asm__ (
"pushq $0x10;"
".cfi_def_cfa_offset 16;"
"jmp label;"
"movq $0x48, %rax;"
"label: subq $0x38, %rax;"
"movq $0x48, %rcx;"
"movq $0x48, %rdx;"
"movq $0x48, %rax;"
"popq %rax;"
);
#elif __mips64
__asm__ (
"daddiu $sp,$sp,-16;"
".cfi_def_cfa_offset 16;"
"sd $ra,8($sp);"
".cfi_offset 31, -8;"
"daddiu $ra,$zero,0;"
"ld $ra,8($sp);"
"daddiu $sp, $sp,16;"
".cfi_restore 31;"
".cfi_def_cfa_offset 0;"
);
#else
// For MIPS32
__asm__ (
"addiu $sp,$sp,-8;"
".cfi_def_cfa_offset 8;"
"sw $ra,4($sp);"
".cfi_offset 31, -4;"
"addiu $ra,$zero,0;"
"lw $ra,4($sp);"
"addiu $sp,$sp,8;"
".cfi_restore 31;"
".cfi_def_cfa_offset 0;"
);
#endif
}
int main(int argc, char const *argv[])
{
func();
}