 Chromium Code Reviews
 Chromium Code Reviews Issue 1701593003:
  [turbofan] Enforce that C calls do not use floating point params.  (Closed) 
  Base URL: https://chromium.googlesource.com/v8/v8.git@master
    
  
    Issue 1701593003:
  [turbofan] Enforce that C calls do not use floating point params.  (Closed) 
  Base URL: https://chromium.googlesource.com/v8/v8.git@master| Index: src/compiler/c-linkage.cc | 
| diff --git a/src/compiler/c-linkage.cc b/src/compiler/c-linkage.cc | 
| index cb47a7228d4e3ad5ba45fb9e5f94ad386a4b8b60..af9e0140b532975d1247da2f67be0648c2dac813 100644 | 
| --- a/src/compiler/c-linkage.cc | 
| +++ b/src/compiler/c-linkage.cc | 
| @@ -136,20 +136,19 @@ CallDescriptor* Linkage::GetSimplifiedCDescriptor( | 
| Zone* zone, const MachineSignature* msig, bool set_initialize_root_flag) { | 
| LocationSignature::Builder locations(zone, msig->return_count(), | 
| msig->parameter_count()); | 
| -#if 0 // TODO(titzer): instruction selector tests break here. | 
| // Check the types of the signature. | 
| // Currently no floating point parameters or returns are allowed because | 
| // on x87 and ia32, the FP top of stack is involved. | 
| - | 
| for (size_t i = 0; i < msig->return_count(); i++) { | 
| - MachineType type = RepresentationOf(msig->GetReturn(i)); | 
| - CHECK(type != kRepFloat32 && type != kRepFloat64); | 
| + MachineRepresentation rep = msig->GetReturn(i).representation(); | 
| + CHECK(rep != MachineRepresentation::kFloat32 && | 
| 
Benedikt Meurer
2016/02/15 12:45:32
Nit: two separate CHECKs instead of combining with
 | 
| + rep != MachineRepresentation::kFloat64); | 
| } | 
| for (size_t i = 0; i < msig->parameter_count(); i++) { | 
| - MachineType type = RepresentationOf(msig->GetParam(i)); | 
| - CHECK(type != kRepFloat32 && type != kRepFloat64); | 
| + MachineRepresentation rep = msig->GetParam(i).representation(); | 
| + CHECK(rep != MachineRepresentation::kFloat32 && | 
| 
Benedikt Meurer
2016/02/15 12:45:32
Nit: two separate CHECKs instead of combining with
 | 
| + rep != MachineRepresentation::kFloat64); | 
| } | 
| -#endif | 
| #ifdef UNSUPPORTED_C_LINKAGE | 
| // This method should not be called on unknown architectures. |