mirror of
https://github.com/AntKrotov/oberon-07-compiler.git
synced 2026-10-05 09:45:47 +00:00
мелкие правки
This commit is contained in:
1 parent
a0944ed282
commit
98d5d82f9b
6 files changed
+14
-14
No files matched your search
Binary file not shown.
+1
-1
@@ -2011,7 +2011,7 @@ BEGIN
|
||||
|
||||
|IL.opASR2, IL.opROR2, IL.opLSL2, IL.opLSR2:
|
||||
UnOp(reg1);
|
||||
shiftrc(opcode, reg1, ORD(BITS(param2) * {0..5}))
|
||||
shiftrc(opcode, reg1, param2 MOD 64)
|
||||
|
||||
|IL.opGET, IL.opGETC:
|
||||
IF opcode = IL.opGET THEN
|
||||
|
||||
+8
-8
@@ -84,16 +84,16 @@ CONST
|
||||
opSYSVCALL* = 217; opSYSVCALLI* = 218; opSYSVCALLP* = 219; opSYSVALIGN16* = 220; opWIN64ALIGN16* = 221;
|
||||
|
||||
|
||||
opSADR_PARAM* = 1000; opLOAD64_PARAM* = 1001; opLLOAD64_PARAM* = 1002; opGLOAD64_PARAM* = 1003;
|
||||
opVADR_PARAM* = 1004; opCONST_PARAM* = 1005; opGLOAD32_PARAM* = 1006; opLLOAD32_PARAM* = 1007;
|
||||
opLOAD32_PARAM* = 1008;
|
||||
opSADR_PARAM* = -1; opLOAD64_PARAM* = -2; opLLOAD64_PARAM* = -3; opGLOAD64_PARAM* = -4;
|
||||
opVADR_PARAM* = -5; opCONST_PARAM* = -6; opGLOAD32_PARAM* = -7; opLLOAD32_PARAM* = -8;
|
||||
opLOAD32_PARAM* = -9;
|
||||
|
||||
opLADR_SAVEC* = 1009; opGADR_SAVEC* = 1010; opLADR_SAVE* = 1011;
|
||||
opLADR_SAVEC* = -10; opGADR_SAVEC* = -11; opLADR_SAVE* = -12;
|
||||
|
||||
opLADR_INCC* = 1014; opLADR_INCCB* = 1018; opLADR_DECCB* = 1019;
|
||||
opLADR_INC* = 1020; opLADR_DEC* = 1021; opLADR_INCB* = 1022; opLADR_DECB* = 1023;
|
||||
opLADR_INCL* = 1024; opLADR_EXCL* = 1025; opLADR_INCLC* = 1026; opLADR_EXCLC* = 1027;
|
||||
opLADR_UNPK* = 1028;
|
||||
opLADR_INCC* = -13; opLADR_INCCB* = -14; opLADR_DECCB* = -15;
|
||||
opLADR_INC* = -16; opLADR_DEC* = -17; opLADR_INCB* = -18; opLADR_DECB* = -19;
|
||||
opLADR_INCL* = -20; opLADR_EXCL* = -21; opLADR_INCLC* = -22; opLADR_EXCLC* = -23;
|
||||
opLADR_UNPK* = -24;
|
||||
|
||||
|
||||
_move *= 0;
|
||||
|
||||
+4
-4
@@ -127,7 +127,7 @@ VAR
|
||||
BEGIN
|
||||
IF val < 0 THEN
|
||||
ASSERT(val >= -32768);
|
||||
val := ORD(BITS(val) * {0..15})
|
||||
val := val MOD 65536
|
||||
ELSE
|
||||
ASSERT(val <= 65535)
|
||||
END;
|
||||
@@ -245,7 +245,7 @@ END MovRR;
|
||||
|
||||
PROCEDURE PushImm (imm: INTEGER);
|
||||
BEGIN
|
||||
imm := UTILS.Long(imm MOD 65536);
|
||||
imm := UTILS.Long(imm);
|
||||
CASE imm OF
|
||||
| 0: Op1(opPUSH, CG, sREG)
|
||||
| 1: Op1(opPUSH, CG, sIDX)
|
||||
@@ -358,7 +358,7 @@ BEGIN
|
||||
ELSE
|
||||
diff := LabelOffs(cmd.label) - cmd.offset - 1;
|
||||
ASSERT((-512 <= diff) & (diff <= 511));
|
||||
PutWord(cmd.cc + ORD(BITS(diff) * {0..9}), adr)
|
||||
PutWord(cmd.cc + diff MOD 1024, adr)
|
||||
END
|
||||
|
||||
|CALL: PutWord(12B0H, adr); (* CALL @PC+ *)
|
||||
@@ -1207,7 +1207,7 @@ BEGIN
|
||||
GetRegA
|
||||
|
||||
|IL.opASR2, IL.opROR2, IL.opLSL2, IL.opLSR2:
|
||||
param2 := ORD(BITS(param2) * {0..3});
|
||||
param2 := param2 MOD 16;
|
||||
IF param2 # 0 THEN
|
||||
UnOp(reg1);
|
||||
Shift2(opcode, reg1, param2)
|
||||
|
||||
+1
-1
@@ -1367,7 +1367,7 @@ BEGIN
|
||||
|
||||
|IL.opASR2, IL.opROR2, IL.opLSL2, IL.opLSR2:
|
||||
UnOp(reg1);
|
||||
n := ORD(BITS(param2) * {0..4});
|
||||
n := param2 MOD 32;
|
||||
IF n # 1 THEN
|
||||
OutByte(0C1H)
|
||||
ELSE
|
||||
|
||||
Reference in new issue
Block a user