aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/X86/InstSelectSimple.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Target/X86/InstSelectSimple.cpp')
-rw-r--r--lib/Target/X86/InstSelectSimple.cpp25
1 files changed, 15 insertions, 10 deletions
diff --git a/lib/Target/X86/InstSelectSimple.cpp b/lib/Target/X86/InstSelectSimple.cpp
index 4988a0dc4c..3ceefe7ccd 100644
--- a/lib/Target/X86/InstSelectSimple.cpp
+++ b/lib/Target/X86/InstSelectSimple.cpp
@@ -1670,8 +1670,10 @@ void ISel::visitIntrinsicCall(Intrinsic::ID ID, CallInst &CI) {
// First, determine that the size of the operand falls within the
// acceptable range for this architecture.
//
- assert (((CI.getOperand(1)->getType()->getPrimitiveSize()) == 2) &&
- "llvm.readport operand size is not a 16 bit value!");
+ if ((CI.getOperand(1)->getType()->getPrimitiveSize()) != 2) {
+ std::cerr << "llvm.readport: Address size is not 16 bits\n";
+ exit (1);
+ }
//
// Now, move the I/O port address into the DX register and use the IN
@@ -1680,13 +1682,13 @@ void ISel::visitIntrinsicCall(Intrinsic::ID ID, CallInst &CI) {
BuildMI(BB, X86::MOV16rr, 1, X86::DX).addReg(getReg(CI.getOperand(1)));
switch (CI.getCalledFunction()->getReturnType()->getPrimitiveSize()) {
case 1:
- BuildMI(BB, X86::IN8, 1);
+ BuildMI(BB, X86::IN8, 0);
break;
case 2:
- BuildMI(BB, X86::IN16, 1);
+ BuildMI(BB, X86::IN16, 0);
break;
case 4:
- BuildMI(BB, X86::IN32, 1);
+ BuildMI(BB, X86::IN32, 0);
break;
default:
assert (0 && "Cannot do input on this data type");
@@ -1698,8 +1700,11 @@ void ISel::visitIntrinsicCall(Intrinsic::ID ID, CallInst &CI) {
// First, determine that the size of the operand falls within the
// acceptable range for this architecture.
//
- assert (((CI.getOperand(1)->getType()->getPrimitiveSize()) == 2) &&
- "llvm.readport operand size is not a 16 bit value!");
+ //
+ if ((CI.getOperand(1)->getType()->getPrimitiveSize()) != 2) {
+ std::cerr << "llvm.writeport: Address size is not 16 bits\n";
+ exit (1);
+ }
//
// Now, move the I/O port address into the DX register and the value to
@@ -1709,15 +1714,15 @@ void ISel::visitIntrinsicCall(Intrinsic::ID ID, CallInst &CI) {
switch (CI.getOperand(2)->getType()->getPrimitiveSize()) {
case 1:
BuildMI(BB, X86::MOV8rr, 1, X86::AL).addReg(getReg(CI.getOperand(2)));
- BuildMI(BB, X86::OUT8, 1);
+ BuildMI(BB, X86::OUT8, 0);
break;
case 2:
BuildMI(BB, X86::MOV16rr, 1, X86::AX).addReg(getReg(CI.getOperand(2)));
- BuildMI(BB, X86::OUT16, 1);
+ BuildMI(BB, X86::OUT16, 0);
break;
case 4:
BuildMI(BB, X86::MOV32rr, 1, X86::EAX).addReg(getReg(CI.getOperand(2)));
- BuildMI(BB, X86::OUT32, 1);
+ BuildMI(BB, X86::OUT32, 0);
break;
default:
assert (0 && "Cannot do input on this data type");