~ubuntu-branches/ubuntu/lucid/fpc/lucid-proposed

« back to all changes in this revision

Viewing changes to fpcsrc/compiler/powerpc64/rappcgas.pas

  • Committer: Bazaar Package Importer
  • Author(s): Mazen Neifer, Torsten Werner, Mazen Neifer
  • Date: 2008-10-09 23:29:00 UTC
  • mfrom: (4.1.1 sid)
  • Revision ID: james.westby@ubuntu.com-20081009232900-553f61m37jkp6upv
Tags: 2.2.2-4
[ Torsten Werner ]
* Update ABI version in fpc-depends automatically.
* Remove empty directories from binary package fpc-source.

[ Mazen Neifer ]
* Removed leading path when calling update-alternatives to remove a Linitian
  error.
* Fixed clean target.
* Improved description of packages. (Closes: #498882)

Show diffs side-by-side

added added

removed removed

Lines of Context:
116
116
        oper.opr.ref.refaddr := addr_highest                
117
117
      else
118
118
        Message(asmr_e_invalid_reference_syntax);
 
119
 
 
120
      { darwin/ppc64's relocation symbols are 32 bits }
 
121
      if (target_info.system = system_powerpc64_darwin) and
 
122
        (not (oper.opr.ref.refaddr in [addr_no, addr_low, addr_higha])) then
 
123
        Message(asmr_e_invalid_reference_syntax);
 
124
 
119
125
      Consume(AS_ID);
120
126
    end
121
127
    else
145
151
 
146
152
var
147
153
  l: aint;
 
154
  relsym: string;
 
155
  asmsymtyp: tasmsymtype;
148
156
 
149
157
begin
150
158
  Consume(AS_LPAREN);
201
209
    AS_ID:
202
210
      begin
203
211
        ReadSym(oper);
204
 
        { add a constant expression? }
205
 
        if (actasmtoken = AS_PLUS) then
206
 
        begin
207
 
          l := BuildConstExpression(true, true);
208
 
          case oper.opr.typ of
209
 
            OPR_CONSTANT:
210
 
              inc(oper.opr.val, l);
211
 
            OPR_LOCAL:
212
 
              inc(oper.opr.localsymofs, l);
213
 
            OPR_REFERENCE:
214
 
              inc(oper.opr.ref.offset, l);
215
 
          else
216
 
            internalerror(200309202);
217
 
          end;
 
212
        case actasmtoken of
 
213
          AS_PLUS:
 
214
            begin
 
215
              { add a constant expression? }
 
216
              l:=BuildConstExpression(true,true);
 
217
              case oper.opr.typ of
 
218
                OPR_CONSTANT :
 
219
                  inc(oper.opr.val,l);
 
220
                OPR_LOCAL :
 
221
                  inc(oper.opr.localsymofs,l);
 
222
                OPR_REFERENCE :
 
223
                  inc(oper.opr.ref.offset,l);
 
224
                else
 
225
                  internalerror(200309202);
 
226
              end;
 
227
            end;
 
228
          AS_MINUS:
 
229
            begin
 
230
              Consume(AS_MINUS);
 
231
              BuildConstSymbolExpression(false,true,false,l,relsym,asmsymtyp);
 
232
              if (relsym<>'') then
 
233
                begin
 
234
                  if (oper.opr.typ = OPR_REFERENCE) then
 
235
                    oper.opr.ref.relsymbol:=current_asmdata.RefAsmSymbol(relsym)
 
236
                  else
 
237
                    begin
 
238
                      Message(asmr_e_invalid_reference_syntax);
 
239
                      RecoverConsume(false);
 
240
                    end
 
241
                end
 
242
              else
 
243
                begin
 
244
                  case oper.opr.typ of
 
245
                    OPR_CONSTANT :
 
246
                      dec(oper.opr.val,l);
 
247
                    OPR_LOCAL :
 
248
                      dec(oper.opr.localsymofs,l);
 
249
                    OPR_REFERENCE :
 
250
                      dec(oper.opr.ref.offset,l);
 
251
                    else
 
252
                      internalerror(2007092601);
 
253
                  end;
 
254
                end;
 
255
            end;
218
256
        end;
219
257
        Consume(AS_RPAREN);
220
258
        if actasmtoken = AS_AT then