From 77bbd3ba84ab0c165df26f32f269dacaebc1cbd8 Mon Sep 17 00:00:00 2001 From: AntKrotov Date: Sun, 5 Jan 2020 21:42:05 +0300 Subject: [PATCH] =?UTF-8?q?MSP430:=20=D0=B1=D0=B5=D0=B7=20=D1=83=D0=BA?= =?UTF-8?q?=D0=B0=D0=B7=D0=B0=D1=82=D0=B5=D0=BB=D1=8F=20=D0=BA=D0=B0=D0=B4?= =?UTF-8?q?=D1=80=D0=B0=20=D1=81=D1=82=D1=8D=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Compiler | Bin 310288 -> 310528 bytes Compiler.exe | Bin 312320 -> 312320 bytes doc/MSP430.txt | 39 +++++----------------- source/MSP430.ob07 | 79 ++++++++++++++++++++++++++------------------- source/UTILS.ob07 | 2 +- 5 files changed, 54 insertions(+), 66 deletions(-) diff --git a/Compiler b/Compiler index 7041fffb6196b73e4c7adecee7e2b8cde0d281a7..13ca719ff7cb1d8768a85978901634d5672ecc07 100644 GIT binary patch delta 49443 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 jug523I3a^ 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 diff --git a/Compiler.exe b/Compiler.exe index 05e7cc65daa653536556ecff5fc80317cdae8a0d..e7ad34294f5ccddccfab92721c81f3d3faec1e45 100644 GIT binary patch delta 33008 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 delta 32758 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 qLggm|xxn бОльшие адреса + меньшие адреса <- |var3|var2|var1|PC|arg1|arg2|arg3| -> бОльшие адреса - R15 - значение регистра R15 перед вызовом PC - значение регистра PC перед вызовом (адрес возврата) argX - параметры в порядке объявления (слева направо) varX - локальные переменные в порядке использования в процедуре @@ -230,30 +228,10 @@ Oberon-реализациях выполнение такой операции записи) занимают место в стэке в соответствии с их размером (с учетом выравнивания). - Адресация кадра стэка: - 0(R15) - предыдущее значение регистра R15 - 2(R15) - адрес возврата - 4(R15) - arg1 - 6(R15) - arg2 - -2(R15) - var1 - -4(R15) - var2 - Размещение локальных переменных зависит от их размеров и порядка использования, и в общем случае неопределенно. Если переменная не используется явно, то компилятор не выделяет для нее место в стэке. - Пролог процедуры: - PUSH R15 ; сохранить предыдущее значение - MOV SP, R15 ; настроить указатель кадра - PUSH #0 ; выделить место для локальных переменных с обнулением - PUSH #0 - ... - - Эпилог процедуры: - MOV R15, SP ; удалить локальные переменные (если есть) - POP R15 ; восстановить предыдущее значение - RET ; возврат - ------------------------------------------------------------------------------ Скрытые параметры процедур @@ -294,9 +272,8 @@ Oberon-реализациях выполнение такой операции 2000H + 400H - 3; (* JNZ L2 *) (* L1: *) - Для таких процедур компилятор не генерирует код пролога. Эпилог состоит -из единственной машинной команды "MOV @SP+, PC", она же "POP PC", -она же "RET". Способ передачи параметров и результата не изменяется. + Компилятор автоматически добавляет к такой процедуре команду RET. + Способ передачи параметров и результата не изменяется. Кодовые процедуры можно использовать также и для добавления в программу константных данных: @@ -341,12 +318,12 @@ SYSTEM. PUSH #30 ; поместить в стэк приоритет прерывания Label: - MOV SP, R13 ; настроить R13 на структуру данных прерывания (см. далее) + MOV SP, R15 ; настроить R15 на структуру данных прерывания (см. далее) PUSH R4 ; сохранить рабочие регистры (R4 - R7) ... PUSH R7 - PUSH R13 ; передать параметр interrupt в обработчик (см. далее) - PUSH @R13 ; передать параметр priority в обработчик (см. далее) + PUSH R15 ; передать параметр interrupt в обработчик (см. далее) + PUSH @R15 ; передать параметр priority в обработчик (см. далее) CALL int ; вызвать обработчик (см. далее) ADD #4, SP ; удалить из стэка параметры обработчика POP R7 ; восстановить рабочие регистры (R7 - R4) diff --git a/source/MSP430.ob07 b/source/MSP430.ob07 index c43a63b..e28eabf 100644 --- a/source/MSP430.ob07 +++ b/source/MSP430.ob07 @@ -24,7 +24,7 @@ CONST R4 = 4; R5 = 5; R6 = 6; R7 = 7; - IR = 13; HP = 14; BP = 15; + HP = 14; IR = 15; ACC = R4; @@ -108,6 +108,8 @@ VAR IdxWords: RECORD src, dst: INTEGER END; + StkCnt: INTEGER; + PROCEDURE EmitLabel (L: INTEGER); VAR @@ -254,7 +256,8 @@ BEGIN ELSE Op1(opPUSH, PC, sINCR); EmitWord(imm) - END + END; + INC(StkCnt) END PushImm; @@ -376,13 +379,15 @@ END Fixup; PROCEDURE Push (reg: INTEGER); BEGIN - Op1(opPUSH, reg, sREG) + Op1(opPUSH, reg, sREG); + INC(StkCnt) END Push; PROCEDURE Pop (reg: INTEGER); BEGIN - Op2(opMOV, incr(SP), reg) + Op2(opMOV, incr(SP), reg); + DEC(StkCnt) END Pop; @@ -430,7 +435,8 @@ BEGIN EmitCall(RTL.rtl[proc].label); RTL.Used(proc); IF params > 0 THEN - Op2(opADD, imm(params * 2), SP) + Op2(opADD, imm(params * 2), SP); + DEC(StkCnt, params) END END CallRTL; @@ -582,6 +588,11 @@ BEGIN END Neg; +PROCEDURE LocalOffset (offset: INTEGER): INTEGER; + RETURN (offset + StkCnt - ORD(offset > 0)) * 2 +END LocalOffset; + + PROCEDURE translate; VAR cmd, next: COMMAND; @@ -623,6 +634,7 @@ BEGIN |IL.opSADR_PARAM: Op1(opPUSH, PC, sINCR); + INC(StkCnt); EmitWord(param2); Reloc(RDATA) @@ -634,6 +646,7 @@ BEGIN |IL.opONERR: PushImm(param2); + DEC(StkCnt); EmitJmp(opJMP, param1) |IL.opLEAVEC: @@ -641,12 +654,8 @@ BEGIN |IL.opENTER: ASSERT(R.top = -1); - + StkCnt := 0; EmitLabel(param1); - - Push(BP); - MovRR(SP, BP); - IF param2 > 8 THEN Op2(opMOV, imm(param2), R4); L := NewLabel(); @@ -672,14 +681,11 @@ BEGIN END; drop END; - ASSERT(R.top = -1); - + ASSERT(StkCnt = param1); IF param1 > 0 THEN - MovRR(BP, SP) + Op2(opADD, imm(param1 * 2), SP) END; - - Pop(BP); Pop(PC) |IL.opRES: @@ -688,7 +694,8 @@ BEGIN |IL.opCLEANUP: IF param2 # 0 THEN - Op2(opADD, imm(param2 * 2), SP) + Op2(opADD, imm(param2 * 2), SP); + DEC(StkCnt, param2) END |IL.opCONST: @@ -724,14 +731,14 @@ BEGIN |IL.opLADR: reg1 := GetAnyReg(); - MovRR(BP, reg1); - Op2(opADD, imm(param2 * 2), reg1) + Op2(opMOV, imm(LocalOffset(param2)), reg1); + Op2(opADD, SP * 256, reg1) |IL.opLLOAD8: - Op2(opMOV + BW, src_x(param2 * 2, BP), GetAnyReg()) + Op2(opMOV + BW, src_x(LocalOffset(param2), SP), GetAnyReg()) |IL.opLLOAD16, IL.opVADR: - Op2(opMOV, src_x(param2 * 2, BP), GetAnyReg()) + Op2(opMOV, src_x(LocalOffset(param2), SP), GetAnyReg()) |IL.opGLOAD8: Op2(opMOV + BW, src_x(param2, SR), GetAnyReg()); @@ -751,12 +758,12 @@ BEGIN |IL.opVLOAD8: reg1 := GetAnyReg(); - Op2(opMOV, src_x(param2 * 2, BP), reg1); + Op2(opMOV, src_x(LocalOffset(param2), SP), reg1); Op2(opMOV + BW, indir(reg1), reg1) |IL.opVLOAD16: reg1 := GetAnyReg(); - Op2(opMOV, src_x(param2 * 2, BP), reg1); + Op2(opMOV, src_x(LocalOffset(param2), SP), reg1); Op2(opMOV, indir(reg1), reg1) |IL.opSAVE, IL.opSAVE16: @@ -816,11 +823,11 @@ BEGIN END |IL.opLADR_SAVEC: - Op2(opMOV, imm(param2), dst_x(param1 * 2, BP)) + Op2(opMOV, imm(param2), dst_x(LocalOffset(param1), SP)) |IL.opLADR_SAVE: UnOp(reg1); - Op2(opMOV, reg1 * 256, dst_x(param2 * 2, BP)); + Op2(opMOV, reg1 * 256, dst_x(LocalOffset(param2), SP)); drop |IL.opGADR_SAVEC: @@ -975,19 +982,19 @@ BEGIN drop |IL.opLADR_INCC, IL.opLADR_INCCB: - Op2(opADD + bw(opcode = IL.opLADR_INCCB), imm(param2), dst_x(param1 * 2, BP)) + Op2(opADD + bw(opcode = IL.opLADR_INCCB), imm(param2), dst_x(LocalOffset(param1), SP)) |IL.opLADR_DECCB: - Op2(opSUB + BW, imm(param2), dst_x(param1 * 2, BP)) + Op2(opSUB + BW, imm(param2), dst_x(LocalOffset(param1), SP)) |IL.opLADR_INC, IL.opLADR_INCB: UnOp(reg1); - Op2(opADD + bw(opcode = IL.opLADR_INCB), reg1 * 256, dst_x(param2 * 2, BP)); + Op2(opADD + bw(opcode = IL.opLADR_INCB), reg1 * 256, dst_x(LocalOffset(param2), SP)); drop |IL.opLADR_DEC, IL.opLADR_DECB: UnOp(reg1); - Op2(opSUB + bw(opcode = IL.opLADR_DECB), reg1 * 256, dst_x(param2 * 2, BP)); + Op2(opSUB + bw(opcode = IL.opLADR_DECB), reg1 * 256, dst_x(LocalOffset(param2), SP)); drop |IL.opPUSHT: @@ -1024,6 +1031,7 @@ BEGIN UnOp(reg1); PushAll(0); Op1(opPUSH, reg1, sIDX); + INC(StkCnt); EmitWord(-2); PushImm(param2); CallRTL(RTL._guardrec, 2); @@ -1347,6 +1355,7 @@ BEGIN UnOp(reg1); PushAll_1; Op1(opPUSH, PC, sINCR); + INC(StkCnt); EmitWord(param2); Reloc(RDATA); Push(reg1); @@ -1426,8 +1435,10 @@ BEGIN END |IL.opVADR_PARAM: - Op1(opPUSH, BP, sIDX); - EmitWord(param2 * 2) + reg1 := GetAnyReg(); + Op2(opMOV, src_x(LocalOffset(param2), SP), reg1); + Push(reg1); + drop |IL.opNEW: PushAll(1); @@ -1499,8 +1510,8 @@ BEGIN |IL.opLADR_INCL, IL.opLADR_EXCL: PushAll(1); - MovRR(BP, ACC); - Op2(opADD, imm(param2 * 2), ACC); + MovRR(SP, ACC); + Op2(opADD, imm(LocalOffset(param2)), ACC); Push(ACC); IF opcode = IL.opLADR_INCL THEN CallRTL(RTL._incl, 2) @@ -1509,10 +1520,10 @@ BEGIN END |IL.opLADR_INCLC: - Op2(opBIS, imm(ORD({param2})), dst_x(param1 * 2, BP)) + Op2(opBIS, imm(ORD({param2})), dst_x(LocalOffset(param1), SP)) |IL.opLADR_EXCLC: - Op2(opBIC, imm(ORD({param2})), dst_x(param1 * 2, BP)) + Op2(opBIC, imm(ORD({param2})), dst_x(LocalOffset(param1), SP)) END; diff --git a/source/UTILS.ob07 b/source/UTILS.ob07 index 2d1df78..8e82b18 100644 --- a/source/UTILS.ob07 +++ b/source/UTILS.ob07 @@ -24,7 +24,7 @@ CONST max32* = 2147483647; vMajor* = 1; - vMinor* = 18; + vMinor* = 19; FILE_EXT* = ".ob07"; RTL_NAME* = "RTL";