http://llvm.org/bugs/show_bug.cgi?id=22518

            Bug ID: 22518
           Summary: .cpsetup syntax handler doesn't deal with absolute
                    offsets
           Product: new-bugs
           Version: 3.6
          Hardware: Other
                OS: FreeBSD
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected]
    Classification: Unclassified

FreeBSD has several cases in its MIPS tree where .cpsetup is used with an
absolute offset instead of a label.

The most obvious use is in the gcc config for mips:

gcc/config/mips/mips.h

#if (defined _ABIN32 && _MIPS_SIM == _ABIN32) \
   || (defined _ABI64 && _MIPS_SIM == _ABI64)
#define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC)      \
   asm (SECTION_OP "\n\
        .set noreorder\n\
        bal 1f\n\
        nop\n\
1:      .set reorder\n\
        .cpsetup $31, $2, 1b\n\
        jal " USER_LABEL_PREFIX #FUNC "\n\
        " TEXT_SECTION_ASM_OP);
#endif


I'm also tracking this in a freebsd bug at:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=197259

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to