@jhlagado/azm 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/README.md +110 -78
  2. package/dist/src/api-compile.d.ts +0 -2
  3. package/dist/src/api-compile.js +2 -9
  4. package/dist/src/assembly/address-planning.js +21 -1
  5. package/dist/src/assembly/program-emission.js +1 -0
  6. package/dist/src/cli/parse-args.d.ts +0 -1
  7. package/dist/src/cli/parse-args.js +0 -7
  8. package/dist/src/cli/write-artifacts.js +0 -11
  9. package/dist/src/core/compile.js +192 -9
  10. package/dist/src/expansion/op-expansion.js +2 -0
  11. package/dist/src/model/expression.d.ts +4 -0
  12. package/dist/src/model/source-item.d.ts +11 -0
  13. package/dist/src/outputs/index.js +0 -2
  14. package/dist/src/outputs/types.d.ts +3 -16
  15. package/dist/src/outputs/write-asm80.js +206 -5
  16. package/dist/src/register-care/analyze.js +36 -8
  17. package/dist/src/register-care/annotations.js +33 -146
  18. package/dist/src/register-care/fix.d.ts +2 -0
  19. package/dist/src/register-care/fix.js +52 -0
  20. package/dist/src/register-care/instruction-shape.d.ts +11 -0
  21. package/dist/src/register-care/instruction-shape.js +129 -0
  22. package/dist/src/register-care/liveness.js +15 -7
  23. package/dist/src/register-care/profiles.js +4 -0
  24. package/dist/src/register-care/programModel.js +79 -13
  25. package/dist/src/register-care/report.d.ts +2 -1
  26. package/dist/src/register-care/report.js +91 -34
  27. package/dist/src/register-care/routine-summaries.d.ts +6 -0
  28. package/dist/src/register-care/routine-summaries.js +89 -0
  29. package/dist/src/register-care/summaries.d.ts +3 -3
  30. package/dist/src/register-care/summaries.js +42 -75
  31. package/dist/{legacy-root-azm/src/registerCare → src/register-care}/summary.js +33 -51
  32. package/dist/src/register-care/types.d.ts +6 -1
  33. package/dist/src/semantics/expression-evaluation.d.ts +7 -3
  34. package/dist/src/semantics/expression-evaluation.js +57 -0
  35. package/dist/src/source/strip-line-comment.d.ts +2 -0
  36. package/dist/src/source/strip-line-comment.js +26 -0
  37. package/dist/src/syntax/directive-aliases.js +9 -10
  38. package/dist/src/syntax/parse-diagnostics.d.ts +12 -0
  39. package/dist/src/syntax/parse-diagnostics.js +18 -0
  40. package/dist/src/syntax/parse-expression.js +34 -9
  41. package/dist/src/syntax/parse-line.js +150 -54
  42. package/dist/src/tooling/case-style.js +3 -0
  43. package/docs/reference/cli.md +6 -4
  44. package/docs/reference/tooling-api.md +13 -9
  45. package/package.json +4 -6
  46. package/dist/legacy-root-azm/src/analysis.d.ts +0 -11
  47. package/dist/legacy-root-azm/src/analysis.js +0 -41
  48. package/dist/legacy-root-azm/src/compile.d.ts +0 -10
  49. package/dist/legacy-root-azm/src/compile.js +0 -186
  50. package/dist/legacy-root-azm/src/compileShared.d.ts +0 -3
  51. package/dist/legacy-root-azm/src/compileShared.js +0 -7
  52. package/dist/legacy-root-azm/src/diagnosticTypes.d.ts +0 -77
  53. package/dist/legacy-root-azm/src/diagnosticTypes.js +0 -53
  54. package/dist/legacy-root-azm/src/formats/index.d.ts +0 -7
  55. package/dist/legacy-root-azm/src/formats/index.js +0 -17
  56. package/dist/legacy-root-azm/src/formats/range.d.ts +0 -17
  57. package/dist/legacy-root-azm/src/formats/range.js +0 -45
  58. package/dist/legacy-root-azm/src/formats/types.d.ts +0 -283
  59. package/dist/legacy-root-azm/src/formats/types.js +0 -1
  60. package/dist/legacy-root-azm/src/formats/writeAsm80.d.ts +0 -6
  61. package/dist/legacy-root-azm/src/formats/writeAsm80.js +0 -86
  62. package/dist/legacy-root-azm/src/formats/writeBin.d.ts +0 -7
  63. package/dist/legacy-root-azm/src/formats/writeBin.js +0 -23
  64. package/dist/legacy-root-azm/src/formats/writeD8m.d.ts +0 -9
  65. package/dist/legacy-root-azm/src/formats/writeD8m.js +0 -245
  66. package/dist/legacy-root-azm/src/formats/writeHex.d.ts +0 -8
  67. package/dist/legacy-root-azm/src/formats/writeHex.js +0 -38
  68. package/dist/legacy-root-azm/src/formats/writeListing.d.ts +0 -8
  69. package/dist/legacy-root-azm/src/formats/writeListing.js +0 -83
  70. package/dist/legacy-root-azm/src/frontend/asm80/asmLine.d.ts +0 -39
  71. package/dist/legacy-root-azm/src/frontend/asm80/asmLine.js +0 -89
  72. package/dist/legacy-root-azm/src/frontend/asm80/parseAsmRawValues.d.ts +0 -4
  73. package/dist/legacy-root-azm/src/frontend/asm80/parseAsmRawValues.js +0 -94
  74. package/dist/legacy-root-azm/src/frontend/asm80/quoteScan.d.ts +0 -10
  75. package/dist/legacy-root-azm/src/frontend/asm80/quoteScan.js +0 -25
  76. package/dist/legacy-root-azm/src/frontend/ast.d.ts +0 -376
  77. package/dist/legacy-root-azm/src/frontend/ast.js +0 -1
  78. package/dist/legacy-root-azm/src/frontend/directiveAliases.d.ts +0 -14
  79. package/dist/legacy-root-azm/src/frontend/directiveAliases.js +0 -189
  80. package/dist/legacy-root-azm/src/frontend/grammarData.d.ts +0 -14
  81. package/dist/legacy-root-azm/src/frontend/grammarData.js +0 -65
  82. package/dist/legacy-root-azm/src/frontend/immExprUtils.d.ts +0 -2
  83. package/dist/legacy-root-azm/src/frontend/immExprUtils.js +0 -12
  84. package/dist/legacy-root-azm/src/frontend/parseAsmFlatDirectiveLine.d.ts +0 -17
  85. package/dist/legacy-root-azm/src/frontend/parseAsmFlatDirectiveLine.js +0 -187
  86. package/dist/legacy-root-azm/src/frontend/parseAsmInstruction.d.ts +0 -3
  87. package/dist/legacy-root-azm/src/frontend/parseAsmInstruction.js +0 -73
  88. package/dist/legacy-root-azm/src/frontend/parseAsmStatements.d.ts +0 -6
  89. package/dist/legacy-root-azm/src/frontend/parseAsmStatements.js +0 -16
  90. package/dist/legacy-root-azm/src/frontend/parseAsmStream.d.ts +0 -10
  91. package/dist/legacy-root-azm/src/frontend/parseAsmStream.js +0 -33
  92. package/dist/legacy-root-azm/src/frontend/parseAsmTopLevel.d.ts +0 -18
  93. package/dist/legacy-root-azm/src/frontend/parseAsmTopLevel.js +0 -34
  94. package/dist/legacy-root-azm/src/frontend/parseDiagnostics.d.ts +0 -9
  95. package/dist/legacy-root-azm/src/frontend/parseDiagnostics.js +0 -16
  96. package/dist/legacy-root-azm/src/frontend/parseEnum.d.ts +0 -12
  97. package/dist/legacy-root-azm/src/frontend/parseEnum.js +0 -70
  98. package/dist/legacy-root-azm/src/frontend/parseImm.d.ts +0 -10
  99. package/dist/legacy-root-azm/src/frontend/parseImm.js +0 -397
  100. package/dist/legacy-root-azm/src/frontend/parseLogicalLines.d.ts +0 -11
  101. package/dist/legacy-root-azm/src/frontend/parseLogicalLines.js +0 -94
  102. package/dist/legacy-root-azm/src/frontend/parseOp.d.ts +0 -25
  103. package/dist/legacy-root-azm/src/frontend/parseOp.js +0 -120
  104. package/dist/legacy-root-azm/src/frontend/parseOpHeader.d.ts +0 -20
  105. package/dist/legacy-root-azm/src/frontend/parseOpHeader.js +0 -32
  106. package/dist/legacy-root-azm/src/frontend/parseOperands.d.ts +0 -4
  107. package/dist/legacy-root-azm/src/frontend/parseOperands.js +0 -290
  108. package/dist/legacy-root-azm/src/frontend/parseParams.d.ts +0 -6
  109. package/dist/legacy-root-azm/src/frontend/parseParams.js +0 -62
  110. package/dist/legacy-root-azm/src/frontend/parseParserRecovery.d.ts +0 -12
  111. package/dist/legacy-root-azm/src/frontend/parseParserRecovery.js +0 -17
  112. package/dist/legacy-root-azm/src/frontend/parseParserShared.d.ts +0 -2
  113. package/dist/legacy-root-azm/src/frontend/parseParserShared.js +0 -8
  114. package/dist/legacy-root-azm/src/frontend/parseRawDataDirectiveStart.d.ts +0 -1
  115. package/dist/legacy-root-azm/src/frontend/parseRawDataDirectiveStart.js +0 -3
  116. package/dist/legacy-root-azm/src/frontend/parseRawDataDirectives.d.ts +0 -7
  117. package/dist/legacy-root-azm/src/frontend/parseRawDataDirectives.js +0 -142
  118. package/dist/legacy-root-azm/src/frontend/parseRecordFieldDecl.d.ts +0 -34
  119. package/dist/legacy-root-azm/src/frontend/parseRecordFieldDecl.js +0 -177
  120. package/dist/legacy-root-azm/src/frontend/parseSourceItemDispatch.d.ts +0 -46
  121. package/dist/legacy-root-azm/src/frontend/parseSourceItemDispatch.js +0 -53
  122. package/dist/legacy-root-azm/src/frontend/parseSourceItemTable.d.ts +0 -16
  123. package/dist/legacy-root-azm/src/frontend/parseSourceItemTable.js +0 -68
  124. package/dist/legacy-root-azm/src/frontend/parseTopLevelCommon.d.ts +0 -11
  125. package/dist/legacy-root-azm/src/frontend/parseTopLevelCommon.js +0 -50
  126. package/dist/legacy-root-azm/src/frontend/parseTypes.d.ts +0 -24
  127. package/dist/legacy-root-azm/src/frontend/parseTypes.js +0 -77
  128. package/dist/legacy-root-azm/src/frontend/parser.d.ts +0 -11
  129. package/dist/legacy-root-azm/src/frontend/parser.js +0 -88
  130. package/dist/legacy-root-azm/src/frontend/source.d.ts +0 -28
  131. package/dist/legacy-root-azm/src/frontend/source.js +0 -58
  132. package/dist/legacy-root-azm/src/frontend/sourceExtensions.d.ts +0 -2
  133. package/dist/legacy-root-azm/src/frontend/sourceExtensions.js +0 -6
  134. package/dist/legacy-root-azm/src/lintCaseStyle.d.ts +0 -4
  135. package/dist/legacy-root-azm/src/lintCaseStyle.js +0 -129
  136. package/dist/legacy-root-azm/src/lowering/asmDirectiveLowering.d.ts +0 -4
  137. package/dist/legacy-root-azm/src/lowering/asmDirectiveLowering.js +0 -229
  138. package/dist/legacy-root-azm/src/lowering/asmDirectiveTraversal.d.ts +0 -47
  139. package/dist/legacy-root-azm/src/lowering/asmDirectiveTraversal.js +0 -52
  140. package/dist/legacy-root-azm/src/lowering/asmEquResolution.d.ts +0 -8
  141. package/dist/legacy-root-azm/src/lowering/asmEquResolution.js +0 -69
  142. package/dist/legacy-root-azm/src/lowering/asmInstructionLdHelpers.d.ts +0 -15
  143. package/dist/legacy-root-azm/src/lowering/asmInstructionLdHelpers.js +0 -102
  144. package/dist/legacy-root-azm/src/lowering/asmInstructionLowering.d.ts +0 -5
  145. package/dist/legacy-root-azm/src/lowering/asmInstructionLowering.js +0 -54
  146. package/dist/legacy-root-azm/src/lowering/asmInstructionStream.d.ts +0 -46
  147. package/dist/legacy-root-azm/src/lowering/asmInstructionStream.js +0 -51
  148. package/dist/legacy-root-azm/src/lowering/asmLoweringBranchCall.d.ts +0 -43
  149. package/dist/legacy-root-azm/src/lowering/asmLoweringBranchCall.js +0 -254
  150. package/dist/legacy-root-azm/src/lowering/asmLoweringHost.d.ts +0 -23
  151. package/dist/legacy-root-azm/src/lowering/asmLoweringHost.js +0 -1
  152. package/dist/legacy-root-azm/src/lowering/asmLoweringLd.d.ts +0 -28
  153. package/dist/legacy-root-azm/src/lowering/asmLoweringLd.js +0 -144
  154. package/dist/legacy-root-azm/src/lowering/asmRangeLowering.d.ts +0 -17
  155. package/dist/legacy-root-azm/src/lowering/asmRangeLowering.js +0 -39
  156. package/dist/legacy-root-azm/src/lowering/asmRawDataLowering.d.ts +0 -16
  157. package/dist/legacy-root-azm/src/lowering/asmRawDataLowering.js +0 -209
  158. package/dist/legacy-root-azm/src/lowering/asmSourceEmitter.d.ts +0 -4
  159. package/dist/legacy-root-azm/src/lowering/asmSourceEmitter.js +0 -9
  160. package/dist/legacy-root-azm/src/lowering/asmSourceInstructionLowering.d.ts +0 -4
  161. package/dist/legacy-root-azm/src/lowering/asmSourceInstructionLowering.js +0 -14
  162. package/dist/legacy-root-azm/src/lowering/asmUtils.d.ts +0 -13
  163. package/dist/legacy-root-azm/src/lowering/asmUtils.js +0 -105
  164. package/dist/legacy-root-azm/src/lowering/assemblerFlowSetup.d.ts +0 -54
  165. package/dist/legacy-root-azm/src/lowering/assemblerFlowSetup.js +0 -128
  166. package/dist/legacy-root-azm/src/lowering/assemblerLoweringContext.d.ts +0 -151
  167. package/dist/legacy-root-azm/src/lowering/assemblerLoweringContext.js +0 -16
  168. package/dist/legacy-root-azm/src/lowering/assemblerLoweringContextSplit.d.ts +0 -7
  169. package/dist/legacy-root-azm/src/lowering/assemblerLoweringContextSplit.js +0 -75
  170. package/dist/legacy-root-azm/src/lowering/assemblerLoweringPhases.d.ts +0 -66
  171. package/dist/legacy-root-azm/src/lowering/assemblerLoweringPhases.js +0 -166
  172. package/dist/legacy-root-azm/src/lowering/bytePlacement.d.ts +0 -7
  173. package/dist/legacy-root-azm/src/lowering/bytePlacement.js +0 -37
  174. package/dist/legacy-root-azm/src/lowering/capabilities.d.ts +0 -67
  175. package/dist/legacy-root-azm/src/lowering/capabilities.js +0 -1
  176. package/dist/legacy-root-azm/src/lowering/eaResolution.d.ts +0 -58
  177. package/dist/legacy-root-azm/src/lowering/eaResolution.js +0 -159
  178. package/dist/legacy-root-azm/src/lowering/emissionCore.d.ts +0 -17
  179. package/dist/legacy-root-azm/src/lowering/emissionCore.js +0 -21
  180. package/dist/legacy-root-azm/src/lowering/emit.d.ts +0 -17
  181. package/dist/legacy-root-azm/src/lowering/emit.js +0 -46
  182. package/dist/legacy-root-azm/src/lowering/emitContextBuilder.d.ts +0 -63
  183. package/dist/legacy-root-azm/src/lowering/emitContextBuilder.js +0 -41
  184. package/dist/legacy-root-azm/src/lowering/emitFinalization.d.ts +0 -61
  185. package/dist/legacy-root-azm/src/lowering/emitFinalization.js +0 -66
  186. package/dist/legacy-root-azm/src/lowering/emitFinalizationSetup.d.ts +0 -19
  187. package/dist/legacy-root-azm/src/lowering/emitFinalizationSetup.js +0 -26
  188. package/dist/legacy-root-azm/src/lowering/emitPhase1BuildProgramLoweringContext.d.ts +0 -7
  189. package/dist/legacy-root-azm/src/lowering/emitPhase1BuildProgramLoweringContext.js +0 -119
  190. package/dist/legacy-root-azm/src/lowering/emitPhase1Helpers.d.ts +0 -4
  191. package/dist/legacy-root-azm/src/lowering/emitPhase1Helpers.js +0 -12
  192. package/dist/legacy-root-azm/src/lowering/emitPhase1Types.d.ts +0 -21
  193. package/dist/legacy-root-azm/src/lowering/emitPhase1Types.js +0 -1
  194. package/dist/legacy-root-azm/src/lowering/emitPhase1WirePipeline.d.ts +0 -70
  195. package/dist/legacy-root-azm/src/lowering/emitPhase1WirePipeline.js +0 -203
  196. package/dist/legacy-root-azm/src/lowering/emitPhase1Workspace.d.ts +0 -82
  197. package/dist/legacy-root-azm/src/lowering/emitPhase1Workspace.js +0 -55
  198. package/dist/legacy-root-azm/src/lowering/emitPipeline.d.ts +0 -121
  199. package/dist/legacy-root-azm/src/lowering/emitPipeline.js +0 -57
  200. package/dist/legacy-root-azm/src/lowering/emitProgramContext.d.ts +0 -39
  201. package/dist/legacy-root-azm/src/lowering/emitProgramContext.js +0 -29
  202. package/dist/legacy-root-azm/src/lowering/emitState.d.ts +0 -90
  203. package/dist/legacy-root-azm/src/lowering/emitState.js +0 -124
  204. package/dist/legacy-root-azm/src/lowering/fixupBaseResolution.d.ts +0 -7
  205. package/dist/legacy-root-azm/src/lowering/fixupBaseResolution.js +0 -23
  206. package/dist/legacy-root-azm/src/lowering/fixupEmission.d.ts +0 -64
  207. package/dist/legacy-root-azm/src/lowering/fixupEmission.js +0 -199
  208. package/dist/legacy-root-azm/src/lowering/immMath.d.ts +0 -2
  209. package/dist/legacy-root-azm/src/lowering/immMath.js +0 -34
  210. package/dist/legacy-root-azm/src/lowering/inputAssets.d.ts +0 -7
  211. package/dist/legacy-root-azm/src/lowering/inputAssets.js +0 -106
  212. package/dist/legacy-root-azm/src/lowering/ldEncoding.d.ts +0 -15
  213. package/dist/legacy-root-azm/src/lowering/ldEncoding.js +0 -12
  214. package/dist/legacy-root-azm/src/lowering/ldEncodingRegMemHelpers.d.ts +0 -5
  215. package/dist/legacy-root-azm/src/lowering/ldEncodingRegMemHelpers.js +0 -124
  216. package/dist/legacy-root-azm/src/lowering/ldFormSelection.d.ts +0 -26
  217. package/dist/legacy-root-azm/src/lowering/ldFormSelection.js +0 -92
  218. package/dist/legacy-root-azm/src/lowering/ldLowering.d.ts +0 -7
  219. package/dist/legacy-root-azm/src/lowering/ldLowering.js +0 -13
  220. package/dist/legacy-root-azm/src/lowering/loweredAsmByteEmission.d.ts +0 -23
  221. package/dist/legacy-root-azm/src/lowering/loweredAsmByteEmission.js +0 -185
  222. package/dist/legacy-root-azm/src/lowering/loweredAsmPlacement.d.ts +0 -13
  223. package/dist/legacy-root-azm/src/lowering/loweredAsmPlacement.js +0 -86
  224. package/dist/legacy-root-azm/src/lowering/loweredAsmStreamRecording.d.ts +0 -27
  225. package/dist/legacy-root-azm/src/lowering/loweredAsmStreamRecording.js +0 -215
  226. package/dist/legacy-root-azm/src/lowering/loweredAsmTypes.d.ts +0 -202
  227. package/dist/legacy-root-azm/src/lowering/loweredAsmTypes.js +0 -1
  228. package/dist/legacy-root-azm/src/lowering/loweredFormat.d.ts +0 -3
  229. package/dist/legacy-root-azm/src/lowering/loweredFormat.js +0 -26
  230. package/dist/legacy-root-azm/src/lowering/loweredItemSize.d.ts +0 -4
  231. package/dist/legacy-root-azm/src/lowering/loweredItemSize.js +0 -17
  232. package/dist/legacy-root-azm/src/lowering/loweringDiagnostics.d.ts +0 -9
  233. package/dist/legacy-root-azm/src/lowering/loweringDiagnostics.js +0 -55
  234. package/dist/legacy-root-azm/src/lowering/loweringTypes.d.ts +0 -27
  235. package/dist/legacy-root-azm/src/lowering/loweringTypes.js +0 -1
  236. package/dist/legacy-root-azm/src/lowering/opCandidateRegistry.d.ts +0 -9
  237. package/dist/legacy-root-azm/src/lowering/opCandidateRegistry.js +0 -9
  238. package/dist/legacy-root-azm/src/lowering/opExpansionExecution.d.ts +0 -15
  239. package/dist/legacy-root-azm/src/lowering/opExpansionExecution.js +0 -45
  240. package/dist/legacy-root-azm/src/lowering/opExpansionOrchestration.d.ts +0 -15
  241. package/dist/legacy-root-azm/src/lowering/opExpansionOrchestration.js +0 -88
  242. package/dist/legacy-root-azm/src/lowering/opExpansionStream.d.ts +0 -12
  243. package/dist/legacy-root-azm/src/lowering/opExpansionStream.js +0 -176
  244. package/dist/legacy-root-azm/src/lowering/opMatching.d.ts +0 -52
  245. package/dist/legacy-root-azm/src/lowering/opMatching.js +0 -355
  246. package/dist/legacy-root-azm/src/lowering/opSubstitution.d.ts +0 -13
  247. package/dist/legacy-root-azm/src/lowering/opSubstitution.js +0 -175
  248. package/dist/legacy-root-azm/src/lowering/prescanTypes.d.ts +0 -7
  249. package/dist/legacy-root-azm/src/lowering/prescanTypes.js +0 -1
  250. package/dist/legacy-root-azm/src/lowering/programLowering.d.ts +0 -144
  251. package/dist/legacy-root-azm/src/lowering/programLowering.js +0 -2
  252. package/dist/legacy-root-azm/src/lowering/programLoweringDeclarations.d.ts +0 -5
  253. package/dist/legacy-root-azm/src/lowering/programLoweringDeclarations.js +0 -5
  254. package/dist/legacy-root-azm/src/lowering/programLoweringFinalize.d.ts +0 -18
  255. package/dist/legacy-root-azm/src/lowering/programLoweringFinalize.js +0 -115
  256. package/dist/legacy-root-azm/src/lowering/programLoweringTraversal.d.ts +0 -2
  257. package/dist/legacy-root-azm/src/lowering/programLoweringTraversal.js +0 -93
  258. package/dist/legacy-root-azm/src/lowering/programPrescan.d.ts +0 -3
  259. package/dist/legacy-root-azm/src/lowering/programPrescan.js +0 -37
  260. package/dist/legacy-root-azm/src/lowering/traceFormat.d.ts +0 -13
  261. package/dist/legacy-root-azm/src/lowering/traceFormat.js +0 -211
  262. package/dist/legacy-root-azm/src/packageInfo.d.ts +0 -1
  263. package/dist/legacy-root-azm/src/packageInfo.js +0 -15
  264. package/dist/legacy-root-azm/src/pathCompare.d.ts +0 -3
  265. package/dist/legacy-root-azm/src/pathCompare.js +0 -26
  266. package/dist/legacy-root-azm/src/pipeline.d.ts +0 -91
  267. package/dist/legacy-root-azm/src/pipeline.js +0 -1
  268. package/dist/legacy-root-azm/src/registerCare/analyze.d.ts +0 -24
  269. package/dist/legacy-root-azm/src/registerCare/analyze.js +0 -327
  270. package/dist/legacy-root-azm/src/registerCare/boundaryHints.d.ts +0 -2
  271. package/dist/legacy-root-azm/src/registerCare/boundaryHints.js +0 -10
  272. package/dist/legacy-root-azm/src/registerCare/carriers.d.ts +0 -4
  273. package/dist/legacy-root-azm/src/registerCare/carriers.js +0 -78
  274. package/dist/legacy-root-azm/src/registerCare/controlFlow.d.ts +0 -5
  275. package/dist/legacy-root-azm/src/registerCare/controlFlow.js +0 -35
  276. package/dist/legacy-root-azm/src/registerCare/fix.d.ts +0 -11
  277. package/dist/legacy-root-azm/src/registerCare/fix.js +0 -119
  278. package/dist/legacy-root-azm/src/registerCare/liveness.d.ts +0 -7
  279. package/dist/legacy-root-azm/src/registerCare/liveness.js +0 -227
  280. package/dist/legacy-root-azm/src/registerCare/profiles.d.ts +0 -11
  281. package/dist/legacy-root-azm/src/registerCare/profiles.js +0 -45
  282. package/dist/legacy-root-azm/src/registerCare/programModel.d.ts +0 -3
  283. package/dist/legacy-root-azm/src/registerCare/programModel.js +0 -181
  284. package/dist/legacy-root-azm/src/registerCare/report.d.ts +0 -5
  285. package/dist/legacy-root-azm/src/registerCare/report.js +0 -139
  286. package/dist/legacy-root-azm/src/registerCare/smartComments.d.ts +0 -5
  287. package/dist/legacy-root-azm/src/registerCare/smartComments.js +0 -247
  288. package/dist/legacy-root-azm/src/registerCare/types.d.ts +0 -154
  289. package/dist/legacy-root-azm/src/registerCare/types.js +0 -1
  290. package/dist/legacy-root-azm/src/semantics/declVisitor.d.ts +0 -5
  291. package/dist/legacy-root-azm/src/semantics/declVisitor.js +0 -11
  292. package/dist/legacy-root-azm/src/semantics/env.d.ts +0 -28
  293. package/dist/legacy-root-azm/src/semantics/env.js +0 -432
  294. package/dist/legacy-root-azm/src/semantics/layout.d.ts +0 -21
  295. package/dist/legacy-root-azm/src/semantics/layout.js +0 -226
  296. package/dist/legacy-root-azm/src/semantics/layoutCastFold.d.ts +0 -22
  297. package/dist/legacy-root-azm/src/semantics/layoutCastFold.js +0 -118
  298. package/dist/legacy-root-azm/src/semantics/semanticsDiagnostics.d.ts +0 -2
  299. package/dist/legacy-root-azm/src/semantics/semanticsDiagnostics.js +0 -4
  300. package/dist/legacy-root-azm/src/semantics/typeQueries.d.ts +0 -31
  301. package/dist/legacy-root-azm/src/semantics/typeQueries.js +0 -124
  302. package/dist/legacy-root-azm/src/sourceIncludeExpansion.d.ts +0 -17
  303. package/dist/legacy-root-azm/src/sourceIncludeExpansion.js +0 -124
  304. package/dist/legacy-root-azm/src/sourceIncludePaths.d.ts +0 -1
  305. package/dist/legacy-root-azm/src/sourceIncludePaths.js +0 -12
  306. package/dist/legacy-root-azm/src/sourceLoader.d.ts +0 -15
  307. package/dist/legacy-root-azm/src/sourceLoader.js +0 -118
  308. package/dist/legacy-root-azm/src/z80/effects.d.ts +0 -3
  309. package/dist/legacy-root-azm/src/z80/effects.js +0 -516
  310. package/dist/legacy-root-azm/src/z80/encode.d.ts +0 -10
  311. package/dist/legacy-root-azm/src/z80/encode.js +0 -412
  312. package/dist/legacy-root-azm/src/z80/encodeAlu.d.ts +0 -7
  313. package/dist/legacy-root-azm/src/z80/encodeAlu.js +0 -219
  314. package/dist/legacy-root-azm/src/z80/encodeBitOps.d.ts +0 -7
  315. package/dist/legacy-root-azm/src/z80/encodeBitOps.js +0 -123
  316. package/dist/legacy-root-azm/src/z80/encodeContext.d.ts +0 -29
  317. package/dist/legacy-root-azm/src/z80/encodeContext.js +0 -1
  318. package/dist/legacy-root-azm/src/z80/encodeControl.d.ts +0 -26
  319. package/dist/legacy-root-azm/src/z80/encodeControl.js +0 -180
  320. package/dist/legacy-root-azm/src/z80/encodeCoreOps.d.ts +0 -7
  321. package/dist/legacy-root-azm/src/z80/encodeCoreOps.js +0 -131
  322. package/dist/legacy-root-azm/src/z80/encodeIo.d.ts +0 -9
  323. package/dist/legacy-root-azm/src/z80/encodeIo.js +0 -128
  324. package/dist/legacy-root-azm/src/z80/encodeLd.d.ts +0 -13
  325. package/dist/legacy-root-azm/src/z80/encodeLd.js +0 -273
  326. package/dist/legacy-root-azm/src/z80/encoderRegistry.d.ts +0 -13
  327. package/dist/legacy-root-azm/src/z80/encoderRegistry.js +0 -169
  328. package/dist/src/outputs/write-listing.d.ts +0 -2
  329. package/dist/src/outputs/write-listing.js +0 -79
  330. /package/dist/{legacy-root-azm/src/registerCare → src/register-care}/annotate.d.ts +0 -0
  331. /package/dist/{legacy-root-azm/src/registerCare → src/register-care}/annotate.js +0 -0
  332. /package/dist/{legacy-root-azm/src/registerCare → src/register-care}/sourceText.d.ts +0 -0
  333. /package/dist/{legacy-root-azm/src/registerCare → src/register-care}/sourceText.js +0 -0
  334. /package/dist/{legacy-root-azm/src/registerCare → src/register-care}/summary.d.ts +0 -0
@@ -1,211 +0,0 @@
1
- const toHexByte = (n) => `$${(n & 0xff).toString(16).toUpperCase().padStart(2, '0')}`;
2
- const toHexWord = (n) => `$${(n & 0xffff).toString(16).toUpperCase().padStart(4, '0')}`;
3
- export const formatImmExprForAsm = (expr) => {
4
- switch (expr.kind) {
5
- case 'ImmLiteral':
6
- return toHexWord(expr.value);
7
- case 'ImmName':
8
- return expr.name;
9
- case 'ImmSizeof':
10
- return 'sizeof(...)';
11
- case 'ImmOffset':
12
- return 'offset(...)';
13
- case 'ImmUnary':
14
- return `${expr.op}${formatImmExprForAsm(expr.expr)}`;
15
- case 'ImmBinary':
16
- return `${formatImmExprForAsm(expr.left)} ${expr.op} ${formatImmExprForAsm(expr.right)}`;
17
- default:
18
- return 'imm';
19
- }
20
- };
21
- export const formatEaExpr = (ea, { formatImmExpr, wrapImmEa = false }) => {
22
- switch (ea.kind) {
23
- case 'EaName':
24
- return ea.name;
25
- case 'EaImm':
26
- return wrapImmEa ? `(${formatImmExpr(ea.expr)})` : formatImmExpr(ea.expr);
27
- case 'EaField':
28
- return `${formatEaExpr(ea.base, { formatImmExpr, wrapImmEa })}.${ea.field}`;
29
- case 'EaAdd':
30
- return `${formatEaExpr(ea.base, { formatImmExpr, wrapImmEa })} + ${formatImmExpr(ea.offset)}`;
31
- case 'EaSub':
32
- return `${formatEaExpr(ea.base, { formatImmExpr, wrapImmEa })} - ${formatImmExpr(ea.offset)}`;
33
- case 'EaIndex': {
34
- let idx = '';
35
- switch (ea.index.kind) {
36
- case 'IndexImm':
37
- idx = formatImmExpr(ea.index.value);
38
- break;
39
- case 'IndexReg8':
40
- case 'IndexReg16':
41
- idx = ea.index.reg;
42
- break;
43
- case 'IndexMemHL':
44
- idx = '(HL)';
45
- break;
46
- case 'IndexMemIxIy':
47
- idx = ea.index.disp
48
- ? `${ea.index.base}${ea.index.disp.kind === 'ImmUnary' ? '' : '+'}${formatImmExpr(ea.index.disp)}`
49
- : ea.index.base;
50
- break;
51
- case 'IndexEa':
52
- idx = formatEaExpr(ea.index.expr, { formatImmExpr, wrapImmEa });
53
- break;
54
- }
55
- return `${formatEaExpr(ea.base, { formatImmExpr, wrapImmEa })}[${idx}]`;
56
- }
57
- default:
58
- return 'ea';
59
- }
60
- };
61
- const formatEaExprForAsm = (ea) => formatEaExpr(ea, { formatImmExpr: formatImmExprForAsm });
62
- const formatAsmOperandForTrace = (operand) => {
63
- switch (operand.kind) {
64
- case 'Reg':
65
- return operand.name;
66
- case 'Imm':
67
- return formatImmExprForAsm(operand.expr);
68
- case 'Ea':
69
- return formatEaExprForAsm(operand.expr);
70
- case 'Mem':
71
- return `(${formatEaExprForAsm(operand.expr)})`;
72
- case 'PortC':
73
- return '(C)';
74
- case 'PortImm8':
75
- return `(${formatImmExprForAsm(operand.expr)})`;
76
- default:
77
- return '?';
78
- }
79
- };
80
- export const formatAsmInstrForTrace = (head, operands) => {
81
- const lowerHead = head.toLowerCase();
82
- if (operands.length === 0)
83
- return lowerHead;
84
- return `${lowerHead} ${operands.map(formatAsmOperandForTrace).join(', ')}`;
85
- };
86
- const formatFixupSymbolExpr = (baseLower, addend) => {
87
- if (addend === 0)
88
- return baseLower;
89
- if (addend > 0)
90
- return `${baseLower} + ${addend}`;
91
- return `${baseLower} - ${Math.abs(addend)}`;
92
- };
93
- const jpCondFromOpcode = (opcode) => {
94
- switch (opcode & 0xff) {
95
- case 0xc2:
96
- return 'NZ';
97
- case 0xca:
98
- return 'Z';
99
- case 0xd2:
100
- return 'NC';
101
- case 0xda:
102
- return 'C';
103
- case 0xe2:
104
- return 'PO';
105
- case 0xea:
106
- return 'PE';
107
- case 0xf2:
108
- return 'P';
109
- case 0xfa:
110
- return 'M';
111
- default:
112
- return undefined;
113
- }
114
- };
115
- const callCondFromOpcode = (opcode) => {
116
- switch (opcode & 0xff) {
117
- case 0xc4:
118
- return 'NZ';
119
- case 0xcc:
120
- return 'Z';
121
- case 0xd4:
122
- return 'NC';
123
- case 0xdc:
124
- return 'C';
125
- case 0xe4:
126
- return 'PO';
127
- case 0xec:
128
- return 'PE';
129
- case 0xf4:
130
- return 'P';
131
- case 0xfc:
132
- return 'M';
133
- default:
134
- return undefined;
135
- }
136
- };
137
- export const formatAbs16FixupAsm = (opcode, baseLower, addend) => {
138
- const sym = formatFixupSymbolExpr(baseLower, addend);
139
- switch (opcode & 0xff) {
140
- case 0x01:
141
- return `ld BC, ${sym}`;
142
- case 0x11:
143
- return `ld DE, ${sym}`;
144
- case 0x21:
145
- return `ld HL, ${sym}`;
146
- case 0x31:
147
- return `ld SP, ${sym}`;
148
- case 0x2a:
149
- return `ld HL, (${sym})`;
150
- case 0x3a:
151
- return `ld A, (${sym})`;
152
- case 0x22:
153
- return `ld (${sym}), HL`;
154
- case 0x32:
155
- return `ld (${sym}), A`;
156
- case 0xc3:
157
- return `jp ${sym}`;
158
- case 0xcd:
159
- return `call ${sym}`;
160
- default: {
161
- const jpCc = jpCondFromOpcode(opcode);
162
- if (jpCc)
163
- return `jp ${jpCc}, ${sym}`;
164
- const callCc = callCondFromOpcode(opcode);
165
- if (callCc)
166
- return `call ${callCc}, ${sym}`;
167
- return `db ${toHexByte(opcode)}, lo(${baseLower}), hi(${baseLower})`;
168
- }
169
- }
170
- };
171
- export const formatAbs16FixupEdAsm = (opcode2, baseLower, addend) => {
172
- const sym = formatFixupSymbolExpr(baseLower, addend);
173
- switch (opcode2 & 0xff) {
174
- case 0x4b:
175
- return `ld BC, (${sym})`;
176
- case 0x5b:
177
- return `ld DE, (${sym})`;
178
- case 0x7b:
179
- return `ld SP, (${sym})`;
180
- case 0x43:
181
- return `ld (${sym}), BC`;
182
- case 0x53:
183
- return `ld (${sym}), DE`;
184
- case 0x73:
185
- return `ld (${sym}), SP`;
186
- default:
187
- return `db $ED, ${toHexByte(opcode2)}, lo(${baseLower}), hi(${baseLower})`;
188
- }
189
- };
190
- export const formatAbs16FixupPrefixedAsm = (prefix, opcode2, baseLower, addend) => {
191
- const sym = formatFixupSymbolExpr(baseLower, addend);
192
- const reg16 = prefix === 0xdd ? 'IX' : prefix === 0xfd ? 'IY' : undefined;
193
- if (!reg16) {
194
- return `db ${toHexByte(prefix)}, ${toHexByte(opcode2)}, lo(${baseLower}), hi(${baseLower})`;
195
- }
196
- switch (opcode2 & 0xff) {
197
- case 0x21:
198
- return `ld ${reg16}, ${sym}`;
199
- case 0x2a:
200
- return `ld ${reg16}, (${sym})`;
201
- case 0x22:
202
- return `ld (${sym}), ${reg16}`;
203
- default:
204
- return `db ${toHexByte(prefix)}, ${toHexByte(opcode2)}, lo(${baseLower}), hi(${baseLower})`;
205
- }
206
- };
207
- export const formatIxDisp = (disp) => {
208
- const hex = Math.abs(disp).toString(16).padStart(2, '0');
209
- const sign = disp >= 0 ? '+' : '-';
210
- return `${sign}$${hex}`;
211
- };
@@ -1 +0,0 @@
1
- export declare function readPackageVersion(): string;
@@ -1,15 +0,0 @@
1
- import { createRequire } from 'node:module';
2
- import { dirname, resolve } from 'node:path';
3
- import { fileURLToPath } from 'node:url';
4
- export function readPackageVersion() {
5
- const require = createRequire(import.meta.url);
6
- const here = dirname(fileURLToPath(import.meta.url));
7
- let pkg;
8
- try {
9
- pkg = require(resolve(here, '..', 'package.json'));
10
- }
11
- catch {
12
- pkg = require(resolve(here, '..', '..', 'package.json'));
13
- }
14
- return String(pkg.version ?? '0.0.0');
15
- }
@@ -1,3 +0,0 @@
1
- export declare function normalizePathForCompare(path: string, options?: {
2
- realpath?: boolean;
3
- }): string;
@@ -1,26 +0,0 @@
1
- import { realpathSync } from 'node:fs';
2
- import { resolve } from 'node:path';
3
- function stripExtendedWindowsPrefix(path) {
4
- if (path.startsWith('\\\\?\\UNC\\'))
5
- return `\\\\${path.slice(8)}`;
6
- if (path.startsWith('\\\\?\\'))
7
- return path.slice(4);
8
- return path;
9
- }
10
- export function normalizePathForCompare(path, options = {}) {
11
- const resolved = options.realpath ? resolve(path) : path;
12
- const canonical = (() => {
13
- if (!options.realpath)
14
- return resolved;
15
- try {
16
- return realpathSync.native(resolved);
17
- }
18
- catch {
19
- return resolved;
20
- }
21
- })();
22
- const stripped = stripExtendedWindowsPrefix(canonical);
23
- const normalized = stripped.replace(/\\/g, '/');
24
- const normalizedDarwin = process.platform === 'darwin' ? normalized.replace(/^\/private\//, '/') : normalized;
25
- return process.platform === 'win32' ? normalizedDarwin.toLowerCase() : normalizedDarwin;
26
- }
@@ -1,91 +0,0 @@
1
- import type { Diagnostic } from './diagnosticTypes.js';
2
- import type { Artifact, FormatWriters } from './formats/types.js';
3
- import type { RegisterCareMode } from './registerCare/types.js';
4
- export type CaseStyleMode = 'off' | 'upper' | 'lower' | 'consistent';
5
- /**
6
- * Options that influence compilation behavior and which artifacts are produced.
7
- */
8
- export interface CompilerOptions {
9
- /**
10
- * Additional include/search directories used for textual includes and input assets.
11
- *
12
- * These directories are consulted after checking paths relative to the
13
- * importing source file.
14
- */
15
- includeDirs?: string[];
16
- /** Primary output path supplied by wrappers that derive sibling artifacts. */
17
- outputPath?: string;
18
- /** Primary output type selected by wrappers such as the CLI. */
19
- outputType?: 'hex' | 'bin';
20
- /**
21
- * Root used for source paths in debug maps.
22
- *
23
- * When present, D8 file keys and generator input paths are emitted relative
24
- * to this directory with `/` separators.
25
- */
26
- sourceRoot?: string;
27
- /**
28
- * Output paths recorded in D8 generator metadata when known by the caller.
29
- */
30
- d8mInputs?: {
31
- listing?: string;
32
- hex?: string;
33
- bin?: string;
34
- };
35
- /** Emit flat binary (`.bin`). */
36
- emitBin?: boolean;
37
- /** Emit Intel HEX (`.hex`). */
38
- emitHex?: boolean;
39
- /** Emit D8 Debug Map (`.d8.json`). */
40
- emitD8m?: boolean;
41
- /** Emit listing (`.lst`). */
42
- emitListing?: boolean;
43
- /** Emit ASM80-compatible lowered source (`.z80`). */
44
- emitAsm80?: boolean;
45
- /** Optional case-style lint mode for asm keywords/register tokens. */
46
- caseStyle?: CaseStyleMode;
47
- /** Require a `main` entry label for runnable builds. */
48
- requireMain?: boolean;
49
- /** Default code base address. */
50
- defaultCodeBase?: number;
51
- /** JSON directive alias files. Later files extend or override earlier aliases. */
52
- directiveAliasFiles?: string[];
53
- /** Register-care analysis mode. */
54
- registerCare?: RegisterCareMode;
55
- /** Emit a register-care audit report artifact. */
56
- emitRegisterReport?: boolean;
57
- /** Emit an inferred register-care interface artifact. */
58
- emitRegisterInterface?: boolean;
59
- /** Rewrite source files with inferred register-care contract blocks. */
60
- emitRegisterAnnotations?: boolean;
61
- /** Apply conservative register-care source fixes. Implies source annotations. */
62
- fixRegisterContracts?: boolean;
63
- /**
64
- * Promote selected caller-use output candidates while rewriting register-care
65
- * source annotations. Entries use `ROUTINE:carriers`, for example `MxMask:A`.
66
- */
67
- acceptRegisterOutputCandidates?: string[];
68
- /** Register-care analysis profile. */
69
- registerCareProfile?: 'mon3';
70
- /** Register-care contract files that provide contracts for external/library routines. */
71
- registerCareInterfaces?: string[];
72
- }
73
- /**
74
- * Result of a compilation run: diagnostics plus any produced artifacts.
75
- */
76
- export interface CompileResult {
77
- diagnostics: Diagnostic[];
78
- artifacts: Artifact[];
79
- }
80
- /**
81
- * Dependency injection surface for the compiler pipeline.
82
- *
83
- * Callers provide concrete format writers so the core pipeline can be pure/in-memory.
84
- */
85
- export interface PipelineDeps {
86
- formats: FormatWriters;
87
- }
88
- /**
89
- * Top-level compile function signature used by the pipeline contract.
90
- */
91
- export type CompileFn = (entryFile: string, options: CompilerOptions, deps: PipelineDeps) => Promise<CompileResult>;
@@ -1 +0,0 @@
1
- export {};
@@ -1,24 +0,0 @@
1
- import { type Diagnostic } from '../diagnosticTypes.js';
2
- import type { LoadedProgram } from '../sourceLoader.js';
3
- import { type RegisterCareAnnotatedFile } from './annotate.js';
4
- import { type RegisterCareProfileName } from './profiles.js';
5
- import type { RegisterCareMode, RegisterCareReportModel, RoutineContract } from './types.js';
6
- export interface AnalyzeRegisterCareOptions {
7
- mode: RegisterCareMode;
8
- emitReport: boolean;
9
- emitInterface: boolean;
10
- emitAnnotations?: boolean;
11
- fixRegisterContracts?: boolean;
12
- acceptOutputCandidates?: string[];
13
- profile?: RegisterCareProfileName;
14
- interfaceContracts?: RoutineContract[];
15
- }
16
- interface AnalyzeRegisterCareResult {
17
- diagnostics: Diagnostic[];
18
- outputCandidates?: RegisterCareReportModel['outputCandidates'];
19
- reportText?: string;
20
- interfaceText?: string;
21
- annotatedFiles?: RegisterCareAnnotatedFile[];
22
- }
23
- export declare function analyzeRegisterCare(loaded: LoadedProgram, options: AnalyzeRegisterCareOptions): AnalyzeRegisterCareResult;
24
- export {};