Skip to content

Commit 3c2ade8

Browse files
committed
Add LBOUND and UBOUND labels
1 parent d1b4ea6 commit 3c2ade8

2 files changed

Lines changed: 6 additions & 4 deletions

File tree

src/arch/zx48k/backend/runtime/core.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ class CoreLabels:
5353
ILOADSTR = f"{NAMESPACE}__ILOADSTR"
5454
ISTORE32 = f"{NAMESPACE}__ISTORE32"
5555
ISTOREF = f"{NAMESPACE}__ISTOREF"
56+
LBOUND = f"{NAMESPACE}__LBOUND"
5657
LOADSTR = f"{NAMESPACE}__LOADSTR"
5758
LOAD_DE_DE = f"{NAMESPACE}__LOAD_DE_DE"
5859
LEF = f"{NAMESPACE}__LEF"
@@ -124,6 +125,7 @@ class CoreLabels:
124125
SWAP32 = f"{NAMESPACE}__SWAP32"
125126
U32TOFREG = f"{NAMESPACE}__U32TOFREG"
126127
U8TOFREG = f"{NAMESPACE}__U8TOFREG"
128+
UBOUND = f"{NAMESPACE}__UBOUND"
127129
XOR16 = f"{NAMESPACE}__XOR16"
128130
XOR8 = f"{NAMESPACE}__XOR8"
129131
XOR32 = f"{NAMESPACE}__XOR32"
@@ -180,6 +182,7 @@ class CoreLabels:
180182
CoreLabels.FP_PUSH_REV: 'pushf.asm',
181183
CoreLabels.FTOF16REG: 'ftof16reg.asm',
182184
CoreLabels.FTOU32REG: 'ftou32reg.asm',
185+
CoreLabels.LBOUND: 'bound.asm',
183186
CoreLabels.LEF: 'lef.asm',
184187
CoreLabels.LEI16: 'lei16.asm',
185188
CoreLabels.LEI32: 'lei32.asm',
@@ -251,6 +254,7 @@ class CoreLabels:
251254
CoreLabels.SWAP32: 'swap32.asm',
252255
CoreLabels.U32TOFREG: 'u32tofreg.asm',
253256
CoreLabels.U8TOFREG: 'u32tofreg.asm',
257+
CoreLabels.UBOUND: 'bound.asm',
254258
CoreLabels.XOR16: 'xor16.asm',
255259
CoreLabels.XOR8: 'xor8.asm',
256260
CoreLabels.XOR32: 'xor32.asm',

src/arch/zx48k/translator.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1334,8 +1334,7 @@ def visit_LBOUND(self, node):
13341334
self.ic_paddr(-entry.offset, entry.t)
13351335
t1 = optemps.new_t()
13361336
self.ic_fparam(gl.PTR_TYPE, t1)
1337-
self.ic_call('__LBOUND', self.TYPE(gl.BOUND_TYPE).size)
1338-
backend.REQUIRES.add('bound.asm')
1337+
self.runtime_call(RuntimeLabel.LBOUND, self.TYPE(gl.BOUND_TYPE).size)
13391338

13401339
def visit_UBOUND(self, node):
13411340
yield node.operands[1]
@@ -1351,8 +1350,7 @@ def visit_UBOUND(self, node):
13511350
self.ic_paddr(-entry.offset, entry.t)
13521351
t1 = optemps.new_t()
13531352
self.ic_fparam(gl.PTR_TYPE, t1)
1354-
self.ic_call('__UBOUND', self.TYPE(gl.BOUND_TYPE).size)
1355-
backend.REQUIRES.add('bound.asm')
1353+
self.runtime_call(RuntimeLabel.UBOUND, self.TYPE(gl.BOUND_TYPE).size)
13561354

13571355
def visit_USR_STR(self, node):
13581356
# USR ADDR

0 commit comments

Comments
 (0)