| 324 | } |
| 325 | |
| 326 | BeType* BeIRCodeGen::GetBeType(BfTypeCode typeCode, bool& isSigned) |
| 327 | { |
| 328 | isSigned = false; |
| 329 | BeTypeCode beTypeCode = BeTypeCode_None; |
| 330 | switch (typeCode) |
| 331 | { |
| 332 | case BfTypeCode_None: |
| 333 | beTypeCode = BeTypeCode_None; |
| 334 | break; |
| 335 | case BfTypeCode_NullPtr: |
| 336 | beTypeCode = BeTypeCode_NullPtr; |
| 337 | break; |
| 338 | case BfTypeCode_Boolean: |
| 339 | beTypeCode = BeTypeCode_Boolean; |
| 340 | break; |
| 341 | case BfTypeCode_Int8: |
| 342 | isSigned = true; |
| 343 | beTypeCode = BeTypeCode_Int8; |
| 344 | break; |
| 345 | case BfTypeCode_UInt8: |
| 346 | case BfTypeCode_Char8: |
| 347 | beTypeCode = BeTypeCode_Int8; |
| 348 | break; |
| 349 | case BfTypeCode_Int16: |
| 350 | isSigned = true; |
| 351 | beTypeCode = BeTypeCode_Int16; |
| 352 | break; |
| 353 | case BfTypeCode_Char16: |
| 354 | case BfTypeCode_UInt16: |
| 355 | beTypeCode = BeTypeCode_Int16; |
| 356 | break; |
| 357 | case BfTypeCode_Int32: |
| 358 | isSigned = true; |
| 359 | beTypeCode = BeTypeCode_Int32; |
| 360 | break; |
| 361 | case BfTypeCode_UInt32: |
| 362 | case BfTypeCode_Char32: |
| 363 | beTypeCode = BeTypeCode_Int32; |
| 364 | break; |
| 365 | case BfTypeCode_Int64: |
| 366 | isSigned = true; |
| 367 | beTypeCode = BeTypeCode_Int64; |
| 368 | break; |
| 369 | case BfTypeCode_UInt64: |
| 370 | beTypeCode = BeTypeCode_Int64; |
| 371 | break; |
| 372 | case BfTypeCode_IntPtr: |
| 373 | BF_FATAL("Illegal"); |
| 374 | /*isSigned = true; |
| 375 | if (mModule->mSystem->mPtrSize == 4) |
| 376 | return llvm::Type::getInt32Ty(*mLLVMContext); |
| 377 | else |
| 378 | return llvm::Type::getInt64Ty(*mLLVMContext);*/ |
| 379 | case BfTypeCode_UIntPtr: |
| 380 | BF_FATAL("Illegal"); |
| 381 | /*if (mModule->mSystem->mPtrSize == 4) |
| 382 | return llvm::Type::getInt32Ty(*mLLVMContext); |
| 383 | else |
no test coverage detected