From 29d6678fd546377459ef75cf54abeef5b969b5cf Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 27 Aug 2010 15:14:24 +0100 Subject: Major layout change to the packages directory Having one monolithic packages directory makes it hard to find things and is generally overwhelming. This commit splits it into several logical sections roughly based on function, recipes.txt gives more information about the classifications used. The opportunity is also used to switch from "packages" to "recipes" as used in OpenEmbedded as the term "packages" can be confusing to people and has many different meanings. Not all recipes have been classified yet, this is just a first pass at separating things out. Some packages are moved to meta-extras as they're no longer actively used or maintained. Signed-off-by: Richard Purdie --- meta/packages/gcc/gcc-csl-arm/pic-without-sl.patch | 303 --------------------- 1 file changed, 303 deletions(-) delete mode 100644 meta/packages/gcc/gcc-csl-arm/pic-without-sl.patch (limited to 'meta/packages/gcc/gcc-csl-arm/pic-without-sl.patch') diff --git a/meta/packages/gcc/gcc-csl-arm/pic-without-sl.patch b/meta/packages/gcc/gcc-csl-arm/pic-without-sl.patch deleted file mode 100644 index 9a49794da4..0000000000 --- a/meta/packages/gcc/gcc-csl-arm/pic-without-sl.patch +++ /dev/null @@ -1,303 +0,0 @@ -Index: gcc/config/arm/arm-protos.h -=================================================================== -RCS file: /cvsroot/gcc/gcc/gcc/config/arm/arm-protos.h,v -retrieving revision 1.60.4.20 -diff -u -r1.60.4.20 arm-protos.h ---- gcc/config/arm/arm-protos.h 29 Mar 2005 03:00:11 -0000 1.60.4.20 -+++ gcc/config/arm/arm-protos.h 23 Apr 2005 04:41:06 -0000 -@@ -64,6 +64,7 @@ - extern enum reg_class vfp_secondary_reload_class (enum machine_mode, rtx); - extern int tls_symbolic_operand (rtx, enum machine_mode); - extern bool arm_tls_operand_p (rtx x); -+extern bool arm_pc_pic_operand_p (rtx x); - - /* Predicates. */ - extern int s_register_operand (rtx, enum machine_mode); -Index: gcc/config/arm/arm.c -=================================================================== -RCS file: /cvsroot/gcc/gcc/gcc/config/arm/arm.c,v -retrieving revision 1.303.2.79 -diff -u -r1.303.2.79 arm.c ---- gcc/config/arm/arm.c 12 Apr 2005 06:17:07 -0000 1.303.2.79 -+++ gcc/config/arm/arm.c 23 Apr 2005 04:41:09 -0000 -@@ -1003,7 +1003,7 @@ - - /* If stack checking is disabled, we can use r10 as the PIC register, - which keeps r9 available. */ -- if (flag_pic) -+ if (0 && flag_pic) - arm_pic_register = TARGET_APCS_STACK ? 9 : 10; - - if (TARGET_APCS_FLOAT) -@@ -3120,6 +3120,10 @@ - rtx - legitimize_pic_address (rtx orig, enum machine_mode mode, rtx reg) - { -+ if (GET_CODE (orig) == UNSPEC -+ && XINT (orig, 1) == UNSPEC_GOTSLOTPC) -+ abort (); -+ - if (GET_CODE (orig) == SYMBOL_REF - || GET_CODE (orig) == LABEL_REF) - { -@@ -3149,27 +3153,80 @@ - else - address = reg; - -- if (TARGET_ARM) -- emit_insn (gen_pic_load_addr_arm (address, orig)); -- else -- emit_insn (gen_pic_load_addr_thumb (address, orig)); -+ if (arm_pic_register != INVALID_REGNUM) -+ { -+ /* Using GP-based PIC addressing. */ -+ if (TARGET_ARM) -+ emit_insn (gen_pic_load_addr_arm (address, orig)); -+ else -+ emit_insn (gen_pic_load_addr_thumb (address, orig)); -+ -+ if ((GET_CODE (orig) == LABEL_REF -+ || (GET_CODE (orig) == SYMBOL_REF && -+ SYMBOL_REF_LOCAL_P (orig))) -+ && NEED_GOT_RELOC) -+ pic_ref = gen_rtx_PLUS (Pmode, pic_offset_table_rtx, address); -+ else -+ { -+ pic_ref = gen_rtx_MEM (Pmode, -+ gen_rtx_PLUS (Pmode, pic_offset_table_rtx, -+ address)); -+ RTX_UNCHANGING_P (pic_ref) = 1; -+ } - -- if ((GET_CODE (orig) == LABEL_REF -- || (GET_CODE (orig) == SYMBOL_REF && -- SYMBOL_REF_LOCAL_P (orig))) -- && NEED_GOT_RELOC) -- pic_ref = gen_rtx_PLUS (Pmode, pic_offset_table_rtx, address); -+ current_function_uses_pic_offset_table = 1; -+ } - else - { -- pic_ref = gen_rtx_MEM (Pmode, -- gen_rtx_PLUS (Pmode, pic_offset_table_rtx, -- address)); -- RTX_UNCHANGING_P (pic_ref) = 1; -+ /* Using PC-based PIC addressing. */ -+ rtx label, tmp; -+ int offset; -+ -+ label = gen_label_rtx (); -+ offset = TARGET_ARM ? 8 : 4; -+ -+ if (GET_CODE (orig) == LABEL_REF -+ || (GET_CODE (orig) == SYMBOL_REF && SYMBOL_REF_LOCAL_P (orig))) -+ { -+ /* This symbol is defined locally. We don't need a GOT entry. */ -+ tmp = gen_rtx_MINUS (Pmode, gen_rtx_UNSPEC (Pmode, gen_rtvec (1, orig), UNSPEC_PIC_SYM), gen_rtx_PLUS (Pmode, -+ gen_rtx_LABEL_REF (Pmode, label), -+ GEN_INT (offset))); -+ -+ load_tls_operand (tmp, address); -+ -+ if (TARGET_ARM) -+ emit_insn (gen_pic_add_dot_plus_eight (address, label)); -+ else -+ emit_insn (gen_pic_add_dot_plus_four (address, label)); -+ } -+ else -+ { -+ rtx x = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, orig), UNSPEC_GOTSLOTPC); -+ rtx dummy_label; -+ -+ dummy_label = gen_label_rtx (); -+ LABEL_PRESERVE_P (dummy_label) = 1; -+ LABEL_NUSES (dummy_label) = 1; -+ -+ tmp = gen_rtx_MINUS (Pmode, x, gen_rtx_PLUS (Pmode, -+ gen_rtx_LABEL_REF (Pmode, label), -+ GEN_INT (offset))); -+ -+ load_tls_operand (tmp, address); -+ -+ if (TARGET_ARM) -+ emit_insn (gen_tls_load_dot_plus_eight (address, address, label, dummy_label)); -+ else -+ emit_insn (gen_tls_load_dot_plus_four (address, address, label, dummy_label)); -+ } -+ -+ pic_ref = address; - } - - insn = emit_move_insn (reg, pic_ref); - #endif -- current_function_uses_pic_offset_table = 1; -+ - /* Put a REG_EQUAL note on this insn, so that it can be optimized - by loop. */ - REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_EQUAL, orig, -@@ -3179,11 +3236,17 @@ - else if (GET_CODE (orig) == CONST) - { - rtx base, offset; -+ bool minus = FALSE; - - if (GET_CODE (XEXP (orig, 0)) == PLUS - && XEXP (XEXP (orig, 0), 0) == pic_offset_table_rtx) - return orig; - -+ if (GET_CODE (XEXP (orig, 0)) == MINUS -+ && GET_CODE (XEXP (XEXP (orig, 0), 0)) == UNSPEC -+ && XINT (XEXP (XEXP (orig, 0), 0), 1) == UNSPEC_GOTSLOTPC) -+ return orig; -+ - if (GET_CODE (XEXP (orig, 0)) == UNSPEC) - return orig; - -@@ -3201,6 +3264,13 @@ - offset = legitimize_pic_address (XEXP (XEXP (orig, 0), 1), Pmode, - base == reg ? 0 : reg); - } -+ else if (GET_CODE (XEXP (orig, 0)) == MINUS) -+ { -+ minus = TRUE; -+ base = legitimize_pic_address (XEXP (XEXP (orig, 0), 0), Pmode, reg); -+ offset = legitimize_pic_address (XEXP (XEXP (orig, 0), 1), Pmode, -+ base == reg ? 0 : reg); -+ } - else - abort (); - -@@ -3228,7 +3298,7 @@ - return reg; - } - -- return gen_rtx_PLUS (Pmode, base, offset); -+ return minus ? gen_rtx_MINUS (Pmode, base, offset) : gen_rtx_PLUS (Pmode, base, offset); - } - - return orig; -@@ -3267,7 +3337,7 @@ - rtx l1, pic_tmp, pic_tmp2, pic_rtx; - rtx global_offset_table; - -- if (current_function_uses_pic_offset_table == 0 || TARGET_SINGLE_PIC_BASE) -+ if (current_function_uses_pic_offset_table == 0 || TARGET_SINGLE_PIC_BASE || arm_pic_register == INVALID_REGNUM) - return; - - if (!flag_pic) -@@ -3341,8 +3411,11 @@ - static int - pcrel_constant_p (rtx x) - { -+ if (GET_CODE (x) == CONST) -+ return pcrel_constant_p (XEXP (x, 0)); -+ - if (GET_CODE (x) == MINUS) -- return symbol_mentioned_p (XEXP (x, 0)) && label_mentioned_p (XEXP (x, 1)); -+ return (((GET_CODE (XEXP (x, 0)) == UNSPEC && XINT (XEXP (x, 0), 1) == UNSPEC_PIC_SYM)) || symbol_mentioned_p (XEXP (x, 0))) && label_mentioned_p (XEXP (x, 1)); - - if (GET_CODE (x) == UNSPEC - && XINT (x, 1) == UNSPEC_TLS -@@ -3946,12 +4019,32 @@ - return SYMBOL_REF_TLS_MODEL (op); - } - -+bool -+arm_pc_pic_operand_p (rtx op) -+{ -+ if (GET_CODE (op) == CONST -+ && GET_CODE (XEXP (op, 0)) == MINUS -+ && GET_CODE (XEXP (XEXP (op, 0), 0)) == UNSPEC -+ && XINT (XEXP (XEXP (op, 0), 0), 1) == UNSPEC_GOTSLOTPC) -+ return 1; -+ -+ if (GET_CODE (op) == CONST -+ && GET_CODE (XEXP (op, 0)) == MINUS -+ && GET_CODE (XEXP (XEXP (op, 0), 0)) == UNSPEC -+ && XINT (XEXP (XEXP (op, 0), 0), 1) == UNSPEC_PIC_SYM) -+ return 1; -+ -+ return 0; -+} -+ - /* Valid input to a move instruction. */ - int - move_input_operand (rtx op, enum machine_mode mode) - { - if (tls_symbolic_operand (op, mode)) - return 0; -+ if (pcrel_constant_p (op)) -+ return 1; - return general_operand (op, mode); - } - -@@ -15634,11 +15727,34 @@ - return TRUE; - } - -+static bool -+arm_emit_got_decoration (FILE *fp, rtx x) -+{ -+ rtx val; -+ -+ val = XVECEXP (x, 0, 0); -+ -+ fputs ("_gotslotpc_(", fp); -+ -+ output_addr_const (fp, val); -+ -+ fputc (')', fp); -+ -+ return TRUE; -+} -+ - bool - arm_output_addr_const_extra (FILE *fp, rtx x) - { - if (GET_CODE (x) == UNSPEC && XINT (x, 1) == UNSPEC_TLS) - return arm_emit_tls_decoration (fp, x); -+ else if (GET_CODE (x) == UNSPEC && XINT (x, 1) == UNSPEC_GOTSLOTPC) -+ return arm_emit_got_decoration (fp, x); -+ else if (GET_CODE (x) == UNSPEC && XINT (x, 1) == UNSPEC_PIC_SYM) -+ { -+ output_addr_const (fp, XVECEXP (x, 0, 0)); -+ return TRUE; -+ } - else if (GET_CODE (x) == CONST_VECTOR) - return arm_emit_vector_const (fp, x); - -Index: gcc/config/arm/arm.md -=================================================================== -RCS file: /cvsroot/gcc/gcc/gcc/config/arm/arm.md,v -retrieving revision 1.145.2.31 -diff -u -r1.145.2.31 arm.md ---- gcc/config/arm/arm.md 28 Mar 2005 19:04:37 -0000 1.145.2.31 -+++ gcc/config/arm/arm.md 23 Apr 2005 04:41:11 -0000 -@@ -88,6 +88,7 @@ - (UNSPEC_WMADDS 18) ; Used by the intrinsic form of the iWMMXt WMADDS instruction. - (UNSPEC_WMADDU 19) ; Used by the intrinsic form of the iWMMXt WMADDU instruction. - (UNSPEC_TLS 20) ; A symbol that has been treated properly for TLS usage. -+ (UNSPEC_GOTSLOTPC 21) - ] - ) - -@@ -4179,7 +4180,8 @@ - && (CONSTANT_P (operands[1]) - || symbol_mentioned_p (operands[1]) - || label_mentioned_p (operands[1])) -- && ! tls_mentioned_p (operands[1])) -+ && ! tls_mentioned_p (operands[1]) -+ && ! arm_pc_pic_operand_p (operands[1])) - operands[1] = legitimize_pic_address (operands[1], SImode, - (no_new_pseudos ? operands[0] : 0)); - } -@@ -4412,7 +4414,8 @@ - (mem:SI (unspec:SI [(plus:SI (match_dup 0) - (const (plus:SI (pc) (const_int 8))))] - UNSPEC_PIC_BASE))) -- (use (label_ref (match_operand 1 "" "")))])] -+ (use (label_ref (match_operand 1 "" ""))) -+ (use (label_ref (match_operand 1 "" "")))])] - "" - ) - -- cgit v1.2.3-54-g00ecf