Subversion Repositories Kolibri OS

Rev

Rev 6613 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6613 Rev 7107
Line 1... Line 1...
1
(*
1
(*
2
    Copyright 2016 Anton Krotov
2
    Copyright 2016, 2017 Anton Krotov
Line 3... Line 3...
3
 
3
 
Line 4... Line 4...
4
    This file is part of Compiler.
4
    This file is part of Compiler.
5
 
5
 
Line 34... Line 34...
34
  stABS* = 1; stODD* = 2; stLEN* = 3; stLSL* = 4; stASR* = 5; stROR* = 6; stFLOOR* = 7;
34
  stABS* = 1; stODD* = 2; stLEN* = 3; stLSL* = 4; stASR* = 5; stROR* = 6; stFLOOR* = 7;
35
  stFLT* = 8; stORD* = 9; stCHR* = 10; stLONG* = 11; stSHORT* = 12; stINC* = 13;
35
  stFLT* = 8; stORD* = 9; stCHR* = 10; stLONG* = 11; stSHORT* = 12; stINC* = 13;
36
  stDEC* = 14; stINCL* = 15; stEXCL* = 16; stCOPY* = 17; stNEW* = 18; stASSERT* = 19;
36
  stDEC* = 14; stINCL* = 15; stEXCL* = 16; stCOPY* = 17; stNEW* = 18; stASSERT* = 19;
37
  stPACK* = 20; stUNPK* = 21; stDISPOSE* = 22; stFABS* = 23; stINC1* = 24;
37
  stPACK* = 20; stUNPK* = 21; stDISPOSE* = 22; stFABS* = 23; stINC1* = 24;
38
  stDEC1* = 25; stASSERT1* = 26; stUNPK1* = 27; stPACK1* = 28; stLSR* = 29;
38
  stDEC1* = 25; stASSERT1* = 26; stUNPK1* = 27; stPACK1* = 28; stLSR* = 29;
39
  stLENGTH* = 30;
39
  stLENGTH* = 30; stMIN* = 31; stMAX* = 32;
Line 40... Line 40...
40
 
40
 
Line 41... Line 41...
41
  sysMOVE* = 108;
41
  sysMOVE* = 108;
42
 
42
 
Line 1230... Line 1230...
1230
  |stODD:    OutCode("83242401")
1230
  |stODD:    OutCode("83242401")
1231
  |stROR:    PopECX; OutCode("58D3C8"); PushEAX
1231
  |stROR:    PopECX; OutCode("58D3C8"); PushEAX
1232
  |stASR:    PopECX; OutCode("58D3F8"); PushEAX
1232
  |stASR:    PopECX; OutCode("58D3F8"); PushEAX
1233
  |stLSL:    PopECX; OutCode("58D3E0"); PushEAX
1233
  |stLSL:    PopECX; OutCode("58D3E0"); PushEAX
1234
  |stLSR:    PopECX; OutCode("58D3E8"); PushEAX
1234
  |stLSR:    PopECX; OutCode("58D3E8"); PushEAX
1235
  |stORD:    PopEDX; OutCode("85D274036A015A"); PushEDX
1235
  |stORD:    PopEDX; OutCode("85D274036A015A"); PushEDX;
-
 
1236
  |stMIN:    PopEDX; OutCode("3914247E025852");
-
 
1237
  |stMAX:    PopEDX; OutCode("3B14247E025852");
1236
  |stLENGTH: CallRTL(_length); PushEAX
1238
  |stLENGTH: CallRTL(_length); PushEAX
1237
  ELSE
1239
  ELSE
1238
  END
1240
  END
1239
END StFunc;
1241
END StFunc;
Line 1267... Line 1269...
1267
      OutCode("FF32")
1269
      OutCode("FF32")
1268
    END
1270
    END
1269
  |TCHAR, TBOOLEAN:
1271
  |TCHAR, TBOOLEAN:
1270
    IF lastcmd.tcmd = ECMD THEN
1272
    IF lastcmd.tcmd = ECMD THEN
1271
      del;
1273
      del;
1272
      OutCode("33D28A");
1274
      OutCode("0FB6");
1273
      IntByte("55", "95", offset);
1275
      IntByte("55", "95", offset);
1274
      PushEDX
1276
      PushEDX
1275
    ELSE
1277
    ELSE
1276
      PopEDX;
1278
      PopEDX;
1277
      OutCode("33C98A0A");
1279
      OutCode("0FB60A");
1278
      PushECX
1280
      PushECX
1279
    END
1281
    END
1280
  |TLONGREAL:
1282
  |TLONGREAL:
1281
    IF lastcmd.tcmd = ECMD THEN
1283
    IF lastcmd.tcmd = ECMD THEN
1282
      del;
1284
      del;