Ptr instance offset_const can be negative + use i64_type()
This commit is contained in:
parent
fe851f7ccd
commit
236032b888
|
@ -123,9 +123,9 @@ impl<'ctx, Item: Model<'ctx>> Instance<'ctx, Ptr<Item>> {
|
|||
pub fn offset_const(
|
||||
&self,
|
||||
ctx: &CodeGenContext<'ctx, '_>,
|
||||
offset: u64,
|
||||
offset: i64,
|
||||
) -> Instance<'ctx, Ptr<Item>> {
|
||||
let offset = ctx.ctx.i32_type().const_int(offset, false);
|
||||
let offset = ctx.ctx.i64_type().const_int(offset as u64, true);
|
||||
self.offset(ctx, offset)
|
||||
}
|
||||
|
||||
|
@ -141,7 +141,7 @@ impl<'ctx, Item: Model<'ctx>> Instance<'ctx, Ptr<Item>> {
|
|||
pub fn set_index_const(
|
||||
&self,
|
||||
ctx: &CodeGenContext<'ctx, '_>,
|
||||
index: u64,
|
||||
index: i64,
|
||||
value: Instance<'ctx, Item>,
|
||||
) {
|
||||
self.offset_const(ctx, index).store(ctx, value);
|
||||
|
@ -160,7 +160,7 @@ impl<'ctx, Item: Model<'ctx>> Instance<'ctx, Ptr<Item>> {
|
|||
&self,
|
||||
generator: &mut G,
|
||||
ctx: &CodeGenContext<'ctx, '_>,
|
||||
index: u64,
|
||||
index: i64,
|
||||
) -> Instance<'ctx, Item> {
|
||||
self.offset_const(ctx, index).load(generator, ctx)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue