This is the mail archive of the crossgcc@cygnus.com mailing list for the crossgcc project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Hello All, I use the following tools for powerpc-eabi target: GCC 2.8.1, BUNUTILS 2.9.1. Due to performance reasons it is necessary to allocate some global variables into PowerPC registers, but unfortunately it looks like I can not manage it via "register <varType> <varName> asm("<regName>");" statement as described in GCC documentation. If I use such statement ("register int var1 asm("r14");" for example), then generated code seems to be wrong (all PowerPC GPR registers r14-r31 are saved/restored during function prologue/epilogue), therefore global variable "var1" becomes local one (if "var1" local variable, then generated code is the same). Please find test code "main.c" as well as corresponding listings attached. The following command line was used (var1, var2, var3 are global variables): $ gcc -c -D GLOBAL -eabi -Wa,-alh,-L,>main_global.l main.c The following command line was used (var1, var2, var3 are local variables): $ gcc -c -eabi -Wa,-alh,-L,>main_local.l main.c "main_global.l" is the same as "main_local.l". Is it necessary to use some additional compiler option? May you recommend me the source of GCC/powerpc-eabi technical information or contact person? Any help will be greatly appreciated. Best regards, -- Yaroslav Domaratsky (RTE team) mailto:R35383@email.mot.com Motorola ZAO, SPSD Phone: 7-812-329-1927 1 Artilleriyskaya Str., Fax: 7-812-329-1912 St. Petersburg, 191104, Russia Maildrop: ZRU03
GAS LISTING C:/TEMP\cc001005.s page 1 1 .file "main.c" 2 gcc2_compiled.: 3 .section ".text" 4 .align 2 5 .globl set 6 .type set,@function 7 set: 8 0000 9421FFA8 stwu 1,-88(1) 9 0004 91C10010 stw 14,16(1) 10 0008 91E10014 stw 15,20(1) 11 000c 92010018 stw 16,24(1) 12 0010 9221001C stw 17,28(1) 13 0014 92410020 stw 18,32(1) 14 0018 92610024 stw 19,36(1) 15 001c 92810028 stw 20,40(1) 16 0020 92A1002C stw 21,44(1) 17 0024 92C10030 stw 22,48(1) 18 0028 92E10034 stw 23,52(1) 19 002c 93010038 stw 24,56(1) 20 0030 9321003C stw 25,60(1) 21 0034 93410040 stw 26,64(1) 22 0038 93610044 stw 27,68(1) 23 003c 93810048 stw 28,72(1) 24 0040 93A1004C stw 29,76(1) 25 0044 93C10050 stw 30,80(1) 26 0048 93E10054 stw 31,84(1) 27 004c 7C3F0B78 mr 31,1 28 0050 907F0008 stw 3,8(31) 29 0054 909F000C stw 4,12(31) 30 0058 81DF0008 lwz 14,8(31) 31 005c 81FF000C lwz 15,12(31) 32 0060 38600001 li 3,1 33 0064 48000004 b .L1 34 .L1: 35 0068 81610000 lwz 11,0(1) 36 006c 81CBFFB8 lwz 14,-72(11) 37 0070 81EBFFBC lwz 15,-68(11) 38 0074 820BFFC0 lwz 16,-64(11) 39 0078 822BFFC4 lwz 17,-60(11) 40 007c 824BFFC8 lwz 18,-56(11) 41 0080 826BFFCC lwz 19,-52(11) 42 0084 828BFFD0 lwz 20,-48(11) 43 0088 82ABFFD4 lwz 21,-44(11) 44 008c 82CBFFD8 lwz 22,-40(11) 45 0090 82EBFFDC lwz 23,-36(11) 46 0094 830BFFE0 lwz 24,-32(11) 47 0098 832BFFE4 lwz 25,-28(11) 48 009c 834BFFE8 lwz 26,-24(11) 49 00a0 836BFFEC lwz 27,-20(11) 50 00a4 838BFFF0 lwz 28,-16(11) 51 00a8 83ABFFF4 lwz 29,-12(11) 52 00ac 83CBFFF8 lwz 30,-8(11) 53 00b0 83EBFFFC lwz 31,-4(11) 54 00b4 7D615B78 mr 1,11 55 00b8 4E800020 blr 56 .Lfe1: 57 .size set,.Lfe1-set GAS LISTING C:/TEMP\cc001005.s page 2 58 .align 2 59 .globl main 60 .type main,@function 61 main: 62 00bc 9421FFB0 stwu 1,-80(1) 63 00c0 7C0802A6 mflr 0 64 00c4 91C10008 stw 14,8(1) 65 00c8 91E1000C stw 15,12(1) 66 00cc 92010010 stw 16,16(1) 67 00d0 92210014 stw 17,20(1) 68 00d4 92410018 stw 18,24(1) 69 00d8 9261001C stw 19,28(1) 70 00dc 92810020 stw 20,32(1) 71 00e0 92A10024 stw 21,36(1) 72 00e4 92C10028 stw 22,40(1) 73 00e8 92E1002C stw 23,44(1) 74 00ec 93010030 stw 24,48(1) 75 00f0 93210034 stw 25,52(1) 76 00f4 93410038 stw 26,56(1) 77 00f8 9361003C stw 27,60(1) 78 00fc 93810040 stw 28,64(1) 79 0100 93A10044 stw 29,68(1) 80 0104 93C10048 stw 30,72(1) 81 0108 93E1004C stw 31,76(1) 82 010c 90010054 stw 0,84(1) 83 0110 7C3F0B78 mr 31,1 84 0114 48000001 bl __eabi 85 0118 39C00001 li 14,1 86 011c 39E00002 li 15,2 87 0120 38600003 li 3,3 88 0124 38800004 li 4,4 89 0128 48000001 bl set 90 012c 7C701B78 mr 16,3 91 0130 38600000 li 3,0 92 0134 48000004 b .L2 93 .L2: 94 0138 81610000 lwz 11,0(1) 95 013c 800B0004 lwz 0,4(11) 96 0140 7C0803A6 mtlr 0 97 0144 81CBFFB8 lwz 14,-72(11) 98 0148 81EBFFBC lwz 15,-68(11) 99 014c 820BFFC0 lwz 16,-64(11) 100 0150 822BFFC4 lwz 17,-60(11) 101 0154 824BFFC8 lwz 18,-56(11) 102 0158 826BFFCC lwz 19,-52(11) 103 015c 828BFFD0 lwz 20,-48(11) 104 0160 82ABFFD4 lwz 21,-44(11) 105 0164 82CBFFD8 lwz 22,-40(11) 106 0168 82EBFFDC lwz 23,-36(11) 107 016c 830BFFE0 lwz 24,-32(11) 108 0170 832BFFE4 lwz 25,-28(11) 109 0174 834BFFE8 lwz 26,-24(11) 110 0178 836BFFEC lwz 27,-20(11) 111 017c 838BFFF0 lwz 28,-16(11) 112 0180 83ABFFF4 lwz 29,-12(11) 113 0184 83CBFFF8 lwz 30,-8(11) 114 0188 83EBFFFC lwz 31,-4(11) GAS LISTING C:/TEMP\cc001005.s page 3 115 018c 7D615B78 mr 1,11 116 0190 4E800020 blr 117 .Lfe2: 118 .size main,.Lfe2-main 119 .ident "GCC: (GNU) 2.8.1"
GAS LISTING C:/TEMP\cc001014.s page 1 1 .file "main.c" 2 gcc2_compiled.: 3 .section ".text" 4 .align 2 5 .globl set 6 .type set,@function 7 set: 8 0000 9421FFA8 stwu 1,-88(1) 9 0004 91C10010 stw 14,16(1) 10 0008 91E10014 stw 15,20(1) 11 000c 92010018 stw 16,24(1) 12 0010 9221001C stw 17,28(1) 13 0014 92410020 stw 18,32(1) 14 0018 92610024 stw 19,36(1) 15 001c 92810028 stw 20,40(1) 16 0020 92A1002C stw 21,44(1) 17 0024 92C10030 stw 22,48(1) 18 0028 92E10034 stw 23,52(1) 19 002c 93010038 stw 24,56(1) 20 0030 9321003C stw 25,60(1) 21 0034 93410040 stw 26,64(1) 22 0038 93610044 stw 27,68(1) 23 003c 93810048 stw 28,72(1) 24 0040 93A1004C stw 29,76(1) 25 0044 93C10050 stw 30,80(1) 26 0048 93E10054 stw 31,84(1) 27 004c 7C3F0B78 mr 31,1 28 0050 907F0008 stw 3,8(31) 29 0054 909F000C stw 4,12(31) 30 0058 81DF0008 lwz 14,8(31) 31 005c 81FF000C lwz 15,12(31) 32 0060 38600001 li 3,1 33 0064 48000004 b .L1 34 .L1: 35 0068 81610000 lwz 11,0(1) 36 006c 81CBFFB8 lwz 14,-72(11) 37 0070 81EBFFBC lwz 15,-68(11) 38 0074 820BFFC0 lwz 16,-64(11) 39 0078 822BFFC4 lwz 17,-60(11) 40 007c 824BFFC8 lwz 18,-56(11) 41 0080 826BFFCC lwz 19,-52(11) 42 0084 828BFFD0 lwz 20,-48(11) 43 0088 82ABFFD4 lwz 21,-44(11) 44 008c 82CBFFD8 lwz 22,-40(11) 45 0090 82EBFFDC lwz 23,-36(11) 46 0094 830BFFE0 lwz 24,-32(11) 47 0098 832BFFE4 lwz 25,-28(11) 48 009c 834BFFE8 lwz 26,-24(11) 49 00a0 836BFFEC lwz 27,-20(11) 50 00a4 838BFFF0 lwz 28,-16(11) 51 00a8 83ABFFF4 lwz 29,-12(11) 52 00ac 83CBFFF8 lwz 30,-8(11) 53 00b0 83EBFFFC lwz 31,-4(11) 54 00b4 7D615B78 mr 1,11 55 00b8 4E800020 blr 56 .Lfe1: 57 .size set,.Lfe1-set GAS LISTING C:/TEMP\cc001014.s page 2 58 .align 2 59 .globl main 60 .type main,@function 61 main: 62 00bc 9421FFB0 stwu 1,-80(1) 63 00c0 7C0802A6 mflr 0 64 00c4 91C10008 stw 14,8(1) 65 00c8 91E1000C stw 15,12(1) 66 00cc 92010010 stw 16,16(1) 67 00d0 92210014 stw 17,20(1) 68 00d4 92410018 stw 18,24(1) 69 00d8 9261001C stw 19,28(1) 70 00dc 92810020 stw 20,32(1) 71 00e0 92A10024 stw 21,36(1) 72 00e4 92C10028 stw 22,40(1) 73 00e8 92E1002C stw 23,44(1) 74 00ec 93010030 stw 24,48(1) 75 00f0 93210034 stw 25,52(1) 76 00f4 93410038 stw 26,56(1) 77 00f8 9361003C stw 27,60(1) 78 00fc 93810040 stw 28,64(1) 79 0100 93A10044 stw 29,68(1) 80 0104 93C10048 stw 30,72(1) 81 0108 93E1004C stw 31,76(1) 82 010c 90010054 stw 0,84(1) 83 0110 7C3F0B78 mr 31,1 84 0114 48000001 bl __eabi 85 0118 39C00001 li 14,1 86 011c 39E00002 li 15,2 87 0120 38600003 li 3,3 88 0124 38800004 li 4,4 89 0128 48000001 bl set 90 012c 7C701B78 mr 16,3 91 0130 38600000 li 3,0 92 0134 48000004 b .L2 93 .L2: 94 0138 81610000 lwz 11,0(1) 95 013c 800B0004 lwz 0,4(11) 96 0140 7C0803A6 mtlr 0 97 0144 81CBFFB8 lwz 14,-72(11) 98 0148 81EBFFBC lwz 15,-68(11) 99 014c 820BFFC0 lwz 16,-64(11) 100 0150 822BFFC4 lwz 17,-60(11) 101 0154 824BFFC8 lwz 18,-56(11) 102 0158 826BFFCC lwz 19,-52(11) 103 015c 828BFFD0 lwz 20,-48(11) 104 0160 82ABFFD4 lwz 21,-44(11) 105 0164 82CBFFD8 lwz 22,-40(11) 106 0168 82EBFFDC lwz 23,-36(11) 107 016c 830BFFE0 lwz 24,-32(11) 108 0170 832BFFE4 lwz 25,-28(11) 109 0174 834BFFE8 lwz 26,-24(11) 110 0178 836BFFEC lwz 27,-20(11) 111 017c 838BFFF0 lwz 28,-16(11) 112 0180 83ABFFF4 lwz 29,-12(11) 113 0184 83CBFFF8 lwz 30,-8(11) 114 0188 83EBFFFC lwz 31,-4(11) GAS LISTING C:/TEMP\cc001014.s page 3 115 018c 7D615B78 mr 1,11 116 0190 4E800020 blr 117 .Lfe2: 118 .size main,.Lfe2-main 119 .ident "GCC: (GNU) 2.8.1"