glasm: Implement Storage atomics

StorageAtomicExchangeU64 is failing test seemingly due to failure storing 64-bit
result into the register
This commit is contained in:
ameerj
2021-05-10 22:35:16 -04:00
parent 8c81a20ace
commit 7ff5851608
5 changed files with 156 additions and 109 deletions

View File

@ -199,54 +199,6 @@ void EmitUndefU64(EmitContext& ctx) {
NotImplemented();
}
void EmitLoadSharedU8(EmitContext& ctx, ScalarU32 offset) {
NotImplemented();
}
void EmitLoadSharedS8(EmitContext& ctx, ScalarU32 offset) {
NotImplemented();
}
void EmitLoadSharedU16(EmitContext& ctx, ScalarU32 offset) {
NotImplemented();
}
void EmitLoadSharedS16(EmitContext& ctx, ScalarU32 offset) {
NotImplemented();
}
void EmitLoadSharedU32(EmitContext& ctx, ScalarU32 offset) {
NotImplemented();
}
void EmitLoadSharedU64(EmitContext& ctx, ScalarU32 offset) {
NotImplemented();
}
void EmitLoadSharedU128(EmitContext& ctx, ScalarU32 offset) {
NotImplemented();
}
void EmitWriteSharedU8(EmitContext& ctx, ScalarU32 offset, ScalarU32 value) {
NotImplemented();
}
void EmitWriteSharedU16(EmitContext& ctx, ScalarU32 offset, ScalarU32 value) {
NotImplemented();
}
void EmitWriteSharedU32(EmitContext& ctx, ScalarU32 offset, ScalarU32 value) {
NotImplemented();
}
void EmitWriteSharedU64(EmitContext& ctx, ScalarU32 offset, Register value) {
NotImplemented();
}
void EmitWriteSharedU128(EmitContext& ctx, ScalarU32 offset, Register value) {
NotImplemented();
}
void EmitGetZeroFromOp(EmitContext& ctx) {
NotImplemented();
}
@ -271,54 +223,6 @@ void EmitGetInBoundsFromOp(EmitContext& ctx) {
NotImplemented();
}
void EmitSharedAtomicIAdd32(EmitContext& ctx, ScalarU32 pointer_offset, ScalarU32 value) {
NotImplemented();
}
void EmitSharedAtomicSMin32(EmitContext& ctx, ScalarU32 pointer_offset, ScalarS32 value) {
NotImplemented();
}
void EmitSharedAtomicUMin32(EmitContext& ctx, ScalarU32 pointer_offset, ScalarU32 value) {
NotImplemented();
}
void EmitSharedAtomicSMax32(EmitContext& ctx, ScalarU32 pointer_offset, ScalarS32 value) {
NotImplemented();
}
void EmitSharedAtomicUMax32(EmitContext& ctx, ScalarU32 pointer_offset, ScalarU32 value) {
NotImplemented();
}
void EmitSharedAtomicInc32(EmitContext& ctx, ScalarU32 pointer_offset, ScalarU32 value) {
NotImplemented();
}
void EmitSharedAtomicDec32(EmitContext& ctx, ScalarU32 pointer_offset, ScalarU32 value) {
NotImplemented();
}
void EmitSharedAtomicAnd32(EmitContext& ctx, ScalarU32 pointer_offset, ScalarU32 value) {
NotImplemented();
}
void EmitSharedAtomicOr32(EmitContext& ctx, ScalarU32 pointer_offset, ScalarU32 value) {
NotImplemented();
}
void EmitSharedAtomicXor32(EmitContext& ctx, ScalarU32 pointer_offset, ScalarU32 value) {
NotImplemented();
}
void EmitSharedAtomicExchange32(EmitContext& ctx, ScalarU32 pointer_offset, ScalarU32 value) {
NotImplemented();
}
void EmitSharedAtomicExchange64(EmitContext& ctx, ScalarU32 pointer_offset, Register value) {
NotImplemented();
}
void EmitLogicalOr(EmitContext& ctx, IR::Inst& inst, ScalarS32 a, ScalarS32 b) {
ctx.Add("OR.S {},{},{};", inst, a, b);
}