Skip to content

Commit

Permalink
PNaCl: Enable the Subzero translator for x86-64.
Browse files Browse the repository at this point in the history
On the x86-64 architecture, use pnacl-sz instead of pnacl-llc when the PNaCl manifest file explicitly specifies O0 translation.

BUG=588337
TEST= git cl try -b linux_chromium_dbg_32_ng

Review URL: https://codereview.chromium.org/1716783003

Cr-Commit-Position: refs/heads/master@{#376885}
  • Loading branch information
stichnot authored and Commit bot committed Feb 23, 2016
1 parent 4592135 commit e7ccc4a
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 7 deletions.
7 changes: 5 additions & 2 deletions chrome/test/nacl/nacl_browsertest_uma.cc
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,8 @@ NACL_BROWSER_TEST_F(NaClBrowserTest, SuccessfulLoadUMA, {
// Test that a successful load adds stats to Subzero buckets.
IN_PROC_BROWSER_TEST_F(NaClBrowserTestPnaclSubzero, SuccessfulLoadUMA) {
// Only test where Subzero is supported.
if (strcmp(nacl::GetSandboxArch(), "x86-32") != 0)
const char* arch = nacl::GetSandboxArch();
if (strcmp(arch, "x86-32") != 0 && strcmp(arch, "x86-64") != 0)
return;

base::HistogramTester histograms;
Expand Down Expand Up @@ -242,7 +243,9 @@ IN_PROC_BROWSER_TEST_F(NaClBrowserTestGLibcVcacheExtension,
// This includes pnacl-llc.nexe, pnacl-ld.nexe, and possibly pnacl-sz.nexe.
IN_PROC_BROWSER_TEST_F(NaClBrowserTestPnacl,
ValidationCacheOfTranslatorNexes) {
bool uses_subzero_with_o0 = (strcmp(nacl::GetSandboxArch(), "x86-32") == 0);
const char* arch = nacl::GetSandboxArch();
const bool uses_subzero_with_o0 =
(strcmp(arch, "x86-32") == 0 || strcmp(arch, "x86-64") == 0);
base::HistogramBase::Count subzero_o0_count = (uses_subzero_with_o0 ? 1 : 0);
base::HistogramTester histograms;
// Run a load test w/ one pexe cache identity.
Expand Down
12 changes: 7 additions & 5 deletions components/nacl/renderer/ppb_nacl_private_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1111,11 +1111,13 @@ PP_Bool ManifestGetProgramURL(PP_Instance instance,
// Also modify the ValidationCacheOfTranslatorNexes test to match. When
// Subzero is finally fully released for all sandbox architectures, the
// --enable-pnacl-subzero flag can be removed.
if (pnacl_options->opt_level == 0 && !pnacl_options->is_debug &&
strcmp(GetSandboxArch(), "x86-32") == 0) {
pnacl_options->use_subzero = PP_TRUE;
// Subzero -O2 is closer to LLC -O0, so indicate -O2.
pnacl_options->opt_level = 2;
if (pnacl_options->opt_level == 0 && !pnacl_options->is_debug) {
const char* arch = GetSandboxArch();
if (strcmp(arch, "x86-32") == 0 || strcmp(arch, "x86-64") == 0) {
pnacl_options->use_subzero = PP_TRUE;
// Subzero -O2 is closer to LLC -O0, so indicate -O2.
pnacl_options->opt_level = 2;
}
}
return PP_TRUE;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ if (enable_nacl) {
"libgcc_a",
"libpnacl_irt_shim_a",
"pnacl_llc_nexe",
"pnacl_sz_nexe",
]

if (target_cpu == "arm") {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,12 +54,14 @@
'<(pnacl_output_prefix)x86_32_libgcc_a',
'<(pnacl_output_prefix)x86_32_libpnacl_irt_shim_a',
'<(pnacl_output_prefix)x86_32_pnacl_llc_nexe',
'<(pnacl_output_prefix)x86_32_pnacl_sz_nexe',
'<(pnacl_output_prefix)x86_64_crtbegin_o',
'<(pnacl_output_prefix)x86_64_ld_nexe',
'<(pnacl_output_prefix)x86_64_libcrt_platform_a',
'<(pnacl_output_prefix)x86_64_libgcc_a',
'<(pnacl_output_prefix)x86_64_libpnacl_irt_shim_a',
'<(pnacl_output_prefix)x86_64_pnacl_llc_nexe',
'<(pnacl_output_prefix)x86_64_pnacl_sz_nexe',
],
'inputs': [
'>(tc_lib_dir_newlib32)/libpnacl_irt_shim_browser.a',
Expand Down Expand Up @@ -122,6 +124,7 @@
'<(pnacl_output_prefix)x86_32_libgcc_a',
'<(pnacl_output_prefix)x86_32_libpnacl_irt_shim_a',
'<(pnacl_output_prefix)x86_32_pnacl_llc_nexe',
'<(pnacl_output_prefix)x86_32_pnacl_sz_nexe',
],
'inputs': [
'>(tc_lib_dir_newlib32)/libpnacl_irt_shim_browser.a',
Expand All @@ -141,6 +144,7 @@
'<(pnacl_output_prefix)x86_64_libgcc_a',
'<(pnacl_output_prefix)x86_64_libpnacl_irt_shim_a',
'<(pnacl_output_prefix)x86_64_pnacl_llc_nexe',
'<(pnacl_output_prefix)x86_64_pnacl_sz_nexe',
],
'inputs': [
'>(tc_lib_dir_newlib64)/libpnacl_irt_shim_browser.a',
Expand Down

0 comments on commit e7ccc4a

Please sign in to comment.