~ubuntu-branches/ubuntu/vivid/golang/vivid

« back to all changes in this revision

Viewing changes to src/cmd/8g/prog.c

  • Committer: Package Import Robot
  • Author(s): Serge Hallyn
  • Date: 2014-11-18 15:12:26 UTC
  • mfrom: (14.2.12 vivid-proposed)
  • Revision ID: package-import@ubuntu.com-20141118151226-zug7vn93mn3dtiz3
Tags: 2:1.3.2-1ubuntu1
* Merge from Debian unstable.  Remaining changes:
  - 016-armhf-elf-header.patch: Use correct ELF header for armhf binaries.
  - Support co-installability with gccgo-go tool:
    - d/rules,golang-go.install: Rename bin/go -> bin/golang-go
    - d/golang-go.{postinst,prerm}: Install/remove /usr/bin/go using
      alternatives.
  - d/copyright: Amendments for full compiliance with copyright format.
  - d/control: Demote golang-go.tools to Suggests to support Ubuntu MIR.
  - dropped patches (now upstream):
    - d/p/issue27650045_40001_50001.diff
    - d/p/issue28050043_60001_70001.diff
    - d/p/issue54790044_100001_110001.diff

Show diffs side-by-side

added added

removed removed

Lines of Context:
38
38
        [ATEXT]=        {Pseudo},
39
39
        [AFUNCDATA]=    {Pseudo},
40
40
        [APCDATA]=      {Pseudo},
41
 
        [AUNDEF]=       {OK},
 
41
        [AUNDEF]=       {Break},
42
42
        [AUSEFIELD]=    {OK},
43
43
        [ACHECKNIL]=    {LeftRead},
 
44
        [AVARDEF]=      {Pseudo | RightWrite},
 
45
        [AVARKILL]=     {Pseudo | RightWrite},
44
46
 
45
47
        // NOP is an internal no-op that also stands
46
48
        // for USED and SET annotations, not the Intel opcode.
136
138
        [AFMOVW]=       {SizeW | LeftAddr | RightWrite},
137
139
        [AFMOVV]=       {SizeQ | LeftAddr | RightWrite},
138
140
 
139
 
        [AFMOVDP]=      {SizeD | LeftRead | RightAddr},
140
 
        [AFMOVFP]=      {SizeF | LeftRead | RightAddr},
141
 
        [AFMOVLP]=      {SizeL | LeftRead | RightAddr},
142
 
        [AFMOVWP]=      {SizeW | LeftRead | RightAddr},
143
 
        [AFMOVVP]=      {SizeQ | LeftRead | RightAddr},
 
141
        // These instructions are marked as RightAddr
 
142
        // so that the register optimizer does not try to replace the
 
143
        // memory references with integer register references.
 
144
        // But they do not use the previous value at the address, so
 
145
        // we also mark them RightWrite.
 
146
        [AFMOVDP]=      {SizeD | LeftRead | RightWrite | RightAddr},
 
147
        [AFMOVFP]=      {SizeF | LeftRead | RightWrite | RightAddr},
 
148
        [AFMOVLP]=      {SizeL | LeftRead | RightWrite | RightAddr},
 
149
        [AFMOVWP]=      {SizeW | LeftRead | RightWrite | RightAddr},
 
150
        [AFMOVVP]=      {SizeQ | LeftRead | RightWrite | RightAddr},
144
151
 
145
152
        [AFMULD]=       {SizeD | LeftAddr | RightRdwr},
146
153
        [AFMULDP]=      {SizeD | LeftAddr | RightRdwr},
193
200
        [AMOVSB]=       {OK, DI|SI, DI|SI},
194
201
        [AMOVSL]=       {OK, DI|SI, DI|SI},
195
202
        [AMOVSW]=       {OK, DI|SI, DI|SI},
 
203
        [ADUFFCOPY]=    {OK, DI|SI, DI|SI|CX},
196
204
 
197
205
        [AMOVSD]=       {SizeD | LeftRead | RightWrite | Move},
198
206
        [AMOVSS]=       {SizeF | LeftRead | RightWrite | Move},
285
293
        [ASTOSB]=       {OK, AX|DI, DI},
286
294
        [ASTOSL]=       {OK, AX|DI, DI},
287
295
        [ASTOSW]=       {OK, AX|DI, DI},
 
296
        [ADUFFZERO]=    {OK, AX|DI, DI},
288
297
 
289
298
        [ASUBB]=        {SizeB | LeftRead | RightRdwr | SetCarry},
290
299
        [ASUBL]=        {SizeL | LeftRead | RightRdwr | SetCarry},