~ubuntu-branches/ubuntu/utopic/linux86/utopic

« back to all changes in this revision

Viewing changes to bcc/longop.c

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2007-12-07 20:33:39 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20071207203339-uonmnsb2j32kh0sg
Tags: 0.16.17-2ubuntu1
* Merge with Debian; remaining changes:
  - Build elks-libc for lpia.

Show diffs side-by-side

added added

removed removed

Lines of Context:
39
39
    else
40
40
        scalar |= source->type->scalar;
41
41
    if ((source->indcount == 0 && !shiftflag) ||
42
 
        source->storage & (DREG | OPREG | OPWORKREG))
 
42
        source->type->scalar & CHAR ||
 
43
        source->storage & (BREG | DREG | OPREG | OPWORKREG))
43
44
    {
44
45
        pres2(source, target);
45
46
        push(source);
60
61
        if (source->offset.offv == 0)
61
62
            goto shiftdone;
62
63
    }
 
64
#ifdef I8088
 
65
    /* This is ugly! But it works. I should be able to stop it being used
 
66
     * by removing the char demotion. */
 
67
    if (source->type->scalar & CHAR && 
 
68
          !(source->storage & (BREG|DREG|DATREG1B))) {
 
69
        load(source, DATREG1B);
 
70
        outop2str("xor\tch,ch"); outnl();
 
71
        source->storage = DATREG1;
 
72
    }
 
73
#endif
63
74
    load(source, OPWORKREG);
64
75
    switch ((op_t) op)
65
76
    {