Skip to content

Commit 37c0fc5

Browse files
committed
Delay updating RSP until after the memory write when executing 'push'
Closes #10
1 parent 412bb92 commit 37c0fc5

File tree

1 file changed

+24
-24
lines changed
  • python/icicle/Ghidra/Processors/x86/data/languages

1 file changed

+24
-24
lines changed

python/icicle/Ghidra/Processors/x86/data/languages/ia.sinc

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1145,78 +1145,78 @@ macro ptr8(r,x) {
11451145

11461146
macro push22(x) {
11471147
mysave:2 = x;
1148-
SP = SP -2;
1149-
tmp:$(SIZE) = segment(SS,SP);
1148+
tmp:$(SIZE) = segment(SS,SP-2);
11501149
*:2 tmp = mysave;
1150+
SP = SP-2;
11511151
}
11521152

11531153
macro push24(x) {
11541154
mysave:4 = x;
1155-
SP = SP-4;
1156-
tmp:$(SIZE) = segment(SS,SP);
1155+
tmp:$(SIZE) = segment(SS,SP-4);
11571156
*:4 tmp = mysave;
1157+
SP = SP-4;
11581158
}
11591159

11601160
macro push28(x) {
11611161
mysave:8 = x;
1162-
SP = SP-8;
1163-
tmp:$(SIZE) = segment(SS,SP);
1162+
tmp:$(SIZE) = segment(SS,SP-8);
11641163
*:8 tmp = mysave;
1164+
SP = SP-8;
11651165
}
11661166

11671167
macro push42(x) {
11681168
mysave:2 = x;
1169-
$(STACKPTR) = $(STACKPTR) - 2;
1170-
*:2 $(STACKPTR) = mysave;
1169+
*:2 ($(STACKPTR)-2) = mysave;
1170+
$(STACKPTR) = $(STACKPTR)-2;
11711171
}
11721172

11731173
macro push44(x) {
11741174
mysave:4 = x;
1175-
$(STACKPTR) = $(STACKPTR) - 4;
1176-
*:4 $(STACKPTR) = mysave;
1175+
*:4 ($(STACKPTR)-4) = mysave;
1176+
$(STACKPTR) = $(STACKPTR)-4;
11771177
}
11781178

11791179
macro pushseg44(x) {
11801180
mysave:2 = x;
1181-
$(STACKPTR) = $(STACKPTR) - 4;
1182-
*:2 $(STACKPTR) = mysave;
1181+
*:2 ($(STACKPTR)-4) = mysave;
1182+
$(STACKPTR) = $(STACKPTR)-4;
11831183
}
11841184

11851185
macro push48(x) {
11861186
mysave:8 = x;
1187-
$(STACKPTR) = $(STACKPTR) - 8;
1188-
*:8 $(STACKPTR) = mysave;
1187+
*:8 ($(STACKPTR)-8) = mysave;
1188+
$(STACKPTR) = $(STACKPTR)-8;
11891189
}
11901190

11911191
@ifdef IA64
11921192
macro push82(x) {
11931193
mysave:2 = x;
1194-
$(STACKPTR) = $(STACKPTR) - 2;
1195-
*:2 $(STACKPTR) = mysave;
1194+
*:2 ($(STACKPTR)-2) = mysave;
1195+
$(STACKPTR) = $(STACKPTR)-2;
11961196
}
11971197

11981198
macro push84(x) {
11991199
mysave:4 = x;
1200-
$(STACKPTR) = $(STACKPTR) - 4;
1201-
*:4 $(STACKPTR) = mysave;
1200+
*:4 ($(STACKPTR)-4) = mysave;
1201+
$(STACKPTR) = $(STACKPTR)-4;
12021202
}
12031203

12041204
macro push88(x) {
12051205
mysave:8 = x;
1206-
$(STACKPTR) = $(STACKPTR) - 8;
1207-
*:8 $(STACKPTR) = mysave;
1206+
*:8 ($(STACKPTR)-8) = mysave;
1207+
$(STACKPTR) = $(STACKPTR)-8;
12081208
}
12091209

12101210
macro pushseg82(x) {
12111211
mysave:2 = x;
1212-
$(STACKPTR) = $(STACKPTR) - 2;
1213-
*:2 $(STACKPTR) = mysave;
1212+
*:2 ($(STACKPTR)-2) = mysave;
1213+
$(STACKPTR) = $(STACKPTR)-2;
12141214
}
12151215

12161216
macro pushseg88(x) {
12171217
mysave:2 = x;
1218-
$(STACKPTR) = $(STACKPTR) - 8;
1219-
*:2 $(STACKPTR) = mysave;
1218+
*:2 ($(STACKPTR)-8) = mysave;
1219+
$(STACKPTR) = $(STACKPTR)-8;
12201220
}
12211221
@endif
12221222

0 commit comments

Comments
 (0)