mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-30 00:38:54 -04:00

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
59 lines
1.0 KiB
C
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();
|
|
}
|