use enum class in ir

This commit is contained in:
Joshua Warner 2014-07-12 11:54:19 -06:00 committed by Joshua Warner
parent 060b5c8f13
commit 1ad1fe9048
5 changed files with 44 additions and 44 deletions
include/avian/codegen
src

@ -140,7 +140,7 @@ class Compiler {
ir::Value* index,
intptr_t handler) = 0;
virtual ir::Value* truncateThenExtend(ir::SignExtendMode signExtend,
virtual ir::Value* truncateThenExtend(ir::ExtendMode extendMode,
ir::Type extendType,
ir::Type truncateType,
ir::Value* src) = 0;
@ -148,7 +148,7 @@ class Compiler {
virtual ir::Value* truncate(ir::Type type, ir::Value* src) = 0;
virtual void store(ir::Value* src, ir::Value* dst) = 0;
virtual ir::Value* load(ir::SignExtendMode signExtend,
virtual ir::Value* load(ir::ExtendMode extendMode,
ir::Value* src,
ir::Type dstType) = 0;

@ -132,9 +132,9 @@ class Type {
}
};
enum SignExtendMode { SignExtend, ZeroExtend };
enum class ExtendMode { Signed, Unsigned };
enum CallingConvention { NativeCallingConvention, AvianCallingConvention };
enum class CallingConvention { Native, Avian };
class Value {
public:

@ -2567,7 +2567,7 @@ class MyCompiler : public Compiler {
Value* result = value(&c, resultType);
appendCall(&c,
static_cast<Value*>(address),
ir::NativeCallingConvention,
ir::CallingConvention::Native,
flags,
traceHandler,
result,
@ -2586,7 +2586,7 @@ class MyCompiler : public Compiler {
Stack* b UNUSED = c.stack;
appendCall(&c,
static_cast<Value*>(address),
ir::AvianCallingConvention,
ir::CallingConvention::Avian,
flags,
traceHandler,
result,
@ -2741,14 +2741,14 @@ class MyCompiler : public Compiler {
return dst;
}
virtual ir::Value* truncateThenExtend(ir::SignExtendMode signExtend,
virtual ir::Value* truncateThenExtend(ir::ExtendMode extendMode,
ir::Type extendType,
ir::Type truncateType,
ir::Value* src)
{
Value* dst = value(&c, extendType);
appendMove(&c,
signExtend == ir::SignExtend ? lir::Move : lir::MoveZ,
extendMode == ir::ExtendMode::Signed ? lir::Move : lir::MoveZ,
TargetBytesPerWord,
truncateType.size(c.targetInfo),
static_cast<Value*>(src),
@ -2772,7 +2772,7 @@ class MyCompiler : public Compiler {
static_cast<Value*>(dst));
}
virtual ir::Value* load(ir::SignExtendMode signExtend,
virtual ir::Value* load(ir::ExtendMode extendMode,
ir::Value* src,
ir::Type dstType)
{
@ -2780,7 +2780,7 @@ class MyCompiler : public Compiler {
Value* dst = value(&c, dstType);
appendMove(&c,
signExtend == ir::SignExtend ? lir::Move : lir::MoveZ,
extendMode == ir::ExtendMode::Signed ? lir::Move : lir::MoveZ,
src->type.size(c.targetInfo),
src->type.size(c.targetInfo),
static_cast<Value*>(src),

@ -368,13 +368,13 @@ class CallEvent : public Event {
popIndex(0),
stackArgumentIndex(0),
flags(flags),
stackArgumentFootprint(callingConvention == ir::AvianCallingConvention
stackArgumentFootprint(callingConvention == ir::CallingConvention::Avian
? arguments.count
: 0)
{
uint32_t registerMask = c->regFile->generalRegisters.mask;
if (callingConvention == ir::NativeCallingConvention) {
if (callingConvention == ir::CallingConvention::Native) {
assertT(c, (flags & Compiler::TailJump) == 0);
assertT(c, stackArgumentFootprint == 0);
@ -450,7 +450,7 @@ class CallEvent : public Event {
Stack* stack = stackBefore;
if (callingConvention == ir::AvianCallingConvention) {
if (callingConvention == ir::CallingConvention::Avian) {
for (size_t i = 0; i < arguments.count; i++) {
stack = stack->next;
}
@ -1257,7 +1257,7 @@ void appendCombine(Context* c,
appendCall(c,
value(c, ir::Type::addr(), constantSite(c, handler)),
ir::NativeCallingConvention,
ir::CallingConvention::Native,
0,
0,
resultValue,
@ -1413,7 +1413,7 @@ void appendTranslate(Context* c,
op,
firstValue->type.size(c->targetInfo),
resultValue->type.size(c->targetInfo)))),
ir::NativeCallingConvention,
ir::CallingConvention::Native,
0,
0,
resultValue,
@ -1849,7 +1849,7 @@ void appendBranch(Context* c,
Value* result = value(c, ir::Type::addr());
appendCall(c,
value(c, ir::Type::addr(), constantSite(c, handler)),
ir::NativeCallingConvention,
ir::CallingConvention::Native,
0,
0,
result,

@ -3575,7 +3575,7 @@ ir::Value* popLongAddress(Frame* frame)
{
return TargetBytesPerWord == 8
? frame->popLarge(ir::Type::i8())
: frame->c->load(ir::SignExtend,
: frame->c->load(ir::ExtendMode::Signed,
frame->popLarge(ir::Type::i8()),
ir::Type::iptr());
}
@ -3616,7 +3616,7 @@ bool intrinsic(MyThread* t UNUSED, Frame* frame, GcMethod* target)
ir::Value* address = popLongAddress(frame);
frame->pop(ir::Type::object());
frame->push(ir::Type::i4(),
c->load(ir::SignExtend,
c->load(ir::ExtendMode::Signed,
c->memory(address, ir::Type::i1()),
ir::Type::i4()));
return true;
@ -3634,7 +3634,7 @@ bool intrinsic(MyThread* t UNUSED, Frame* frame, GcMethod* target)
ir::Value* address = popLongAddress(frame);
frame->pop(ir::Type::object());
frame->push(ir::Type::i4(),
c->load(ir::SignExtend,
c->load(ir::ExtendMode::Signed,
c->memory(address, ir::Type::i2()),
ir::Type::i4()));
return true;
@ -3656,7 +3656,7 @@ bool intrinsic(MyThread* t UNUSED, Frame* frame, GcMethod* target)
ir::Type type = MATCH(target->name(), "getInt") ? ir::Type::i4()
: ir::Type::f4();
frame->push(type,
c->load(ir::SignExtend, c->memory(address, type), type));
c->load(ir::ExtendMode::Signed, c->memory(address, type), type));
return true;
} else if ((MATCH(target->name(), "putInt")
and MATCH(target->spec(), "(JI)V"))
@ -3678,7 +3678,7 @@ bool intrinsic(MyThread* t UNUSED, Frame* frame, GcMethod* target)
ir::Type type = MATCH(target->name(), "getLong") ? ir::Type::i8()
: ir::Type::f8();
frame->pushLarge(type,
c->load(ir::SignExtend, c->memory(address, type), type));
c->load(ir::ExtendMode::Signed, c->memory(address, type), type));
return true;
} else if ((MATCH(target->name(), "putLong")
and MATCH(target->spec(), "(JJ)V"))
@ -3696,7 +3696,7 @@ bool intrinsic(MyThread* t UNUSED, Frame* frame, GcMethod* target)
ir::Value* address = popLongAddress(frame);
frame->pop(ir::Type::object());
frame->pushLarge(ir::Type::i8(),
c->load(ir::SignExtend,
c->load(ir::ExtendMode::Signed,
c->memory(address, ir::Type::iptr()),
ir::Type::i8()));
return true;
@ -3976,7 +3976,7 @@ loop:
frame->push(
ir::Type::object(),
c->load(
ir::SignExtend,
ir::ExtendMode::Signed,
c->memory(array, ir::Type::object(), TargetArrayBody, index),
ir::Type::object()));
break;
@ -3984,7 +3984,7 @@ loop:
case faload:
frame->push(
ir::Type::f4(),
c->load(ir::SignExtend,
c->load(ir::ExtendMode::Signed,
c->memory(array, ir::Type::f4(), TargetArrayBody, index),
ir::Type::f4()));
break;
@ -3992,7 +3992,7 @@ loop:
case iaload:
frame->push(
ir::Type::i4(),
c->load(ir::SignExtend,
c->load(ir::ExtendMode::Signed,
c->memory(array, ir::Type::i4(), TargetArrayBody, index),
ir::Type::i4()));
break;
@ -4000,7 +4000,7 @@ loop:
case baload:
frame->push(
ir::Type::i4(),
c->load(ir::SignExtend,
c->load(ir::ExtendMode::Signed,
c->memory(array, ir::Type::i1(), TargetArrayBody, index),
ir::Type::i4()));
break;
@ -4008,7 +4008,7 @@ loop:
case caload:
frame->push(
ir::Type::i4(),
c->load(ir::ZeroExtend,
c->load(ir::ExtendMode::Unsigned,
c->memory(array, ir::Type::i2(), TargetArrayBody, index),
ir::Type::i4()));
break;
@ -4016,7 +4016,7 @@ loop:
case daload:
frame->pushLarge(
ir::Type::f8(),
c->load(ir::SignExtend,
c->load(ir::ExtendMode::Signed,
c->memory(array, ir::Type::f8(), TargetArrayBody, index),
ir::Type::f8()));
break;
@ -4024,7 +4024,7 @@ loop:
case laload:
frame->pushLarge(
ir::Type::i8(),
c->load(ir::SignExtend,
c->load(ir::ExtendMode::Signed,
c->memory(array, ir::Type::i8(), TargetArrayBody, index),
ir::Type::i8()));
break;
@ -4032,7 +4032,7 @@ loop:
case saload:
frame->push(
ir::Type::i4(),
c->load(ir::SignExtend,
c->load(ir::ExtendMode::Signed,
c->memory(array, ir::Type::i2(), TargetArrayBody, index),
ir::Type::i4()));
break;
@ -4190,7 +4190,7 @@ loop:
case arraylength: {
frame->push(ir::Type::i4(),
c->load(ir::SignExtend,
c->load(ir::ExtendMode::Signed,
c->memory(frame->pop(ir::Type::object()),
ir::Type::iptr(),
TargetArrayLength),
@ -4509,7 +4509,7 @@ loop:
case ByteField:
case BooleanField:
frame->push(ir::Type::i4(),
c->load(ir::SignExtend,
c->load(ir::ExtendMode::Signed,
c->memory(table,
ir::Type::i1(),
targetFieldOffset(context, field)),
@ -4518,7 +4518,7 @@ loop:
case CharField:
frame->push(ir::Type::i4(),
c->load(ir::ZeroExtend,
c->load(ir::ExtendMode::Unsigned,
c->memory(table,
ir::Type::i2(),
targetFieldOffset(context, field)),
@ -4527,7 +4527,7 @@ loop:
case ShortField:
frame->push(ir::Type::i4(),
c->load(ir::SignExtend,
c->load(ir::ExtendMode::Signed,
c->memory(table,
ir::Type::i2(),
targetFieldOffset(context, field)),
@ -4536,7 +4536,7 @@ loop:
case FloatField:
frame->push(ir::Type::f4(),
c->load(ir::SignExtend,
c->load(ir::ExtendMode::Signed,
c->memory(table,
ir::Type::f4(),
targetFieldOffset(context, field)),
@ -4545,7 +4545,7 @@ loop:
case IntField:
frame->push(ir::Type::i4(),
c->load(ir::SignExtend,
c->load(ir::ExtendMode::Signed,
c->memory(table,
ir::Type::i4(),
targetFieldOffset(context, field)),
@ -4554,7 +4554,7 @@ loop:
case DoubleField:
frame->pushLarge(ir::Type::f8(),
c->load(ir::SignExtend,
c->load(ir::ExtendMode::Signed,
c->memory(table,
ir::Type::f8(),
targetFieldOffset(context, field)),
@ -4563,7 +4563,7 @@ loop:
case LongField:
frame->pushLarge(ir::Type::i8(),
c->load(ir::SignExtend,
c->load(ir::ExtendMode::Signed,
c->memory(table,
ir::Type::i8(),
targetFieldOffset(context, field)),
@ -4572,7 +4572,7 @@ loop:
case ObjectField:
frame->push(ir::Type::object(),
c->load(ir::SignExtend,
c->load(ir::ExtendMode::Signed,
c->memory(table,
ir::Type::object(),
targetFieldOffset(context, field)),
@ -4662,7 +4662,7 @@ loop:
case i2b: {
frame->push(ir::Type::i4(),
c->truncateThenExtend(ir::SignExtend,
c->truncateThenExtend(ir::ExtendMode::Signed,
ir::Type::i4(),
ir::Type::i1(),
frame->pop(ir::Type::i4())));
@ -4670,7 +4670,7 @@ loop:
case i2c: {
frame->push(ir::Type::i4(),
c->truncateThenExtend(ir::ZeroExtend,
c->truncateThenExtend(ir::ExtendMode::Unsigned,
ir::Type::i4(),
ir::Type::i2(),
frame->pop(ir::Type::i4())));
@ -4688,7 +4688,7 @@ loop:
case i2l:
frame->pushLarge(ir::Type::i8(),
c->truncateThenExtend(ir::SignExtend,
c->truncateThenExtend(ir::ExtendMode::Signed,
ir::Type::i8(),
ir::Type::i4(),
frame->pop(ir::Type::i4())));
@ -4696,7 +4696,7 @@ loop:
case i2s: {
frame->push(ir::Type::i4(),
c->truncateThenExtend(ir::SignExtend,
c->truncateThenExtend(ir::ExtendMode::Signed,
ir::Type::i4(),
ir::Type::i2(),
frame->pop(ir::Type::i4())));
@ -6113,7 +6113,7 @@ next:
0,
normalizedKey);
c->jmp(c->load(ir::SignExtend,
c->jmp(c->load(ir::ExtendMode::Signed,
context->bootContext
? c->binaryOp(lir::Add,
ir::Type::iptr(),