Skip to content

Commit 898057d

Browse files
authored
feat: remove the not really necessary xchgArgs Args variant (#16)
1 parent 1f99cc1 commit 898057d

File tree

5 files changed

+2
-68
lines changed

5 files changed

+2
-68
lines changed

src/generator/gen-constructors.ts

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -104,22 +104,13 @@ const generateArgs = (args: $.args): CompiledArgs => {
104104
switch (args.$) {
105105
case "simpleArgs":
106106
return generateSimpleArgs(args)
107-
case "xchgArgs":
108-
return generateXchgArgs(args)
109107
case "dictpush":
110108
return generateDictpush(args)
111109
}
112110

113111
throw new Error("Unexpected arg type")
114112
}
115113

116-
const generateXchgArgs = (_args: $.xchgArgs): CompiledArgs => {
117-
return [
118-
["arg0", t.tsNumberKeyword()],
119-
["arg1", t.tsNumberKeyword()],
120-
]
121-
}
122-
123114
const generateDictpush = (_args: $.dictpush): CompiledArgs => {
124115
return [
125116
// TODO: rename parameters

src/generator/gen-converter.ts

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -202,8 +202,6 @@ const argsLen = (args: $.args): number => {
202202
switch (args.$) {
203203
case "simpleArgs":
204204
return args.children.length
205-
case "xchgArgs":
206-
return 2
207205
case "dictpush":
208206
return 2
209207
}
@@ -405,32 +403,10 @@ const generateDictpush = (name: string): t.Statement[] => {
405403
]
406404
}
407405

408-
const generateXchgArgs = (name: string): t.Statement[] => {
409-
return [
410-
t.variableDeclaration("const", [
411-
t.variableDeclarator(
412-
t.identifier("args"),
413-
t.callExpression(t.memberExpression(UTIL_QUALIFIER, t.identifier("twoStackArgs")), [
414-
t.identifier("instr"),
415-
]),
416-
),
417-
]),
418-
t.returnStatement(
419-
t.callExpression(t.memberExpression(RUNTIME_QUALIFIER, t.identifier(name)), [
420-
t.memberExpression(t.identifier("args"), t.numericLiteral(0), true),
421-
t.memberExpression(t.identifier("args"), t.numericLiteral(1), true),
422-
t.identifier("loc"),
423-
]),
424-
),
425-
]
426-
}
427-
428406
const generateArgs = (name: string, args: $.args): t.Statement[] => {
429407
switch (args.$) {
430408
case "simpleArgs":
431409
return generateSimpleArgs(name, args.children)
432-
case "xchgArgs":
433-
return generateXchgArgs(name)
434410
case "dictpush":
435411
return generateDictpush(name)
436412
}

src/generator/gen-printer.ts

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,6 @@ const argsLen = (args: $.args): number => {
113113
switch (args.$) {
114114
case "simpleArgs":
115115
return args.children.length
116-
case "xchgArgs":
117-
return 2
118116
case "dictpush":
119117
return 2
120118
}
@@ -218,22 +216,10 @@ const generateDictpush = (): t.Statement[] => {
218216
]
219217
}
220218

221-
const generateXchgArgs = (): t.Statement[] => {
222-
return [
223-
writeAppend("s"),
224-
writeToString("arg0"),
225-
writeAppend(" "),
226-
writeAppend("s"),
227-
writeToString("arg1"),
228-
]
229-
}
230-
231219
const generateArgs = (args: $.args): t.Statement[] => {
232220
switch (args.$) {
233221
case "simpleArgs":
234222
return generateSimpleArgs(args.children)
235-
case "xchgArgs":
236-
return generateXchgArgs()
237223
case "dictpush":
238224
return generateDictpush()
239225
}

src/generator/gen-types.ts

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -163,8 +163,6 @@ const generateLoadArgs = (args: $.args): (t.Expression | t.SpreadElement)[] => {
163163
switch (args.$) {
164164
case "simpleArgs":
165165
return generateSimpleArgs(args).map(arg => wrapIntoLoad(arg))
166-
case "xchgArgs":
167-
return generateXchgArgs(args).map(arg => wrapIntoLoad(arg))
168166
case "dictpush":
169167
return generateDictpush(args).map(arg => t.spreadElement(wrapIntoLoad(arg)))
170168
}
@@ -176,8 +174,6 @@ const generateStoreArgs = (args: $.args): t.Statement[] => {
176174
switch (args.$) {
177175
case "simpleArgs":
178176
return generateSimpleArgs(args).map((arg, index) => wrapIntoStore(`arg${index}`, arg))
179-
case "xchgArgs":
180-
return generateXchgArgs(args).map((arg, index) => wrapIntoStore(`arg${index}`, arg))
181177
case "dictpush":
182178
return [
183179
wrapIntoArrayStore(
@@ -190,18 +186,6 @@ const generateStoreArgs = (args: $.args): t.Statement[] => {
190186
throw new Error("Unexpected arg type")
191187
}
192188

193-
// uint(4), uint(4)
194-
const generateXchgArgs = (_args: $.xchgArgs): t.Expression[] => {
195-
return [
196-
t.callExpression(t.memberExpression(UTIL_QUALIFIER, t.identifier("uint")), [
197-
t.numericLiteral(4),
198-
]),
199-
t.callExpression(t.memberExpression(UTIL_QUALIFIER, t.identifier("uint")), [
200-
t.numericLiteral(4),
201-
]),
202-
]
203-
}
204-
205189
// codeSlice(uint(2), uint(7))
206190
const generateCodeSlice = (args: $.codeSlice): t.Expression => {
207191
return t.callExpression(t.memberExpression(UTIL_QUALIFIER, t.identifier("codeSlice")), [

src/generator/instructions.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -76,14 +76,11 @@ export const hash: hash = {$: "hash"}
7676
export type setcpArg = {$: "setcpArg", range: range}
7777
export const setcpArg: setcpArg = {$: "setcpArg", range: range(-15n, 239n)}
7878

79-
export type args = simpleArgs | xchgArgs | dictpush
79+
export type args = simpleArgs | dictpush
8080

8181
export type simpleArgs = {$: "simpleArgs", children: arg[]}
8282
export const seq = (...args: arg[]): simpleArgs => ({$: "simpleArgs", children: args})
8383

84-
export type xchgArgs = {$: "xchgArgs", range: range}
85-
export const xchgArgs: xchgArgs = {$: "xchgArgs", range: range(1n, 16n)}
86-
8784
export type codeSlice = {$: "codeSlice", refs: arg, bits: arg}
8885
export const codeSlice = (refs: arg, bits: arg): codeSlice => ({$: "codeSlice", refs, bits})
8986

@@ -1289,7 +1286,7 @@ export const instructions: Record<string, Opcode> = {
12891286

12901287
XCHG_0I_LONG: cat("stack", mkfixedn(0x11, 8, 8, seq(stack2(8, 1n)), `exec_xchg0_l`)),
12911288
XCHG_0I: cat("stack", mkfixedrangen(0x02, 0x10, 8, 4, seq(stack2(4, 1n)), `exec_xchg0`)),
1292-
XCHG_IJ: cat("stack", mkfixedn(0x10, 8, 8, xchgArgs, `exec_xchg`)),
1289+
XCHG_IJ: cat("stack", mkfixedn(0x10, 8, 8, seq(stack2(4, 1n), stack(4)), `exec_xchg`)),
12931290
XCHG_1I: cat("stack", mkfixedrangen(0x12, 0x20, 8, 4, seq(s1, stack2(4, 2n)), `exec_xchg1`)),
12941291

12951292
// special case: opcode with holes

0 commit comments

Comments
 (0)