mirror of
https://github.com/corda/corda.git
synced 2025-06-21 08:40:03 +00:00
begin merging target assembler multimethod code
This commit is contained in:
@ -15,20 +15,17 @@
|
||||
#include <avian/vm/codegen/lir.h>
|
||||
|
||||
#include "context.h"
|
||||
#include "multimethod.h"
|
||||
#include "operations.h"
|
||||
|
||||
#include "multimethod.h"
|
||||
#include "../multimethod.h"
|
||||
|
||||
namespace avian {
|
||||
namespace codegen {
|
||||
namespace x86 {
|
||||
|
||||
using namespace util;
|
||||
|
||||
|
||||
unsigned index(ArchitectureContext*, lir::UnaryOperation operation, lir::OperandType operand) {
|
||||
return operation + (lir::UnaryOperationCount * operand);
|
||||
}
|
||||
|
||||
unsigned index(ArchitectureContext*, lir::BinaryOperation operation,
|
||||
lir::OperandType operand1,
|
||||
lir::OperandType operand2)
|
||||
@ -74,25 +71,25 @@ void populateTables(ArchitectureContext* c) {
|
||||
zo[lir::StoreLoadBarrier] = storeLoadBarrier;
|
||||
zo[lir::Trap] = trap;
|
||||
|
||||
uo[index(c, lir::Call, C)] = CAST1(callC);
|
||||
uo[index(c, lir::Call, R)] = CAST1(callR);
|
||||
uo[index(c, lir::Call, M)] = CAST1(callM);
|
||||
uo[Multimethod::index(lir::Call, C)] = CAST1(callC);
|
||||
uo[Multimethod::index(lir::Call, R)] = CAST1(callR);
|
||||
uo[Multimethod::index(lir::Call, M)] = CAST1(callM);
|
||||
|
||||
uo[index(c, lir::AlignedCall, C)] = CAST1(alignedCallC);
|
||||
uo[Multimethod::index(lir::AlignedCall, C)] = CAST1(alignedCallC);
|
||||
|
||||
uo[index(c, lir::LongCall, C)] = CAST1(longCallC);
|
||||
uo[Multimethod::index(lir::LongCall, C)] = CAST1(longCallC);
|
||||
|
||||
uo[index(c, lir::AlignedLongCall, C)] = CAST1(alignedLongCallC);
|
||||
uo[Multimethod::index(lir::AlignedLongCall, C)] = CAST1(alignedLongCallC);
|
||||
|
||||
uo[index(c, lir::Jump, R)] = CAST1(jumpR);
|
||||
uo[index(c, lir::Jump, C)] = CAST1(jumpC);
|
||||
uo[index(c, lir::Jump, M)] = CAST1(jumpM);
|
||||
uo[Multimethod::index(lir::Jump, R)] = CAST1(jumpR);
|
||||
uo[Multimethod::index(lir::Jump, C)] = CAST1(jumpC);
|
||||
uo[Multimethod::index(lir::Jump, M)] = CAST1(jumpM);
|
||||
|
||||
uo[index(c, lir::AlignedJump, C)] = CAST1(alignedJumpC);
|
||||
uo[Multimethod::index(lir::AlignedJump, C)] = CAST1(alignedJumpC);
|
||||
|
||||
uo[index(c, lir::LongJump, C)] = CAST1(longJumpC);
|
||||
uo[Multimethod::index(lir::LongJump, C)] = CAST1(longJumpC);
|
||||
|
||||
uo[index(c, lir::AlignedLongJump, C)] = CAST1(alignedLongJumpC);
|
||||
uo[Multimethod::index(lir::AlignedLongJump, C)] = CAST1(alignedLongJumpC);
|
||||
|
||||
bo[index(c, lir::Negate, R, R)] = CAST2(negateRR);
|
||||
|
||||
|
Reference in New Issue
Block a user