src/BytecodeEmitter.h
changeset 157 b760e8cb29a8
parent 154 a85a0303bcb8
child 158 91071a2255bf
     1.1 --- a/src/BytecodeEmitter.h	Sun Aug 05 00:49:31 2012 -0700
     1.2 +++ b/src/BytecodeEmitter.h	Sun Aug 05 01:10:49 2012 -0700
     1.3 @@ -365,39 +365,16 @@
     1.4          writeUint32(argc);
     1.5      }
     1.6  
     1.7 -    void getarray(Type *type) {
     1.8 -        if (type->isTraceable()) {
     1.9 -            singleByteOp(OP_GETARRAY_O);
    1.10 -            markOop(1);
    1.11 -            return;
    1.12 -        }
    1.13 +    void getelem(Type *type) {
    1.14 +        singleByteOp(OP_GETELEM);
    1.15  
    1.16 -        switch (type->pod()) {
    1.17 -          case PrimitiveType_Float:
    1.18 -            singleByteOp(OP_GETARRAY_F);
    1.19 -            break;
    1.20 -          case PrimitiveType_Int32:
    1.21 -            singleByteOp(OP_GETARRAY_I);
    1.22 -            break;
    1.23 -          default:
    1.24 -            assert(type->pod() == PrimitiveType_Char);
    1.25 -            singleByteOp(OP_GETARRAY_C);
    1.26 -            break;
    1.27 -        }
    1.28 +        if (type->isTraceable())
    1.29 +            markOop(1);
    1.30      }
    1.31 -    void setarray(Type *type) {
    1.32 -        switch (type->pod()) {
    1.33 -          case PrimitiveType_Float:
    1.34 -            singleByteOp(OP_SETARRAY_F);
    1.35 -            break;
    1.36 -          case PrimitiveType_Int32:
    1.37 -            singleByteOp(OP_SETARRAY_I);
    1.38 -            break;
    1.39 -          default:
    1.40 -            assert(type->pod() == PrimitiveType_Char);
    1.41 -            singleByteOp(OP_SETARRAY_C);
    1.42 -            break;
    1.43 -        }
    1.44 +    void setelem(Type *type) {
    1.45 +        singleByteOp(OP_SETELEM);
    1.46 +
    1.47 +        assert(!type->isTraceable());
    1.48      }
    1.49  
    1.50      void getfield(unsigned index, Type *type) {